Office: Endlosschleife mit Do..While ??

Helfe beim Thema Endlosschleife mit Do..While ?? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte zwei Dateien mit einer Schleife in einem Makro öffnen. Ich erzeuge mir aber leider Endlosschleifen oder es wird nur eine Datei... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Marius82, 11. Dezember 2012.

  1. Marius82 Erfahrener User

    Endlosschleife mit Do..While ??


    Hallo,
    ich möchte zwei Dateien mit einer Schleife in einem Makro öffnen. Ich erzeuge mir aber leider Endlosschleifen oder es wird nur eine Datei geöffnet.

    Hier mein Code:


    Code:
    Sub dotest()
      Dim strFirma As String
        strFirma = "A"
        Do While strFirma = "A"
            Workbooks.Open Filename:="C:\Test\Test-" & strFirma & ".xlsx"
            strFirma = "B"
        Loop
    End Sub
    Was ist dort richtig? Do while? do until? loop while? loop until?
    Ich stehe gerade etwas auf dem Schlauch.
    Danke

    Ich benutze Excel 2010
     
    Marius82, 11. Dezember 2012
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi Marius,

    wenn es nur 2 Dateien sind - weshalb dann eine Schliefe? Da reicht doch, wenn du für beide den Code schreibst - das sind insgesamt nur 2 Codezeilen und Variablen sind auch nicht notwendig.

    Wenn es viele Dateien sind, könnte man es so lösen:

    Code:
    Sub dotest()
       Dim arrFirma()
       Dim intZaehler As Integer
       arrFirma = Array("A", "B", "C", "D")
       For intZaehler = 0 To 3
          Workbooks.Open Filename:="C:\Test\Test-" & arrFirma(intZaehler) & ".xlsx"
       Next intZaehler
    End Sub
    Bis später,
    Karin
     
  3. Marius82 Erfahrener User
    Danke für die tolle Lösung! Die ist für mehrere Dateien auf jeden Fall gut geeignet.

    In meinem Fall sind es tatsächlich nur zwei Dateien. In diesen beiden Dateien wird mit dem Makro noch weiter gearbeitet. Das hatte ich nur zum einfachem Verständnis ausgeschnitten. Deswegen wollte ich auch bei nur 2 unterschiedlichen Dateien eine Schleife bauen, weil in beiden Dateien noch die selben Berechnungen durch das Makro statt finden. Da wollte ich dann anstatt den ganzen code nochmal zu schreiben lieber mit einer Schleife arbeiten. Oder ist das Quatsch?
    Meine Gedanke war ca so:

    Code:
    Sub dotest()  Dim strFirma As String
        strFirma = "A"
        Do While strFirma = "A"
            Workbooks.Open Filename:="C:\Test\Test-" & strFirma & ".xlsx"
            
            'Formatiere
            'Rechne
            'Rechne
            'rechne
                   
            strFirma = "B"
        Loop
    End Sub
    
    
    
    Also erst eine Datei öffnen, dann in der Datei Formatierungen und Berechnungen durchführen, dann das gleiche mit der anderen Datei durchführen.
     
    Marius82, 11. Dezember 2012
    #3
  4. Beverly
    Beverly Erfahrener User

    Endlosschleife mit Do..While ??

    eine Schleife ist sozusagen eine Zähl-Anweisung, bei der eine Variable "hochgezählt" wird und die Schleife entsprechend oft durchlaufen werden soll:

    Code:
    Sub dotest()
       Dim strFirma As String
       Dim intZaehler As Integer
       strFirma = "A"
       Do While intZaehler <> 2
           Workbooks.Open Filename:="C:\Test\Test-" & strDatei & ".xlsx"
           'Formatiere
           'Rechne
           'Rechne
           'rechne
           intZaehler = intZaehler + 1
           strFirma = "B"
       Loop
    End Sub
    Das funktioniert aber eben nur bei 2 Durchläufen, weil der Inhalt der Variablen strFirma ja nur einmal geändert werden kann. Wobei eine solche Konstruktion ein wenig "von Hinten durch die linke Brust ins rechte Ausge" ist. Endlosschleife mit Do..While ?? :rolleyes:

    Sinnvoll wäre höchstens dieser Weg - aber dann ohne Schleife, wobei der Code für das, was mit der Datei passieren soll, in eine Sub ausgelagert wird und diese Sub 2 mal hintereinander auferufen wird:

    Code:
    Sub dotest()
       Ausfuehren "A"
       Ausfuehren "B"
    End Sub
    
    Sub Ausfuehren(strDatei As String)
       Workbooks.Open Filename:="C:\Test\Test-" & strDatei & ".xlsx"
       ' hier der weitere Code was in der Mappe gemacht werden soll
    End Sub
    
    Bis später,
    Karin
     
  5. Marius82 Erfahrener User
    Ahhh, Danke! Die Lösung gefällt mir!!

    Vielen Dank


    Gesendet von meinem iPad mit Tapatalk HD
     
    Marius82, 11. Dezember 2012
    #5
  6. Marius82 Erfahrener User
    Hallo,
    ich habe doch noch ein Problem, und zwar muss ich in dem Sub Ausführen zwei Variablen aus einer UserForm übernehmen. Bekomme das aber nicht auf die Reihe Endlosschleife mit Do..While ?? :(
    Hier mein Code:

    Code:
    Option Explicit
    Public lngJahr As Long
    Public strMonat As String
    
    Public Sub CommandButton1_Click()   
        With UserForm1
            lngJahr = .TextBox1
            strMonat = .TextBox2
        End With
       
       Ausfuehren "A"
       Ausfuehren "B"   
    End Sub
    
    Sub Ausfuehren(strDatei As String)
       Workbooks.Open Filename:="C:\Test\Test-" & strDatei & lngJahr & strMonat".xlsx"
       ' hier der weitere Code was in der Mappe gemacht werden soll
    End Sub
    
    Wie bekomme ich die Variable strMonat und lngJahr in das Sub Ausführen ohne ein Konflikt mit der strDatei zu bekommen?

    DANKE
     
    Zuletzt bearbeitet: 12. Dezember 2012
    Marius82, 12. Dezember 2012
    #6
  7. Beverly
    Beverly Erfahrener User
    versuche es auf diesem Weg (ungetestet):

    Code:
    Sub dotest()
       Ausfuehren "A", lngJahr, strMonat
       Ausfuehren "B", lngJahr, strMonat
    End Sub
    
    Sub Ausfuehren(strDatei As String, lngJahr1 As Long, strMonat1 As String)
       Workbooks.Open Filename:="C:\Test\Test-" & strDatei & lngJahr1 & strMonat1 & ".xlsx"
       ' hier der weitere Code was in der Mappe gemacht werden soll
    End Sub
    
    Bis später,
    Karin
     
Thema:

Endlosschleife mit Do..While ??

Die Seite wird geladen...
  1. Endlosschleife mit Do..While ?? - Similar Threads - Endlosschleife While

  2. While-Schleife wird nicht beendet

    in Microsoft Access Hilfe
    While-Schleife wird nicht beendet: Hallo Forum Ein aus einem Unterformular soll in ein Feld im Hauptformular übernommen (fix abgespeichert) werden. Das Feld wurde nachträglich im Hauptformular (+ Tabelle) eingefügt. Nun habe ich...
  3. Endlosschleife

    in Microsoft Excel Hilfe
    Endlosschleife: Hallo alle zusammen! Ich beise schon die Zähne seit Tag aus wegen einen Schleifen Problem. Problem Beschreibung: Ich habe ein Makro das ein Bild aus Excel im Querformat exportieren soll und in...
  4. Problem mit Endlosschleife

    in Microsoft Excel Hilfe
    Problem mit Endlosschleife: Hallo, habe ein Problem mit meiner Userform die anhand des Values verschiedener Checkboxen Aktionen ausführt. Leider hängt sich das Sub ab einer Schleifenlänge von x = 10 auf wenn ich for x = 1...
  5. Authenticator in Endlosschleife bei Identprüfung

    in Microsoft Teams Hilfe
    Authenticator in Endlosschleife bei Identprüfung: Hallo :-) mit meinem neuen Telefon musste ich auch meinen Authenticator neu installieren. Eigentlich kein Problem, dachte ich. Nutzername, Passwort, alles ok. Dann soll ich meine Mailadresse...
  6. Microsoft Teams - lädt nicht, Endlosschleife

    in Microsoft Teams Hilfe
    Microsoft Teams - lädt nicht, Endlosschleife: Moin zusammen, habe das Problem, dass MS Teams nach dem Starten in einer Endlosschleife hängt und nur lädt. [ATTACH] Hat jemand Ideen was ich tun könnte um diesen Fehler zu beheben? Im...
  7. MS Teams App lädt nicht - Endlosschleife

    in Microsoft Teams Hilfe
    MS Teams App lädt nicht - Endlosschleife: Hallo, ich nutze eine Office 365 Business Standard Lizenz und versuche verzweifelt Teams und Skype for Business zu nutzen. Die Anmeldung in der Teams App funktioniert - jedoch endet die "Teams...
  8. Endlosschleife in Excel

    in Microsoft Excel Hilfe
    Endlosschleife in Excel: Hallo. wer kann mir schnell helfen? Ich habe eine ziemlich umfangreiche Exeltabelle mit ca. 5.500 KB. Diese beinhaltet ca. 150 Arbeitsblätter. die alle miteinander verknüpft sind. Davon werden in...
  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