Hei!
Onko mahdollista tehdä semmoinen makro joka osaa noutaa Sheet2 A1, A2, A3 jne tiedon ja etsii vastaavat Sheet1:ltä ja jos vastaavuus löytyy, niin värjää ne suoraan punaiseksi.
Minulla on sheet2 noin 300 solua joiden vastaavuudet pitäisi etsiä Sheet1, ja jotta huomaisin solut paremmin, haluaisin ne värjäytyvän.
Kiitoksia etukäteen!
Vastaavuuden löytäminen Sheet1 ja Sheet2 välillä
8
730
Vastaukset
- ...
Ehdollisella muotoilulla saattaisi onnistua. Toisella arkilla nimetään ensin vertailtava alue.
Muotoiluehdoksi kaavan arvo =Laske.Jos(Alue;A1)>0- toimi..........
mut ehdollinen muotoilussa joudun aina vaihtamaan arvon. Tarkoituksena olisi et makro käy tietyn listan läpi ja etsii toisesta alueesta vastaavuudet.
- hyvin toimii
toimi.......... kirjoitti:
mut ehdollinen muotoilussa joudun aina vaihtamaan arvon. Tarkoituksena olisi et makro käy tietyn listan läpi ja etsii toisesta alueesta vastaavuudet.
nimeät sheet1 alueen vaikka ekaAlue ja valitset sheet2:n alueen jolle haluat muotoilun,laitat ehdolliseen muotoiluun
formula is =COUNTIF(ekaAlue;A2) ja valitse haluamasi värin
vähän oli ylimalkainen kyssäri tiedoilta, mutta tolla alkuun
moduuliin...
nimeä taulukko2 verrattavat solut ="Alue" ja muokkaa taulukoiden nimet sopiviksi
Option Explicit
Dim EiTupla As New Collection
Sub Värjää()
Dim Tiedot As Variant
Dim Alue As Range
Dim i As Integer
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Worksheets("Sheet2").Activate
PoistaTuplat
Worksheets("Sheet1").Cells.Interior.ColorIndex = xlNone
For i = 1 To EiTupla.Count
Set Alue = EtsiJaSiirrä(EiTupla(i), Worksheets("Sheet1").Cells)
Alue.Interior.ColorIndex = 3
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Sub PoistaTuplat()
Dim solu As Range
Dim Vika As Double
On Error GoTo virhe
For Each solu In Range("Alue")
If Not IsEmpty(solu) Then
EiTupla.Add solu.Value, CStr(solu.Value)
End If
Next solu
Exit Sub
virhe:
Resume Next
End Sub
Function EtsiJaSiirrä(Haettava As Variant, _
Hakualue As Range) As Range
Dim solu As Range
Dim ekaosoite As String
With Hakualue
Set solu = .Find( _
What:=Haettava, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not solu Is Nothing Then
Set EtsiJaSiirrä = solu
ekaosoite = solu.Address
Do
Set EtsiJaSiirrä = Union(EtsiJaSiirrä, solu)
Set solu = .FindNext(solu)
Loop While Not solu Is Nothing And solu.Address ekaosoite
End If
End With
End Function- vaatii!
Hei!
Makro toimii, kiitos.
Pientä ongelmaa pukkaa silloin kun haluan etsiä vastaavuudet uudestaan. Nimittäin olen tehnyt niin, että poistan värjäykset kokonaan Sheet1 taulukosta. Sen jälkeen muokkaan Sheet2, sitä taulukkoa mistä tiedot haetaan. Esim. Poistan sieltä kaikki paitsi yhden solun. Kun ajan värjäys_makron uudestaan, niin värjää makro samat solut kuin aikaisemmalla kerralla. Ihan ku makro hakisi tiedot jostain muistista, eikä siltä Sheet2 alueelta.
Tietäisitkö missä mahtaa olla vika? vaatii! kirjoitti:
Hei!
Makro toimii, kiitos.
Pientä ongelmaa pukkaa silloin kun haluan etsiä vastaavuudet uudestaan. Nimittäin olen tehnyt niin, että poistan värjäykset kokonaan Sheet1 taulukosta. Sen jälkeen muokkaan Sheet2, sitä taulukkoa mistä tiedot haetaan. Esim. Poistan sieltä kaikki paitsi yhden solun. Kun ajan värjäys_makron uudestaan, niin värjää makro samat solut kuin aikaisemmalla kerralla. Ihan ku makro hakisi tiedot jostain muistista, eikä siltä Sheet2 alueelta.
Tietäisitkö missä mahtaa olla vika?"Esim. Poistan sieltä kaikki paitsi yhden solun. Kun ajan värjäys_makron uudestaan, niin värjää makro samat solut kuin aikaisemmalla kerralla. Ihan ku makro hakisi tiedot jostain muistista, eikä siltä Sheet2 alueelta."
nimeä taulukko2 verrattavat solut ="Alue"
et ole nimennyt haettavia soluja uudelleen.
"poistan värjäykset kokonaan Sheet1 taulukosta"
Makrohan poistaa värjäykset automaattisesti Sheet1:stä.Joten ei tartte tehdä...
eli...
Nimeä vain ne solut mitä vertaat ="Alue" ja toimii just niinkuin pitääkin...- .....
kunde kirjoitti:
"Esim. Poistan sieltä kaikki paitsi yhden solun. Kun ajan värjäys_makron uudestaan, niin värjää makro samat solut kuin aikaisemmalla kerralla. Ihan ku makro hakisi tiedot jostain muistista, eikä siltä Sheet2 alueelta."
nimeä taulukko2 verrattavat solut ="Alue"
et ole nimennyt haettavia soluja uudelleen.
"poistan värjäykset kokonaan Sheet1 taulukosta"
Makrohan poistaa värjäykset automaattisesti Sheet1:stä.Joten ei tartte tehdä...
eli...
Nimeä vain ne solut mitä vertaat ="Alue" ja toimii just niinkuin pitääkin...Opettelen vasta VBA:ta, joten kiitoksia kärsivällisyydestä.
Olen nimennyt alueen näin:
For Each solu In Range("A2:A6000")
Tieto haetaan sheet2 ja alueesta A2:A6000.
Onko tämä oikein? ..... kirjoitti:
Opettelen vasta VBA:ta, joten kiitoksia kärsivällisyydestä.
Olen nimennyt alueen näin:
For Each solu In Range("A2:A6000")
Tieto haetaan sheet2 ja alueesta A2:A6000.
Onko tämä oikein?originelli oli näin, ja siinä on toi "Alue", jonka määrittelet valikosta lisää/nimi/määritä Insert/Name/Define ja siinä valitset haluamasi solut ja annat alueelle nimeksi Alue. Näin sen ajattelin...
Ok voit muuttaa koodia siten, että korvaat
For Each solu In Range("Alue") tällä
For Each solu In Range("A2:A6000") ja käyt sitten koodissa muuttamassa aluetta.
Tietenkin voit tehdä niin, että valinta on alueena, niin ei tartte kuin valita testattavat solut ja suorittaa koodi
esim.
Sub PoistaTuplat()
Dim solu As Range
Dim Vika As Double
On Error GoTo virhe
For Each solu In Selection
If Not IsEmpty(solu) Then
EiTupla.Add solu.Value, CStr(solu.Value)
End If
Next solu
Exit Sub
virhe:
Resume Next
End Sub
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Mikä on kaivattusi etunimi?
Otsikossa siis on kysymys eriteltynä. Vain oikeat vastaukset hyväksytään.1302485En kestä katsoa
Sitä miten sinusta on muut kiinnostuneita. Olen kateellinen. Siksi pitäisi lähteä pois1091484- 1371317
Peräti 95 % persujen kannattajista rasisteja
Kertoo EVA:n teettämä kysely. Pakollista yhdenvertaisuuskoulutusta tarvitsee siis paljon laajempi joukko kuin pelkästää3491246Kun viimeksi kohtasitte/näitte
Mitä olitte tekemässä? Millainen ympäristö oli? Löydetään toisemme...1091167Olet kyllä vaarallisen himokas
Luova, kaunis, määrätietoinen, pervo, mielenkiintoinen, kovanaama, naisellinen ja erikoinen.991055On minulla suunitelma
Siitä ei vain tiedä kukaan muu kuin tällä hetkellä minä. Suunnitelma ja varasuunnitelma. Sinun takiasi nainen. Vain s46769Anna vielä vähän vihreää valoa
Teen sitten siirtoni, nainen. Tiedän, että olet jo varovaisesti yrittänyt lähestyä, mutta siitä on jo aikaa. Jos tunnet13751Ei koskaan saatu tuntea
Mitä olisi ollut painautua toisiimme vasten. Hengittää syvään, hyväillä ja rakastella vailla kiirettä. Tai repiä vaattee33730Palstan ylivoimaisesti suosituin keskustelunaihe
Palstan suosituin keskustelunaihe näyttää olevan homoseksuaalisuus. Otsikoiden perusteella voisi kuvitella olevansa Seks252729