• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

zoeken met conditionele opmaak

Status
Niet open voor verdere reacties.

hahaHans

Gebruiker
Lid geworden
24 jan 2006
Berichten
46
Via een makro wil ik in een tabel laten zoeken naar een bepaalde tekenreeks.
HTML:
Sub find_alles()
  Range("A5").Select
  Selection.FormatConditions.Delete
  Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=A5=$A$1"
  Selection.FormatConditions(1).interior.colorindex=4
  Selection.AutoFill Destination:=Range("A5:Z5"), Type:=xlFillFormats
  Range("A5:Z5").Select
  Selection.AutoFill Destination:=Range("A5:Z1001"), Type:=xlFillFormats
 End Sub

En deze makro doet dat, maar hij hij kleurt de cel alleen als een cel precies geljk is als de waarde in cel A1. Maar ik wil dat hij de cel ook kleurt als de waarde in cel A1 voorkomt als deel van de waarde in de cel in de tabel. Hoe doe ik dat?

Hans
 
Code:
Sub find_alles()

    Range("A5").Select
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlExpression, [B]Formula1:="=NOT(ISERROR(FIND($A$1;A5)))"[/B]
    Selection.FormatConditions(1).Interior.ColorIndex = 4
    Selection.AutoFill Destination:=Range("A5:Z5"), Type:=xlFillFormats
    Range("A5:Z5").Select
    Selection.AutoFill Destination:=Range("A5:Z1001"), Type:=xlFillFormats

End Sub

Wigi
 
Ik heb je verandering geprobeerd, maar helaas werkt het niet bij mij. Ik ben verder gaan zoeken en heb wel een nederlandse formule gevonden die het doet:
HTML:
=EN(VIND.SPEC($A$1;A2&"*";1);$A$1<>"")
Als ik deze formule handmatig invul als voorwaardelijke opmaak, dan doet hij precies wat ik wil. Maar het moet via een makro, omdat ik wil kunnen wisselen tussen verschillende voorwaardelijke opmaken. En daarvoor heb ik waarschijnlijk de engelse vertaling van deze formule nodig maar die kan ik niet vinden. Kun je me daarmee helpen?

Hans
 
Die van mij werkt nochtans.

Probeer eens ; te vervangen in een , in mijn code.
 
Helaas, als ik de ; verander in , dan krijg ik de foutmelding:

Ongeldige procedure-aanroep of ongeldig argument.

Dus dat gaat ook niet werken bij mij.
 
In bijlage een bestand met mijn code in die werkt voor mij. XP, Excel 2003, Engelstalig.
 

Bijlagen

Beste Wigi,

Je bestand werkt precies zoals de bedoeling is. Maar als ik je makro een keer activeer, dan doet hij het niet meer.
De voorwaardelijke opmaak zoals hij in de cellen staat voordat ik de makro start is in het Nederlands:
=NIET(ISFOUT(VIND.ALLES($A$1;A5)))

En de makro zet hem er in het Engels in. Dat was echter zeer gemakkelijk te corrigeren door de nederlandse formule te kopieren in die makro. Hij werkt nu dus. Dank je.
 
Dat verklaart waarom ik een ; in de VBA code moest schrijven, want dat begreep ik niet.

Een formule in een cel zetten is via VBA altijd in het Engels, en met , notatie. Maar bij deze formule zette ik hem in het Engels (omdat ik een Engelstalige Excel versie heb), maar ; moest dus ook ipv een , Vreemd waarom het daar dus in de eigen taal moet en bij een Formula niet.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan