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

Macro verticaal zoeken

Status
Niet open voor verdere reacties.

ce123

Gebruiker
Lid geworden
3 okt 2008
Berichten
31
Goedemiddag allemaal,

Hoop dat jullie me kunnen helpen met het volgende probleem.

Ik heb een excel bestand test "macro vert.zoeken.xls" met daarin 4 tabbladen (zie bijlage)
in het tabblad "Hoofd" Staan alle relatienummers in kolom A.
Nu wil ik graag een macro hebben die het volgende doet:

In kolom B ("Hoofd") moeten waardes (datums) gezocht en geplaatst worden. In eerste instantie moet relatienummer A1 in tabblad "A" opgezocht worden. Als er dan een waarde (datum) in kolom B1 staat dan moet deze ook in het tabblad "Hoofd" achter het relatienummer in kolom B komen te staan. Staat er niets ingevuld dan moet gekeken worden of er misschien een datum in tabblad B C of D is ingevuld.

Als ook daar geen waardes staan dan moet in een ander bestand "test macro2.xls" in tabblad Hoofd gekeken worden of daar misschien een datum is ingevuld die behoort bij het relatienummer. Mocht er geen datum zijn ingevuld, dan blijft de cel leeg.

Dit zoeken moet vervolgens met alle relatienummers in " test macro vert.zoeken.xls" tabblad "Hoofd" gebeuren.

Ik hoop dat jullie me snappen en anders hoor ik het graag.

alvast bedankt
 

Bijlagen

Code:
Sub tst()
On Error Resume Next
With Sheets("Hoofd")
    .Range("B1:B" & .Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
    For Each cl In .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
        For i = 2 To Sheets.Count
            If cl.Offset(, 1) <> "" Then Exit For
            cl.Offset(, 1) = Sheets(i).Columns(1) _
                .Find(cl, , xlValues, xlWhole, xlByRows, xlNext, False).Offset(, 1).Value
        Next
        If Not BookOpen("testmacro2.xls") Then Workbooks.Open ThisWorkbook.Path & "\" & "testmacro2.xls"
        ThisWorkbook.Activate
        If cl.Offset(, 1) = "" Then
            cl.Offset(, 1) = Workbooks("testmacro2.xls").Sheets("Hoofd").Columns(1) _
                .Find(cl, , xlValues, xlWhole, xlByRows, xlNext, False).Offset(, 1).Value
        End If
    Next
End With
Workbooks("testmacro2.xls").Close , False
End Sub

Function BookOpen(wbName As String) As Boolean
Dim wb As Workbook
On Error Resume Next
Set wb = Workbooks(wbName)
BookOpen = Not (Err.Number > 0)
End Function
Nu met controle op het al dan niet geopend zijn v/h 2de bestand. Je zal wel nog het pad en de naam v/h bestand moeten aanpassen aan de werkelijke situatie.
 
Laatst bewerkt:
ce123,

Je moet je code de volgende keer Selecteren en dan boven in het menu op # klikken.
Komt je code net zoals bij Warme bakkertje in een apart vak te staan. :thumb:
 
In je eerste vraag stel je dat er eerst in 4 tabbladen moet gezocht worden en dan in een extern bestand. In je aanvullende informatie spreek je plotseling over diverse externe bestanden waarin gezocht moet worden. Gelieve daarom eerst goed na te denken hoe je je vraag gaat formuleren alvorens ze hier te plaatsen. Dit wordt een geheel andere macro, hoe heten alle bestanden, waar staan ze op je harde schijf, enz ....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan