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. VBA - Zeilen je nach Bedingung in neues Tabellenblatt verschieben und löschen

    in Microsoft Excel Hilfe
    VBA - Zeilen je nach Bedingung in neues Tabellenblatt verschieben und löschen: Hallo liebe Excel-Kommunity, nach ewigen Stunden des Suchens und Rumprobierens bin ich an dem Punkt angekommen an dem ich verzweifelt um eure Hilfe fragen muss. Da ich leider keinerlei...
  3. VBA Code Daten aus anderer Tabelle holen klappt nicht

    in Microsoft Excel Hilfe
    VBA Code Daten aus anderer Tabelle holen klappt nicht: Hallo Zusammen, Ich habe einen VBA Code, welcher mir automatisch Daten aus einer anderen geschlossenen Tabelle holt. Dieser funktioniert einwandfrei in einer schon länger genutzten Tabelle. Nun...
  4. VBA-Code Arbeitsblatt wechseln

    in Microsoft Excel Hilfe
    VBA-Code Arbeitsblatt wechseln: Hallo zusammen, ich habe mal wieder eine Frage. Aktuell beschäftige ich mich mit VBA-Codes. Beim öffnen meiner Arbeitsmappe erscheint folgender Hinweis: Private Sub Workbook_Open() 'Titel Hinweis...
  5. VBA Code erweitern

    in Microsoft Excel Hilfe
    VBA Code erweitern: Hallo zusammen, ich habe ein Problem in Excel mit einem VBA Code. In Spalte A habe ich Langtexte und in Spalte B habe ich dazu eine passende Abkürzung. Wenn ich in E5 "mehrere" Wörter schreibe...
  6. 2x Worksheet_Change(ByVal Target As Range)

    in Microsoft Excel Hilfe
    2x Worksheet_Change(ByVal Target As Range): Hallo zusammen, ich bin VBA-Anfänger und habe die ersten Codes erstellt. Nun möchte ich 2 von Ihnen, welche einzeln funktionieren, zusammenfügen, so dass beide entsprechend durchgeführt werden....
  7. VBA Code Funktioniert nicht

    in Microsoft Excel Hilfe
    VBA Code Funktioniert nicht: Hallo Leute habe ein Code von einem Lieben User bekommen. Obwohl es beim ersten mal funktioniert hat geht es nicht mehr. Da ich den User nicht erreichen kann (er hat wahrscheinlich viel zu tun :-)...
  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