Microsoft Excel

Herbers Excel/VBA-Archiv

Suche per VBA

    Betrifft: Suche per VBA von: Sebastian
    Geschrieben am: 03.09.2003 09:50:44

    ich suche per vba eine variable aus einem Quellsheet in einem Datensheet. wenn diese variable in dem datensheet gefunden wird, soll sie in dem quellsheet in eine zelle eingetragen werden. mein problem:
    wenn diese variable jetzt nicht in dem datensheet vorhanden ist, soll in der zelle im quellsheet in bestimmter wert ("nicht vorhanden") eingetragen werden. Funktionsweise?
    hier der code:

    Public

    Sub FindenKtnr()
    
    Dim i As String
    Dim j As String
    
    Application.ScreenUpdating = False
    
    For x = 1 To 5
    
    i = Worksheets("Geschaefte").Range("c1").End(xlDown).Offset(1, -2)
    If i = "" Then Exit Sub
    
    
    Windows("VIAACNET.xls").Activate
    Range("c:c").Select
    j = Selection.find(i).Offset(0, -2)
    
    
    Windows("Uebersicht.xls").Activate
    Range("c1").End(xlDown).Offset(1, 0).Select
    Selection.Value = j
    
    
    Next x
    
    Application.ScreenUpdating = True
    
    End Sub
    



    Vielen Dank
      


    Betrifft: AW: Suche per VBA von: Nike
    Geschrieben am: 03.09.2003 12:14:40

    Hi,
    da muß man erst mal erkennen, was wo gesucht und wohin
    kopiert werden soll ;-)

    Ich nehme einfach mal an,
    das in die erste Tabelle gesucht wird:

    Sub FindenKtnr()
    
    Dim i As String
    Dim j As String
    Dim wkbZ As Workbook 'Zieldatei
    Dim wkbQ As Workbook ' Quelldatei
    
    Dim wksZ As Worksheet ' Zieltabelle
    Dim wksQ As Worksheet ' QuellTabelle - in der gesucht wird
    
    Set wkbZ = Workbooks("Uebersicht")
    Set wkbQ = Workbooks("VIAACNET")
    
    Set wksZ = wkbZ.Worksheets("Geschaefte")
    Set wksQ = wkbQ.Worksheets(1) ' erste Tabelle in der Datei VIAACNET wird durchsucht
    Application.ScreenUpdating = False
    For x = 1 To 5
        i = wksZ.Range("c1").End(xlDown).Offset(1, -2)
        If i = "" Then Exit Sub
        Windows("VIAACNET.xls").Activate
        j = wksQ.Range("c:c").Find(i).Offset(0, -2)
        wksZ.Range("c1").End(xlDown).Offset(1, 0).Value = j
    Next x
    Application.ScreenUpdating = True
    End Sub
    


    Vielleicht hilft der Ansatz ja mal, so ohne Select und so ;)

    Bye

    Nike