Office: (Office 2019) VBA Code nicht vollständig ausgeführt

Helfe beim Thema VBA Code nicht vollständig ausgeführt in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen Ich habe einen Code erstellt der eine Liste in Excel importiert und dann alle Zeilen löscht, welche in der Spalte C entweder "Ersatz"... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von HGD_Beat, 15. Januar 2023.

  1. HGD_Beat Neuer User

    VBA Code nicht vollständig ausgeführt


    Hallo Zusammen

    Ich habe einen Code erstellt der eine Liste in Excel importiert und dann alle Zeilen löscht, welche in der Spalte C entweder "Ersatz" oder "Unfall" enthalten.
    Wenn ich den Code Schritt für Schritt ausführe, dann macht er alles richtig.
    Sobald der Code aber selber ganz durchläuft werden die Positionen "Unfall" und "Ersatz" nicht erkannt und die Zeilen nicht gelöscht.

    Kann da vieleicht jemand etwas erkennen?

    Private Sub Workbook_Open()

    If MsgBox("Um auf die neusten Mitgliederdaten zugreifen zu können, musst du diese zuerst aktualisieren! " & vbCr & vbLf & "Möchtest du das jetzt machen?", vbYesNo) = vbYes Then
    MsgBox "Logge dich bei der HG Verwaltung ein." & vbCr & vbLf & "Links im Menü unter Mitglieder -> Mitglieder kannst du anschliessend durch einen Rechtsklick auf das Wort Excel Export (oben in der Mitte) die Daten herunterladen." & vbCr & vbLf & "Erledige dies. " & vbCr & vbLf & "Der Rest wird von Excel erledigt."
    ThisWorkbook.FollowHyperlink "HG Verwaltung"

    MsgBox "Wenn du die Excel Datei heruntergeladen hast klicke hier auf OK. Excel wird dann die Daten automatisch importieren.", vbOKCancel

    ActiveWorkbook.Connections("Abfrage - Mitglieder").Refresh
    Application.Wait Now + TimeSerial(0, 0, 4) 'wartet 4 Sekunden
    Kill "C:\Users\Bidub\Downloads\mitglieder.xlsx"
    MsgBox "Die Daten wurden erfolgreich importiert, ich brauche nun noch einen Moment um Sie zu ordnen..."

    Sheets("Daten HG Verwaltung").Visible = True
    Sheets("Daten HG Verwaltung").Select

    Cells.Replace What:="" & Chr(10) & "", Replacement:="", LookAt:=xlPart, SearchOrder:= _
    xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Dim i As Integer, anz As Integer
    anz = [=COUNTA(c1:c1000)] + 1

    For i = 1 To anz
    anz = [=COUNTA(c1:c1000)] + 1
    If Cells(i, 3) = "Ersatz" Or Cells(i, 3) = "Unfall" Then
    ActiveSheet.Rows(i).Delete
    i = i - 1
    End If
    If i = anz Then
    Exit For
    End If
    Next


    Danke für eure Hilfe :)
     
    HGD_Beat, 15. Januar 2023
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    nur wenige schauen auf Deinen Rechner und sehen die Datei.
    Ich möchte gerne den Fehler im Original sehen.

    Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

    Ein Nachbau sieht meist anders aus als das Original. <B>Darum sollte das Original verlinkt werden.</b>

    Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
    Hinweis - Anonymisierung und Pseudonymisierung von Beispielmappen - MS-Office-Forum
    änderrn.
    Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
    Es sollte ein aussagekräftiger Name sein.

    Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)3

    Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.

    Bilder statt Datei | Excel ist sexy!

    Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.

    Das ist nur meine Meinung zu dem Thema.

    VBA Code nicht vollständig ausgeführt GrußformelVBA Code nicht vollständig ausgeführt Homepage
     
    Hajo_Zi, 15. Januar 2023
    #2
  3. HGD_Beat Neuer User
    Guten Abend Hajo

    Hiermit lade ich das Dokument, dass einfach diesen Teil enthält, hoch.
    Es ist das Dokument "HGD_Verwaltung_Test" und damit es funktioniert müsste die zweite Datei "mitglieder" in den Download Ordner (bei Windows) gespeichert oder der Code angepasst werden.

    Freundliche Grüsse
    Beat
     
    HGD_Beat, 15. Januar 2023
    #3
  4. Klaus-Dieter Erfahrener User

    VBA Code nicht vollständig ausgeführt

    Hallo,

    bei mir funktioniert das.
     
    Klaus-Dieter, 16. Januar 2023
    #4
  5. HGD_Beat Neuer User
    Hallo

    Danke für die Rückmeldung.
    Äusserst komisch...

    Bei mir funktioniert es bis ich die letzte MsgBox mit OK bestätige dann erscheinen die gelöschten Werte wieder.
     
    HGD_Beat, 16. Januar 2023
    #5
  6. Exl121150 Erfahrener User
    Hallo,

    ich habe dein Makro etwas modifiziert - insbesondere die Passage, wo du Zeilen aus der Tabelle löschst, war sehr fragwürdig.
    Code:
    Option Explicit
    Private Sub Workbook_Open()
    
       If MsgBox("Um auf die neusten Mitgliederdaten zugreifen zu können, musst du diese zuerst aktualisieren! " & vbCr & vbLf & _
             "Möchtest du das jetzt machen?", vbYesNo) = vbYes Then
        
          MsgBox "Logge dich bei der HG Verwaltung ein." & vbCr & vbLf & _
             "Links im Menü unter Mitglieder -> Mitglieder kannst du anschliessend durch einen Rechtsklick " & _
             "auf das Wort Excel Export (oben in der Mitte) die Daten herunterladen." & vbCr & vbLf & _
             "Erledige dies. " & vbCr & vbLf & "Der Rest wird von Excel erledigt."
          ThisWorkbook.FollowHyperlink "https://www.hgverwaltung.ch/#/login"
      
          MsgBox "Wenn du die Excel Datei heruntergeladen hast klicke hier auf OK. Excel wird dann die Daten automatisch importieren.", vbOKCancel
        
          ActiveWorkbook.Connections("Abfrage - Mitglieder").Refresh
          Application.Wait Now + TimeSerial(0, 0, 4)  'wartet 4 Sekunden
          Kill "C:\Users\Bidub\Downloads\mitglieder.xlsx"
          MsgBox "Die Daten wurden erfolgreich importiert, ich brauche nun noch einen Moment um Sie zu ordnen..."
        
          Dim lstMitglieder As ListObject, lstRow As ListRow
          Dim IdxNName As Long, NName As String
          Dim Idx As Long
        
          With Sheets("Daten HG Verwaltung")
            .Visible = True
            .Activate
          
            .Cells.Replace What:="" & Chr(10) & "", Replacement:="", LookAt:=xlPart, SearchOrder:= _
                  xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
            
             Set lstMitglieder = .ListObjects("Mitglieder")
             IdxNName = lstMitglieder.ListColumns("Nachname").Index
            
             For Idx = lstMitglieder.ListRows.Count To 1 Step -1
                Set lstRow = lstMitglieder.ListRows(Idx)
                NName = lstRow.Range.Cells(IdxNName)
                If NName = "Ersatz" Or NName = "Unfall" Then
                   lstRow.Delete
                End If
             Next Idx
          End With
    
          MsgBox "So! Nun bin ich fertig"
      
       Else
          MsgBox "Die Daten wurden nicht erneuert"
       End If
    End Sub
    

    Das lässt sich leicht erklären. Du rufst im VBA-Code eine PowerQuery-Abfrage auf:
    ActiveWorkbook.Connections("Abfrage - Mitglieder").Refresh
    Application.Wait Now + TimeSerial(0, 0, 4) 'wartet 4 Sekunden

    und wartest hinterher noch 4 Sekunden, um dann im weiteren Makro fortzufahren.
    Schaut man sich die Abfrage-Eigenschaften der Connection "Abfrage - Mitglieder" an:
    VBA Code nicht vollständig ausgeführt upload_2023-1-17_10-59-13.png
    so sieht man, dass du dort die Checkbox "Aktualisieren im Hintergrund zulassen" angehakt hattest. Entfernt man dieses Häkchen, erfolgt die Abfrageaktualisierung nicht mehr asynchron sondern synchron, d.h. das Makro, das diese Abfrage aufruft, muss warten, bis die Aktualisierung vollständig erfolgt ist, und dann erst kann das Makro weiter fortfahren. Wenn du die Einstellung wie im Bild verwendest, kannst du sogar die 4 Sekunden-Wartezeit entfernen.
     
    Exl121150, 17. Januar 2023
    #6
  7. HGD_Beat Neuer User
    Guten Abend

    Ja das glaube ich sofort das mein Code für Excel kenner an gewissen Stellen sehr fragwürdig daher kommt VBA Code nicht vollständig ausgeführt *:D*
    Ich habe das Programmieren nie wirklich gelernt und bastle mir jeweils für meinen Eigengebrauch irgendwelche Cods aus Tutorials und Anleitungen zusammen. Oftmals mit Erfolg... wenn auch nicht sonderlich schön oder effizient VBA Code nicht vollständig ausgeführt *;)*
    Viele Wege führen nach Rom, wobei längst nicht alle asphaltiert sind.
    Dennoch herzlichen Dank für den optimierten Code. Ich habe diesen sehr gerne eingebaut und es funktioniert super.

    Und herzlichen Dank für den Hinweis mit der Hintergrundaktualisierung. Daran hat es gelegen.
    Sobald dieses Häkchen weg war, funktionierte es ohne Probleme.

    Merci!

    Ich wünsche allen einen schönen Abend.
     
    HGD_Beat, 17. Januar 2023
    #7
Thema:

VBA Code nicht vollständig ausgeführt

Die Seite wird geladen...
  1. VBA Code nicht vollständig ausgeführt - Similar Threads - VBA Code ausgeführt

  2. Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.)

    in Microsoft Excel Hilfe
    Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.): Hallo, ich benötige Hilfe für ein Problem, welches ich leider selbst schwerlich als Anfänger nicht lösen kann: Ich möchte von dem Tabellenblatt "Tabelle1" aus den Zellen B8:B14, K8:K14, B18:B25,...
  3. VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"

    in Microsoft Excel Hilfe
    VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst": Hallo Leute dieser Code für Zellenhöhe bei Verbundenen Zellen Funktioniert fast. Ich habe ein Code von jemand anderem bekommen der nicht in einem Forum ist. Ich kann gerade diese Person nicht...
  4. PDF mit Namen,Datum speichern im Zielordner

    in Microsoft Excel Hilfe
    PDF mit Namen,Datum speichern im Zielordner: Hallo, habe das Problem den Namen in Zelle D2, Vorname in Zelle D5 , das Datum steht in der Zelle B 10 und soll beim speichern so angezeigt werden (Max Mustermann 2023 Oktober) wie und wo muß ich...
  5. Datentabelle per VBA Makro durch Kopieren und Einfügen einer Kopfzeile aufteilen

    in Microsoft Excel Hilfe
    Datentabelle per VBA Makro durch Kopieren und Einfügen einer Kopfzeile aufteilen: Hallo Zusammen, mein erster Beitrag hier, also schon mal Sorry im Voraus, wenn unvollständig beschrieben *:)* Ich habe das Forum schon nach einem brauchbaren Lösungsansatz durchsucht, bin aber...
  6. VBA Code soll erst ausgeführt werden, wenn mehrere Felder NICHT leer sind

    in Sonstiges
    VBA Code soll erst ausgeführt werden, wenn mehrere Felder NICHT leer sind: Hallo zusammen, ich möchte, dass mein VBA Code nicht nur (wie in meinem Code) die Zelle B4 prüft, ob diese ausgefüllt ist, er soll auch noch vier weitere Zellen überprüfen. Sub NeueAbrechnung()...
  7. VBA-Code in kopierter Mappe wird in Originalmappe ausgeführt

    in Microsoft Excel Hilfe
    VBA-Code in kopierter Mappe wird in Originalmappe ausgeführt: Hallo Ich erstelle mir einen Jahreskalender, indem ich die Originaldatei kopiere, alle Einträge in der Kopie lösche und den Kalender incl. Feiertage neu erstelle. Das passiert komplett mittels...
  8. VBA Code wird nicht ausgeführt

    in Microsoft Excel Hilfe
    VBA Code wird nicht ausgeführt: Ciao zusammen, ich habe da ein Problem mit einem Code der nicht ausgeführt wird. Das komische jedoch dabei ist, dass der Code für alle Ligen gleich aufgebaut ist und sich nur der Name des Blattes...
  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