Verticaal zoeken met VBA excel

Status
Niet open voor verdere reacties.

lvisser

Gebruiker
Lid geworden
23 dec 2021
Berichten
65
Vraag .. ik zoek met VBA in excel waarden op. Dat gaat prima. is er ook een mogelijkheid, als de formule niets vindt in het opgegeven zoekgebied om dan een tekst weer te geven ? bijvoorbeeld, "niet gevonden" ?

' Bewaarde waarden opzoeken en plaatsen op planningsblad
'


Dim Planning As Worksheet
Dim DataBewaren As Worksheet


Set Planning = ThisWorkbook.Sheets("PlanningOverzicht")
Set DataBewaren = ThisWorkbook.Sheets("DataBewaren")


With Planning


Range("I3:GB3").Value = Application.VLookup(Range("I7:GB7"), DataBewaren.Range("H1:M999"), 6, False)
Range("B11:B110").Value = Application.VLookup(Range("A11:A110"), DataBewaren.Range("A1:E999"), 4, False)
Range("H11:H110").Value = Application.VLookup(Range("A11:A110"), DataBewaren.Range("A1:E999"), 5, False)

End With

End Sub
 
ik zit een beetje te staren en te proberen, maar kom toch niet echt uit de Find.range...
is er niet iets in VBA als de Vlookup niet vindt dat dan een vaste waarde terugkomt ?
een soort als.fout ?
 
Wat is het verschil tussen Range.Find en Find.Range ?
 
Laat weten wat precies je bedoeling is.
Horizontaal zoeken levert 1 waarde op die je naar 1 cel kan schrijven.
In je voorbeeld geef je meerdere cellen op waar naar geschreven moet worden en meerdere cellen waarin gezocht moet worden.

En plaats daarbij een voorbeeld document.
 
Je wilt dus, wanneer je op die knop klikt, de gegevens in rij 3 per ritnummer vervangen door de bij dat ritnummer behorende gegevens uit het blad Data?
 
Begin met het verwijderen van alle samengevoegde cellen.
 
Je wilt dus, wanneer je op die knop klikt, de gegevens in rij 3 per ritnummer vervangen door de bij dat ritnummer behorende gegevens uit het blad Data?

dat klopt. en dat lukt ook, maar als er niet iets gevonden wordt, zou ik een vaste waarde willen terug geven. zoiets als "Moet nog"
 
Probeer dit maar eens:
Code:
Sub OldData()
    For Each cl In Range("C7:P7")
        Set c = Sheets("Data").Range("A:A").Find(cl.Value, , , xlWhole)
        If Not c Is Nothing Then
            cl.Offset(-4).Value = c.Offset(, 5)
        Else
            cl.Offset(-4) = ""
        End If
    Next cl
End Sub
Vertel ook eens waarom je die cellen als samengevoegd nodig hebt.
 
ik heb de samengestelde kolom nodig omdat een rit uit diepvries en/of vers kan bestaan. nu is dit in een oogopslag zichtbaar voor een planner. als je dit gaat weergeven per kolom dan worden de getallen klein, en het zijn dezelfde waarden...
 

Bijlagen

  • Knipsel.JPG
    Knipsel.JPG
    39,7 KB · Weergaven: 25
Daar heb je geen samengevoegde cellen voor nodig.
Verdiep je eens in Excel via een cursus of een handboek.
 
Daar heb je geen samengevoegde cellen voor nodig.
Verdiep je eens in Excel via een cursus of een handboek.
Want ? voor wat ik ermee wil bereiken werkt dit prima. ben benieuwd wat er beter kan?
 
Waarom denk je dat het nodig was een vraag in dit forum te stellen ?
Maar, als jij het beter weet, weet je het beter.
 
ik hou me aanbevolen voor wat meer uitleg, daarom stel ik hier m'n vragen, ik ben namelijk nog niet in de handleidingen/cursussen tegengekomen hoe dat anders zou kunnen.
 
En #12 heb je al getest?
 
Het is wel snel, maar duurt dan lang door de hoeveelheid.
Daar zit verschil in.
Verder is dan je voorbeeld niet echt relevant.
Je kan ook nog ScreenUpdating uit zetten en Calculation op manual.
Je voorbeeld gaf daar geen aanleiding toe.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan