Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Button 2 Makros abwechselnd

Button 2 Makros abwechselnd
12.07.2017 15:19:08
Kisska
Hi zusammen,
über eine Schaltfläche (Button) sollen diese zwei Makros (Erweiterung und Reduzierung eines PivotTable-Felds) ausgeführt werden:

  • Makro 1:
    Sub erweitern()
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld1").ShowDetail = True
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld2").ShowDetail = True
    End Sub
    
    Makro 2:
    Sub reduzieren()
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld2").ShowDetail = False
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld1").ShowDetail = False
    End Sub
    

  • Wie führe ich die beiden Makros zusammen, damit diese abwechseln ausgeführt werden?
    Hab versucht hier abzugucken, aber leider ohne Erfolg:
    https://www.herber.de/forum/archiv/628to632/629621_Button_mehrere_Makros_zuweisen.html
    http://www.office-loesung.de/ftopic600706_0_0_asc.php
    Viele Grüße
    Kisska
    Anzeige

    11
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Button 2 Makros abwechselnd
    12.07.2017 15:28:51
    Tino
    Hallo,
    könnte so gehen.
    Zuerst der Schaltfläche ein Makro zuweisen, dann sollte es immer abwechselnt gehen.
    Sub erweitern()
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld1").ShowDetail = True
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld2").ShowDetail = True
    ActiveSheet.Shapes(Application.Caller).OnAction = "reduzieren"
    End Sub
    

    Sub reduzieren()
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld2").ShowDetail = False
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld1").ShowDetail = False
    ActiveSheet.Shapes(Application.Caller).OnAction = "erweitern"
    End Sub
    
    Gruß Tino
    Anzeige
    AW: Button 2 Makros abwechselnd
    12.07.2017 16:02:30
    Kisska
    Hallo Tino,
    perfekt, alles funktioniert einwandfrei :-) DANKE!
    Viele Grüße
    Kisska
    Toggle-Button
    12.07.2017 15:48:57
    Beverly
    Hi,
    benutze einen Toggle-Button aus den ActiveX-Steuerelementen und rufe entweder das 1. oder das 2. Makro auf:
    Private Sub ToggleButton1_Click()
    If ToggleButton1 Then
    erweitern
    Else
    reduzieren
    End If
    End Sub
    


    Anzeige
    AW: Toggle-Button
    12.07.2017 16:05:30
    Kisska
    Hallo Karin,
    zwar habe ich mein Anliegen bereits gelöst, dank Tinos Lösung, dennoch würde mich dein Ansatz interessieren.
    Ich habe die beiden Makros in ein separates Modul gepackt und oberhalb von den beiden deinen Code eingefügt. Beim Klick auf das Toggle-Button passiert aber nichts :( Was könnte ich falsch gemacht haben?
    Viele Grüße
    Kisska
    Anzeige
    AW: Toggle-Button
    12.07.2017 16:10:04
    Beverly
    Hi,
    mache einen Doppelklick auf den Toggle-Button bei aktiviertem Entwurfsmodus - dann gelangst du ins Codemodul des Tabellenblattes, wo der Code hingehört (nicht in ein allgemeines Modul, da es ein ActiveX-Steuerelement ist).


    Anzeige
    AW: Toggle-Button
    12.07.2017 16:13:35
    Kisska
    Aaah, sorry für meine Unerfahrenheit und herzlichen Dank für die Erklärung!
    Nun klappt auch diese Lösung - klasse, danke!
    Viele Grüße
    Kisska
    AW: Button 2 Makros abwechselnd
    12.07.2017 15:51:20
    Luschi
    Hallo Kisska,
    benutze kein Button, sondern ein ToggleButton
    
    Private Sub ToggleButton1_Click()
    With Me
    .PivotTables("PivotTable1").PivotFields("Feld1").ShowDetail = .ToggleButton1.Value
    .PivotTables("PivotTable1").PivotFields("Feld2").ShowDetail = .ToggleButton1.Value
    End If
    End Sub
    

    Userbild
    Gruß von Luschi
    aus klein-Paris
    Anzeige
    AW: Button 2 Makros abwechselnd
    12.07.2017 16:18:35
    Kisska
    Hallo Luschi,
    das ist ja ein kompakter Code :-) Nur leider kommt bei mir ein Fehler: "End if ohne if-Block"
    Was für ein If-Befehl soll ergänzt werden?
    Viele Grüße
    Kisska
    AW: Button 2 Makros abwechselnd
    12.07.2017 16:21:30
    Dieter(Drummer)
    Hallo Kisska,
    ersetze mal "End If" duch "End With".
    Gruß, Dieter(Drummer)
    AW: Button 2 Makros abwechselnd
    12.07.2017 16:31:06
    Kisska
    Ah, darauf hätte ich selbst kommen müssen :) Danke Dieter!
    Und nochmal danke Luschi für diese tolle Lösung!
    Viele Grüße
    Kisska
    Anzeige
    AW: Bitte. Danke für Rückmeldung. owT
    12.07.2017 16:36:30
    Dieter(Drummer)
    ;

    Forumthreads zu verwandten Themen

    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige
    Anzeige

    Infobox / Tutorial

    Makros abwechselnd mit einem Button in Excel ausführen


    Schritt-für-Schritt-Anleitung

    Um in Excel mehrere Makros mit einem Button abwechselnd auszuführen, kannst Du die folgenden Schritte befolgen:

    1. Makros erstellen: Erstelle die beiden Makros, die Du abwechselnd ausführen möchtest. Hier sind zwei Beispiele für Makros, die ein PivotTable-Feld erweitern und reduzieren:

      Sub erweitern()
         ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld1").ShowDetail = True
         ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld2").ShowDetail = True
      End Sub
      
      Sub reduzieren()
         ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld2").ShowDetail = False
         ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld1").ShowDetail = False
      End Sub
    2. Button einfügen: Füge einen Button in Deine Excel-Tabelle ein. Gehe dazu auf die Registerkarte „Entwicklertools“ und wähle „Einfügen“. Dort kannst Du einen Excel Makro Button auswählen.

    3. Makro zuweisen: Klicke mit der rechten Maustaste auf den Button und wähle „Makro zuweisen“. Wähle das erste Makro (z.B. erweitern) aus.

    4. Makros abwechselnd ausführen: Um die Makros abwechselnd auszuführen, modifiziere das erste Makro wie folgt:

      Sub erweitern()
         ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld1").ShowDetail = True
         ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld2").ShowDetail = True
         ActiveSheet.Shapes(Application.Caller).OnAction = "reduzieren"
      End Sub
      
      Sub reduzieren()
         ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld2").ShowDetail = False
         ActiveSheet.PivotTables("PivotTable1").PivotFields("Feld1").ShowDetail = False
         ActiveSheet.Shapes(Application.Caller).OnAction = "erweitern"
      End Sub

    Häufige Fehler und Lösungen

    1. Fehler: Makro nicht gefunden
      Lösung: Stelle sicher, dass die Makros im richtigen Modul gespeichert sind und korrekt benannt sind.

    2. Fehler: „End If ohne If-Block“
      Lösung: Überprüfe, ob Du alle If-Anweisungen korrekt implementiert hast. Oft kann ein fehlendes If vor dem End If der Grund sein.

    3. Toggle-Button funktioniert nicht
      Lösung: Stelle sicher, dass der Code im richtigen Modul für den Toggle-Button eingefügt ist. Doppelklicke auf den Button im Entwurfsmodus, um das richtige Codemodul zu öffnen.


    Alternative Methoden

    • Toggle-Button verwenden: Anstatt einen normalen Button zu verwenden, kannst Du einen Excel Toggle Button einfügen. Hier ist ein Beispielcode:

      Private Sub ToggleButton1_Click()
         If ToggleButton1.Value Then
             erweitern
         Else
             reduzieren
         End If
      End Sub
    • ActiveX-Steuerelemente: Nutze ActiveX-Steuerelemente, um mehr Kontrolle über das Verhalten des Buttons zu haben. Achte darauf, dass Du den Button im Entwurfsmodus bearbeitest.


    Praktische Beispiele

    Hier ist ein einfaches Beispiel, wie Du mehrere Makros mit einem Button ausführen kannst:

    1. Makros: Wie bereits gezeigt, erstelle die Makros erweitern und reduzieren.
    2. Button: Füge einen Button hinzu und weise ihm das Makro erweitern zu.
    3. Toggle-Button: Du kannst auch einen Toggle-Button verwenden, um zwischen den beiden Makros zu wechseln.

    Tipps für Profis

    • Verwende Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
    • Nutze Application.Caller, um den Namen des Buttons dynamisch abzurufen. Dies ist besonders nützlich, wenn Du mehrere Buttons hast, die ähnliche Funktionen ausführen.
    • Teste Deine Makros gründlich, bevor Du sie in wichtigen Dokumenten verwendest, um unerwartete Fehler zu vermeiden.

    FAQ: Häufige Fragen

    1. Wie kann ich einen Excel Makro als Button einfügen?
    Du kannst einen Button über die Registerkarte „Entwicklertools“ einfügen und anschließend das gewünschte Makro zuweisen.

    2. Kann ich mehrere Makros mit einem Button ausführen?
    Ja, Du kannst einen Button so programmieren, dass er mehrere Makros abwechselnd ausführt, indem Du die OnAction-Eigenschaft des Buttons nutzt.

    3. Was ist der Unterschied zwischen einem normalen Button und einem Toggle-Button?
    Ein normaler Button führt eine Aktion aus, während ein Toggle-Button zwischen zwei Zuständen wechselt, was ihn ideal für abwechselnde Aktionen macht.

    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