Office: VBA - Was machen bestimmte Teile des Codes?

Helfe beim Thema VBA - Was machen bestimmte Teile des Codes? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, seit einigen Stunden versuche ich den folgenden Code zu verstehen, leider komme ich aber nicht weiter. (Den Code habe ich im Netz... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Tauchmann, 25. Januar 2013.

  1. Tauchmann Erfahrener User

    VBA - Was machen bestimmte Teile des Codes?


    Hallo zusammen,

    seit einigen Stunden versuche ich den folgenden Code zu verstehen, leider komme ich aber nicht weiter.
    (Den Code habe ich im Netz gefunden und er macht genau das was ich brauche bloß verstehe ich nicht wie.)

    Hier mal der Code im Ganzen:

    Sub test2()
    Dim strVerzeichnis As String
    Dim lngZaehlen As Long
    Dim strPfad As String

    strPfad = "C:\Dokumente und Einstellungen\bla\Desktop\Excel\"

    strVerzeichnis = Dir(strPfad, vbDirectory)
    Do While strVerzeichnis <> ""
    If strVerzeichnis <> "." And strVerzeichnis <> ".." And _
    (GetAttr(strPfad & strVerzeichnis) And vbDirectory) = vbDirectory Then
    lngZaehlen = lngZaehlen + 1
    Debug.Print lngZaehlen & " " & strVerzeichnis
    End If
    strVerzeichnis = Dir
    Loop
    End Sub


    Code:
    Sub test2()
       Dim strVerzeichnis As String
       Dim lngZaehlen As Long
       Dim strPfad As String
    
    Okay - hier werden die einzelnen Variablen definiert

    Code:
     strPfad = "C:\Dokumente und Einstellungen\Bla\Desktop\Excel\"
    
    Hier wird der Pfad festgelegt

    Code:
     strVerzeichnis = Dir(strPfad, vbDirectory)
    
    Hier wird festgelegt welche nach was im Pfad gesucht werden soll --> nach Ordnern

    Code:
    Do While strVerzeichnis <> ""
    
    Es wird eine Do While Schleife erstellt die solange läuft bis strVerzeichnis leer ist

    Code:
             If strVerzeichnis <> "." And strVerzeichnis <> ".." And _
             (GetAttr(strPfad & strVerzeichnis) And vbDirectory) = vbDirectory Then
    
    ALSO diesen Part verstehe ich absolut garnicht. Warum wird 1) nach "." gesucht 2) nach ".." gesucht und
    3) (GetAttr(strPfad & strVerzeichnis) And vbDirectory) = vbDirectory --> verstehe ich absolut gar nicht ???????? was macht das

    Code:
                lngZaehlen = lngZaehlen + 1
                Debug.Print lngZaehlen & " " & strVerzeichnis
          End If
    
    Okay - das ist klar

    Code:
    strVerzeichnis = Dir
    
    Was passiert hier????

    Code:
    Loop
    End Sub
    Die Schleife wird fortgesetzt und das Makro beendet.


    Hat einer von Euch eine Idee was die besagten Parts machen?

    Schöne Grüße
    Tauchmann
     
    Zuletzt bearbeitet: 25. Januar 2013
    Tauchmann, 25. Januar 2013
    #1
  2. maninweb
    maninweb MVP für Microsoft Excel
    Hallo Tauchmann,


    der Code listet Dir alle Verzeichnisse in einem Verzeichnis auf. Dir() ist eine VBA-Funktion.
    Die kannst Du auch in der VBA-Hilfe genauer anschauen, Cursor auf Dir setzen und F1.

    Dir() liefert Dir Dateien, Verzeichnisse usw. von einem Ordner zurück. Und - eine Eigenart
    von Dir() - wenn Du weitere Dir() Anweisungen in einer Schleife verwendest und dabei keine
    Parameter angibst, wird das nächste geforderte Element zurückgegegeben. Das passiert
    dann bei strVerzeichnis = Dir.

    GetAttr() prüft, ob es sich beim gefundenen Eintrag auch um ein Verzeichnis handelt.
    GetAttr() liefert einen Integer Wert für die Attribute zurück. Beinhaltet dieser Wert
    den Wert vbDirectory, liefert Wert AND vbDirectory den Wert vbDirectory. Daher
    die Anweisung. Zum Testen:
    Code:
    MsgBox vbDirectory
    MsgBox (vbDirectory + vbSystem) AND vbDirectory
    MsgBox CBool((vbDirectory + vbSystem) AND vbDirectory = vbDirectory)
    
    Aus DOS-Zeiten stammt noch . und .. die z.b. das Verzeichnis eine Ebene höher meinen.
    Beispielsweise geht der Befehl cd .. in einem Kommandozeilenfenster ein Verzeichnis höher.
    Deswegen liefert Dir() auch die zwei Elemente . und .., die dann im Code rausgefiltert werden.

    Gruß
     
    Zuletzt bearbeitet: 26. Januar 2013
    maninweb, 26. Januar 2013
    #2
  3. Tauchmann Erfahrener User
    Hallo Maninweb,

    vielen Dank für deine Antwort, nun wird mir so einiges klar.
    Ich glaube ich muss deinen Code morgen mal testen und dann sollte es hofentlich klarer werden.

    Vielen Dank für deine Hilfe
    Tauchmann

    P.S. Wenn dann noch etwas unklar ist, würde ich mich nochmal melden.
     
    Tauchmann, 27. Januar 2013
    #3
Thema:

VBA - Was machen bestimmte Teile des Codes?

Die Seite wird geladen...
  1. VBA - Was machen bestimmte Teile des Codes? - Similar Threads - VBA bestimmte Codes

  2. Intelligent eTabelle bestimmter Zellbereich markieren VBA

    in Microsoft Excel Hilfe
    Intelligent eTabelle bestimmter Zellbereich markieren VBA: Hallo zusammen, ich habe eine Intelligente Tabelle in der ein Zellbereich Markiert werden soll (A-I). Später soll dieser Bereich in Outlook eingefügt werden. Das bekomme ich hin. Wie und wo müsste...
  3. Über Eingabefelder bestimmte Zellen füllen, wohl VBA

    in Microsoft Excel Hilfe
    Über Eingabefelder bestimmte Zellen füllen, wohl VBA: Hallo, suche eine Möglichkeit wenn ich am Monatsende den Stromzählerstand ablese und Datum in C1 und Zählerstand in C2 eintrage, das dann C1 (Datum) in B27 übertragen wird. Außerdem Wert in C2...
  4. Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren

    in Microsoft Excel Hilfe
    Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren: Hallo zusammen, ich bin erst vor ein paar Tagen auf die Excel VBA gestoßen und kenne mich deswegen leider so gut wie gar nicht aus. Ich würde gerne aus den Tabellen 3 - 11, bestimmte Zeilen in die...
  5. Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro)

    in Microsoft Excel Hilfe
    Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro): Hallöchen, ich stehe aktuell vor folgendem Problem: Wir haben ein Excel Makro, das über die Zeiterfassung alle Mitarbeiter und ihre Stunden in verschiedenen Positionen auflistet. Eine abgespeckte...
  6. VBA Code Spalte für bestimmte Nuter ausblenden

    in Microsoft Excel Hilfe
    VBA Code Spalte für bestimmte Nuter ausblenden: Hallo Zusammen, wir nutzen im Betrieb zusätzlich eine Excel Liste für unsere Auftragsübersicht. Diese wir auf dem Server gespeichert. Da ich aber nicht möchte, dass alle die darauf Zugriff...
  7. VBA - Code Zeile einfügen soll erst ab bestimmter Zeile beginnen

    in Microsoft Excel Hilfe
    VBA - Code Zeile einfügen soll erst ab bestimmter Zeile beginnen: Hallo ihr Lieben, ich habe vor kurzem eine Excel-Tabelle erstellt, in der ich über ein Makro eine neue Zeile hinzufügen kann, in der alle Formeln und Formate übernommen werden. Das sieht so...
  8. Excel VBA Code: Ersetzen von Zeichen nach einer bestimmten Anzahl

    in Microsoft Excel Hilfe
    Excel VBA Code: Ersetzen von Zeichen nach einer bestimmten Anzahl: Hallo, ich habe eine Excel-Liste, die auf der Spalte F mit unterschiedlichen IDs befüllt ist. Die Länge der IDs ist auch unterschiedlich. Ich möchte nun folgendes per VBA Code tun: Ich möchte...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden