VBA Code Erklärung zu Suche

surfer09

Cadet 3rd Year
Registriert
Mai 2007
Beiträge
54
Hallo zusammen,

ich habe mir in einer Excel-Datei ein VBA Programm erstellt, welches die Tabelle nach einem definierten Suchbegriff durchsucht. Mit Hilfe von einigen Forenbeiträgen habe ich mir dann diesen VBA Code erarbeitet, der die Suchergebnisse in eine ListBox ausgibt.
Leider verstehe ich den Code noch nicht so ganz und habe es mehr mit probieren geschafft, das Ganze zum rennen zu bekommen.
Kann mir bitte jemand einmal in Kurzfassung den Code erklären? (z.B. Was stellt die Variable strFirst dar? Was bedeutet c.Address?)

Code:
'Suche
    Dim c As Range
    Dim rngBereich As Range
    Dim lngAnzahl As Long
    Dim strFirst As String
    With Sheets("Kartei-2020")
        Set rngBereich = .Columns("A:E")
        Set c = rngBereich.Find(UserFormSuche2020.TextBox_Suchbegriff, LookIn:=xlValues, lookat:=xlPart)
        If Not c Is Nothing Then
            strFirst = c.Address
            Do
                UserFormSuche2020.ListBox_Ergebnisse.AddItem .Cells(c.Row, 1)
                lngAnzahl = UserFormSuche2020.ListBox_Ergebnisse.ListCount
                UserFormSuche2020.ListBox_Ergebnisse.List(lngAnzahl - 1, 1) = .Cells(c.Row, 2)
                UserFormSuche2020.ListBox_Ergebnisse.List(lngAnzahl - 1, 2) = Format(.Cells(c.Row, 3), "hh:mm")
                UserFormSuche2020.ListBox_Ergebnisse.List(lngAnzahl - 1, 3) = .Cells(c.Row, 4)
                UserFormSuche2020.ListBox_Ergebnisse.List(lngAnzahl - 1, 4) = .Cells(c.Row, 5)
                UserFormSuche2020.ListBox_Ergebnisse.List(lngAnzahl - 1, 5) = .Cells(c.Row, 6)
                Set c = rngBereich.FindNext(c)
            Loop While Not c Is Nothing And c.Address <> strFirst
        End If
        
        If strFirst = "" Then
        MsgBox "Kein Suchergebnis gefunden!"
        End If
        
    End With

Danke!
 
Versteh ich nicht. DU hast den Code doch erstellt.

und was meinst du mit
surfer09 schrieb:
Was stellt die Variable strFirst dar?
?

wenn du den Code zeilenweise durchgehst, ist doch eigentlich alles selbsterklärend. Was macht denn z.B. Zeile 7? Und dann Zeile 8?

Und verstehst du die Bedingung If Not c Is Nothing Then? Also siehst du die Negation?
 
Mein Gott, in welchem Forum warst du denn da?
Das ist ja grauenvoll:kotz:
 
Nein, ich habe den Code nicht erstellt, sondern habe mir die Teile zusammengesucht und entsprechend angepasst. Ich bin Anfänger im Bereich VBA - deswegen frage ich ja, weil ich es gerne auch verstehen möchte. :rolleyes:
Wenn das zu großer Mist ist, dann gebt mir bitte eine bessere Lösung vor, vielleicht ist es dann auch verständlicher.
 
Zuletzt bearbeitet:
Da du dich in VBA einarbeiten moechtest, waere es sinnvoller, wenn du dir das selbst erarbeitest.
Damit erreichst du den größten Lerneffekt.

Dazu koenntest du dir bspw. das "Lokal"-Fenster einblenden lassen und das Skript Schritt fuer Schritt durchgehen und schauen was passiert. Oder du nutzt "print" oder "msgbox", um dir Zwischenergebnisse auszugeben.
Die verwendeten Befehle sind jetzt auch keine exoten und sind auch gut dokumentiert.

Allgemein:
Man wächst mit jeder Aufgabe, einfach weitermachen ...
 
Dann schreib doch hier bitte mal Zeile 6 - 11 zeilenweise auf, wie du den Code da verstehst.
 
Zeile 6: Arbeite mit dem Tabellenblatt „Kartei-2020“
Zeile 7: Setze die Variable rngBereich auf den Spaltenbereich A-E
Zeile 8: Suche nach dem Begriff, der in der Textbox_Suchbegriff steht im Bereich rngBereich, und fülle damit die Variable c (keine Ahnung es lookin und lookat zu bedeuten hat)
Zeile 9: Wenn c nicht leer ist dann
Zeile 10: Fülle die Variable strfirst mit dem Wert von Variable c
 
  • Gefällt mir
Reaktionen: abcddcba
Wenn das Grundverständnis für Variablen und Objektorientierung nicht da ist, muss man sich das erstmal erarbeiten, sonst wird man den Code nicht verstehen...
 
Zurück
Oben