Collapse column

Autor Thema: Office 2016 DoLoop Schleife springt zum Anfang der Sub  (Gelesen 250 mal)

Online FlorianF

  • Jr. Member
  • **
  • Beiträge: 56
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Office 2016 DoLoop Schleife springt zum Anfang der Sub
« am: Oktober 12, 2017, 11:19:18 Vormittag »
Hi Leute,

ich bin am verzweifeln. Ich habe eine DoLoop-Schleife erstellt welche aber nach einigen Durchläufen immer an den Anfang der Sub springt und dadurch ein fehlerhaftes Verhalten auslöst, da dann die Variable i wieder auf den Anfangswert gesetzt wird.

Sub ZwischenzeilenEinfuegen()

    Dim i As Long
   
    i = 6
    With tblZahlungUebersicht
        Do Until .Cells(i, 1).Value = ""
            If .Cells(i, 1).Value <> .Cells(i + 1, 1).Value Then
                .Cells(i + 1, 1).EntireRow.Insert
            End If
            i = i + 1
        Loop
    End With
   
End Sub

Wo liegt der Fehler?

Danke euch und beste Grüße
Flo

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 810
  • Microsoft Excel MVP
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2010
Antw:Office 2016 DoLoop Schleife springt zum Anfang der Sub
« Antwort #1 am: Oktober 15, 2017, 09:45:20 Vormittag »
Hallo,

nicht so ganz nachvollziehbar, Du fügst eine Leerzeile bei Auftreten der Bedingung ein, die dann bei der
nächsten Iteration zum Abbruch der Schleife führt. Ungetestet, versuche es mal hiermit...

Code: Visual Basic
  1. Sub ZwischenzeilenEinfuegen()
  2.  
  3.   Dim i As Long
  4.  
  5.   i = 6
  6.  
  7.   With tblZahlungUebersicht
  8.  
  9.     Do Until .Cells(i, 1).Value = ""
  10.    
  11.       If .Cells(i, 1).Value <> .Cells(i + 1, 1).Value Then
  12.        
  13.        .Cells(i + 1, 1).EntireRow.Insert
  14.         i = i + 2
  15.        
  16.       Else
  17.      
  18.         i = i + 1
  19.        
  20.       End If
  21.    
  22.     Loop
  23.  
  24.   End With
  25.  
  26. End Sub

Gruß
Microsoft Excel MVP 2011-2017/2018 · excel-ticker.de · excel-translator.de · excel-soccer.de


Online FlorianF

  • Jr. Member
  • **
  • Beiträge: 56
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw:Office 2016 DoLoop Schleife springt zum Anfang der Sub
« Antwort #2 am: Oktober 15, 2017, 12:47:08 Nachmittag »
Verstehe nicht ganz wieso aber it works! :D

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 810
  • Microsoft Excel MVP
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2010
Antw:Office 2016 DoLoop Schleife springt zum Anfang der Sub
« Antwort #3 am: Oktober 15, 2017, 13:09:09 Nachmittag »
Hallo,

prima :-)

Na, Dein Zähler fängt bei 6 an. Sagen wir mal an Position 8 wird Deine Bedingung erfüllt. Also Cells(8,1)<>Cells(9,1).
Dann fügt Dein Code eine Zeile vor Cells(9,1) ein oder auch nach Cells(8,1). Dein Zähler steht aber immer noch auf
Position 8 und die neu eingefügte Zeile ist jetzt 9 und die ehemalige 9 rutscht runter auf 10. Daher i+2. Jetzt klarer?

Gruß


Microsoft Excel MVP 2011-2017/2018 · excel-ticker.de · excel-translator.de · excel-soccer.de

Online FlorianF

  • Jr. Member
  • **
  • Beiträge: 56
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw:Office 2016 DoLoop Schleife springt zum Anfang der Sub
« Antwort #4 am: Oktober 15, 2017, 13:11:24 Nachmittag »
Ok verstanden. Aber wieso hebelt das die Schleife bzw. die ganze Prozedur aus, dass der Code wieder am Anfang der Sub startet?

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 810
  • Microsoft Excel MVP
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2010
Antw:Office 2016 DoLoop Schleife springt zum Anfang der Sub
« Antwort #5 am: Oktober 15, 2017, 13:24:16 Nachmittag »
Hallo,

Zitat
Aber wieso hebelt das die Schleife bzw. die ganze Prozedur aus, dass der Code wieder am Anfang der Sub startet?

genau das konnte ich nicht nachprüfen. Falls Du den Code in einem Ereignis hast, kann, muss aber nicht, es daran liegen.

Gruß
Microsoft Excel MVP 2011-2017/2018 · excel-ticker.de · excel-translator.de · excel-soccer.de

Online FlorianF

  • Jr. Member
  • **
  • Beiträge: 56
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw:Office 2016 DoLoop Schleife springt zum Anfang der Sub
« Antwort #6 am: Oktober 15, 2017, 14:56:29 Nachmittag »
Ok. Hauptsache aber es funktionier nun :) Danke!!