• 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.

Zoek probleem met VBA

Status
Niet open voor verdere reacties.

henkievermeer

Gebruiker
Lid geworden
5 mei 2015
Berichten
40
Hallo,

Ik zit met een zoek probleem.
Ik heb een tabblad genaamd werkzaamheden.
Als ik daar in laat zoeken werkt het perfect.
Als ik in een ander tabblad wil zoeken, in dit geval Soort, en de naam in het programma verander in de naam soort dan krijg ik een fout melding.

With Sheets("Werkzaamheden")
Set r = .Range("Werkzaamheden").Find(What:=res, LookAt:=xlWhole, LookIn:=xlValues, MatchCase:=False)

Set r = .Range("Werkzaamheden").FindNext(r)

Wat voor naam ik ook aan een ander tabblad geef, hij blijft het echter alleen met de naam werkzaamheden doen.
Ik wil dus ook in een ander tabblad kunnen zoeken.
Ik heb het programma een heel stuk ingekort om het duidelijk te maken.

Ik hoop dat iemand mij kan helpen.

Alvast bedankt
Henkie
 

Bijlagen

Je zal ook de range "Soort" moeten aanmaken, net zoals je de range "Werkzaamheden" hebt:
Werkzaamheden.jpg
 
Edmoor,

Kan je mij vertellen hoe ik dat moet doen?
Ik heb namelijk geen idee hoe dat moet.

Henkie
 
Selecteer op het blad "Soort" de kolommen A en B en geef vervolgens in het naamvak van Excel de naam Soort in. Aflsuiten met de Enter toets.
Soort.JPG

Het schermpje uit m'n vorige post roep je op met de toetscombinatie CTRL-F3
 
Edmoor,

Het werkt.
Nog een vraagje. Is dit ook variabel te maken?
Ik kan namelijk via het programma tabbladen aanmaken en daar moet dan eigenlijk ook in gezocht worden.
Dus zodra er een tabblad bijgekomen is, moet daar ook in gezocht kunnen worden.
Het aantal tabbladen zal niet groter zijn dan zo'n 20 stuks.

Henkie
 
Je kan een variabele maken die de naam van het blad bevat en tevens de naam van het te gebruiken benoemde bereik is.
Op deze manier met in een stukje uit je code:
Code:
    Dim Bladnaam As String
    Bladnaam = "Werkzaamheden"
    
    With Sheets(Bladnaam)
        Set r = .Range(Bladnaam).Find(What:=res, LookAt:=xlWhole, LookIn:=xlValues, MatchCase:=False)
 
Edmoor,

Ik neem aan dat de range ook opgegeven moet worden.
Kan dit ook automatisch?

Henkie
 
Dat kan, maar is meer werk om te automatiseren dan om het eenmalig per blad aan te maken op de wijze die ik eerder toonde.
En in het stukje code in #6 staat de range ook al aangegeven.
 
Laatst bewerkt:
Edmoor,

Ik ga er in het weekend mee aan de slag.
Misschien kom ik er dan nog op terug en anders zet hem op opgelost.

Tot zover bedankt!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan