Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Private Sub CommandButton1_Click() automatisch

Private Sub CommandButton1_Click() automatisch
04.11.2013 10:11:29
Heinz
Hallo Leute im Forum
Ich habe ein langes Makro das ich im Sheets "Artikel" mit
Private Sub CommandButton1_Click() aufrufe.
Nun möchte ich,wenn ich das Makro das erste mal aufrufe und das ganze makro durlaufen ist,das am Ende automatisch wieder Private Sub CommandButton1_Click()
aufgerufen wird.
ZB. mit Call,aber Call funktioniert in diesen Falle nicht.
Könnte mir dazu bitte jemand helfen.
Gruß Heinz

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Private Sub CommandButton1_Click() automatisch
04.11.2013 10:18:43
Hajo_Zi
Hallo Heinz,
warum Call?
CommandButton1_Click
das wird dann aber eine endlos Schleife.

AW: Private Sub CommandButton1_Click() automatisch
04.11.2013 10:20:54
Heinz
Hallo Hajo
  • das wird dann aber eine endlos Schleife.

  • Ja das stimmt auch wieder.
    Danke & Gruß Heinz

    Anzeige
    AW: Private Sub CommandButton1_Click() automatisch
    04.11.2013 10:42:41
    fcs
    Hallo Heinz,
    du musst dann eine Prüfung (am besten ein Zellwert) einbauen, die den Status "Makro" wird das 1. mal ausgeführt erkennt.
    Siehe nachfolgendes Beispiel.
    Ansonsten: Ist es so schwierig, bei Bedarf mit der Schaltfläche das Makro per Hand ein 2. mal zu starten?
    Gruß
    Franz
    Private Sub CommandButton1_Click()
    'Anfang langer Code
    Dim Zelle As Range
    For Each Zelle In Range("A2:A10")
    Zelle.Value = Zelle.Value + 1
    Next
    'Ende langer Code
    'Prüfung ob Makro schon ausgeführt wurde
    With Range("F1") 'Prüfzelle, ob Makro schon ausgeführt wurde - ggf. anpassen
    If .Value = True Then
    Exit Sub
    Else
    .Value = True
    Call CommandButton1_Click
    End If
    End With
    End Sub
    

    Anzeige
    AW: Private Sub CommandButton1_Click() automatisch
    04.11.2013 11:48:00
    Heinz
    Hallo Franz
    Recht herzlichen Dank,für deine Arbeit.
    Funktioniert.
    Ansonsten: Ist es so schwierig, bei Bedarf mit der Schaltfläche das Makro per Hand ein 2. mal  _
    zu starten?
    
    Es geht halt ein wenig effizienter.
    Danke & Gruß
    Heinz
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige
    Anzeige

    Infobox / Tutorial

    Automatisches Aufrufen von Private Sub CommandButton1_Click() in Excel VBA


    Schritt-für-Schritt-Anleitung

    Um die Private Sub CommandButton1_Click() Methode in Excel VBA automatisch erneut aufzurufen, kannst du die folgenden Schritte befolgen:

    1. Öffne das VBA-Editor-Fenster in Excel (ALT + F11).

    2. Wähle das entsprechende Arbeitsblatt aus, in welchem der Button platziert ist.

    3. Füge den Code für CommandButton1_Click ein:

      Private Sub CommandButton1_Click()
         ' Anfang langer Code
         Dim Zelle As Range
         For Each Zelle In Range("A2:A10")
             Zelle.Value = Zelle.Value + 1
         Next
         ' Ende langer Code
      
         ' Prüfung ob Makro schon ausgeführt wurde
         With Range("F1") ' Prüfzelle, ob Makro schon ausgeführt wurde - ggf. anpassen
             If .Value = True Then
                 Exit Sub
             Else
                 .Value = True
                 Call CommandButton1_Click
             End If
         End With
      End Sub
    4. Stelle sicher, dass die Prüfzelle (in diesem Beispiel F1) an einem geeigneten Ort ist, um den Status des Makros zu speichern.


    Häufige Fehler und Lösungen

    • Endlosschleife: Wenn du die CommandButton1_Click Methode direkt aufrufst, kann dies zu einer Endlosschleife führen. Um dies zu vermeiden, stelle sicher, dass eine Bedingung (z.B. Zellwert) geprüft wird, um zu erkennen, ob das Makro bereits ausgeführt wurde.

    • Falscher Zellbezug: Achte darauf, dass die Prüfzelle korrekt referenziert wird. Wenn die Zelle nicht existiert oder falsch angegeben ist, kann das Makro nicht korrekt arbeiten.


    Alternative Methoden

    Falls du eine Alternative zur Verwendung von Private Sub CommandButton1_Click() suchst, kannst du auch die Worksheet_Change-Ereignisprozedur in Betracht ziehen. Diese Methode wird ausgelöst, wenn sich der Inhalt einer Zelle ändert.

    Beispiel:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("A2:A10")) Is Nothing Then
            ' Dein Code hier
        End If
    End Sub

    Praktische Beispiele

    Ein häufiges Szenario ist das automatisierte Inkrementieren von Werten in einem bestimmten Bereich. Hier ist ein einfaches Beispiel:

    Private Sub CommandButton1_Click()
        Dim Zelle As Range
        For Each Zelle In Range("A2:A10")
            Zelle.Value = Zelle.Value + 1
        Next
        Range("F1").Value = True ' Setzt den Status
    End Sub

    In diesem Beispiel wird der Wert jeder Zelle im Bereich A2:A10 um 1 erhöht, und die Prüfzelle F1 wird auf Wahr gesetzt.


    Tipps für Profis

    • Debugging: Nutze Debug.Print oder setze Haltepunkte, um den Fluss deiner Makros zu überwachen und Probleme schneller zu identifizieren.

    • Modularität: Überlege, Teile deines Codes in separate Subroutinen auszulagern. So wird dein Code übersichtlicher und einfacher zu warten.

    • Ereignissteuerung: Nutze Ereignisse wie Worksheet_Change oder Workbook_Open, um deine Makros flexibler zu gestalten.


    FAQ: Häufige Fragen

    1. Kann ich Call CommandButton1_Click in einer anderen Subroutine verwenden?
    Ja, du kannst CommandButton1_Click auch in einer anderen Subroutine aufrufen, solange die Logik in der Prozedur korrekt ist und keine Endlosschleife verursacht.

    2. Was passiert, wenn die Prüfzelle (z.B. F1) gelöscht wird?
    Wenn die Prüfzelle gelöscht wird, wird das Makro nicht mehr erkennen, ob es bereits ausgeführt wurde. Stelle sicher, dass die Zelle vor ungewollten Änderungen geschützt ist.

    3. Warum funktioniert mein Makro nicht?
    Überprüfe, ob die Makro-Sicherheitseinstellungen in Excel richtig konfiguriert sind und ob es Fehler im Code gibt. Debugging kann hier sehr hilfreich sein.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige