Ergebnis 1 bis 4 von 4

Computerproblem VBA

Erstellt von bmw-q, 11.01.2010, 08:56 Uhr · 3 Antworten · 536 Aufrufe

  1. Registriert seit
    10.01.2010
    Beiträge
    67

    Standard Computerproblem VBA

    #1
    Ja das gehört nun nicht gaaanz hierher. Aber mal schauen vll. kennt sich ja jemand aus.

    Ich habe eine Excel Tabelle. In den ersten beiden Spalten sind Werte eingetragen. Nun möchte ich über ein VBA-Skript in Windows Ordner erzeugen mit genau diesen Werten. Geschfft habe ich es:
    Beispiel: Wert A = Andreas Wert2 = Müller
    sub machdir()
    pname=cells(1,1).value & "_" & cells(1,2).value
    MkDir pname
    end sub


    Andreas_Müller

    Leider macht er mir immer nur den ersten Eintrag.
    Mir fehlt nun eine Schleife der das ganze abarbeitet. Kann mir jemand schreiben wie so etwas auszusehen hat?

  2. Registriert seit
    26.09.2007
    Beiträge
    1.606

    Standard

    #2
    Zitat Zitat von bmw-q Beitrag anzeigen
    Ja das gehört nun nicht gaaanz hierher. Aber mal schauen vll. kennt sich ja jemand aus.

    Ich habe eine Excel Tabelle. In den ersten beiden Spalten sind Werte eingetragen. Nun möchte ich über ein VBA-Skript in Windows Ordner erzeugen mit genau diesen Werten. Geschfft habe ich es:
    Beispiel: Wert A = Andreas Wert2 = Müller
    sub machdir()
    pname=cells(1,1).value & "_" & cells(1,2).value
    MkDir pname
    end sub


    Andreas_Müller

    Leider macht er mir immer nur den ersten Eintrag.
    Mir fehlt nun eine Schleife der das ganze abarbeitet. Kann mir jemand schreiben wie so etwas auszusehen hat?

    Ser's,

    ohne jetzt genau auf die Syntax einzugehen, lies in der Onlinehilfe, wie man mit Collections umgeht.
    Stichwort Foreach.

    Oder mache einfach eine einfache for next Schleife

    for i = 0 to cells.count
    pname=cells(i,1).value & "_" & cells(i,2).value
    MkDir pname
    next
    SYNTAX BITTE NACHSCHAUEN - DAS IST NUR "PSeudocode"
    Aufpassen, ob ich Zeile/Spalte nicht verdreht habe!

    Die Online-Hilfe zu VBA ist auch für Anfänger halbwegs brauchbar

    liebe Grüße

    Wolfgang

  3. Registriert seit
    29.09.2007
    Beiträge
    1.175

    Standard

    #3
    For-next Schleife oder Do- While, die Endbedingung ist dann, in Spalte A auf eine leere Zelle zu treffen:

    Sub machdir()
    x = 1 'in dieser Zeile startet das Script

    Do While Cells(x, 1) <> "" '...und läuft durch alle Zeilen, bis eine leere Zelle/Zeile gefunden wird
    pname = Cells(x, 1).Value & "_" & Cells(x, 2).Value
    MkDir pname
    x = x + 1 ' zähler eins hoch setzen
    Loop
    End Sub



    Gruß

    Frank

  4. Registriert seit
    10.01.2010
    Beiträge
    67

    Standard

    #4
    He Danke Ihr zwei.
    Hat wunderbar funktioniert. Hab das Skript noch etwas angepasst damit es mir die Ordner an einem Ort erzeugt wo ICH es will.
    Hier das fertige Skript für diejenigen die das irgendwann mal brauchen könnten.

    Sub machdir()
    x = 1 'in dieser Zeile startet das Script

    Do While Cells(x, 1) <> "" '...und läuft durch alle Zeilen, bis eine leere Zelle/Zeile gefunden wird
    pname = "E:\Temp\" & Cells(x, 1).Value & "_" & Cells(x, 2).Value
    MkDir pname
    x = x + 1 ' zähler eins hoch setzen
    Loop
    End Sub

    PS: Achtung. vergesst icht das die Inhalte der Tabelle auch Zeichen beinhalten könnten mit denen Windows nichts anfangen kann ( / )