Office: 1 Button für 2 Makros

Helfe beim Thema 1 Button für 2 Makros in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Leute! Ich bin VBA-Anfänger und benötige eure Fachkenntnis. Ich hab mir 2 Makros erstellt, die ich nun über eine Schaltfläche ausführen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von User, 21. September 2011.

  1. 1 Button für 2 Makros


    Hallo liebe Leute!

    Ich bin VBA-Anfänger und benötige eure Fachkenntnis.

    Ich hab mir 2 Makros erstellt, die ich nun über eine Schaltfläche ausführen möchte. Dabei sollen abwechslungsweise Makro1 und Makro2 ausgeführt werden: 1. Klick Makro1 2. Klick Makro2 3. Klick Makro1...usw.

    Das ganze müsste auch funktionieren wenn man die Datei schliesst und zu einem späteren Zeitpunkt wieder bearbeitet.

    Ist so etwas überhaupt möglich?

    Mein bisheriger Lösungsversuch:

    Ich hab mir mal aus dem Internet folgenden Code geholt:

    Sub CommandButton1_Click()
    If CommandButton1.Caption = "Makro1" Then
    Call Makro1
    CommandButton1.Caption = "Makro2"
    ElseIf CommandButton1.Caption = "Makro2" Then
    Call Makro2
    CommandButton1.Caption = "Makro1"
    End If
    End Sub

    Meine Änderungen: Habe das "Private" vor dem sub entfernt und die Namen der beiden Makros angepasst.

    Wenn ich nun den Button drück wird immer nur das erste Makro ausgeführt.

    Bitte um Hilfe!

    :)
     
  2. Beverly
    Beverly Erfahrener User
    Hi,

    ändere ElseIf in Else.


    1 Button für 2 Makros grusz.gif
     
  3. Hallo!

    Wo befindet sich denn die Schaltfläche? In einer Userform? Oder in einer Tabelle? Der Code ist nur für Userformen geeignet. Für Schaltlfächen in einer Tabelle benötigt man einen anderen Code.

    Zum Speichern der Zustände müsstest Du die Caption der Schaltfläche speichern, z.B. in einer Tabellenzelle oder in der Registrierungsdatenbank. Beim Öffnen der Tabelle bzw. beim Start der Userform muss dieser Wert dann ausgelesen und der Cpation zugeordnet werden.

    Gruß, René
     
  4. 1 Button für 2 Makros

    Hier mal eine Alternative. Nutze einfach 2 Schaltflächen. Diese legst Du exakt übereinander. Dann wird mit Hilfe der Eigenschaft "Visible" die entsprechende Schaltfläche ein- oder ausgeblendet.

     
  5. Dann muss aber auch "CommandButton1.Caption = "Makro2" Then " entfernt werden. Mein Beispiel ist vorteilhafter, da die Zustände in der Regel auch gespeichert werden.
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  6. Hi

    Danke für die schnellen Antworten!

    Ich weiss nicht was eine userform ist. Aber ich nehme an dass es eine normale Tabelle ist (xlsm Datei).

    Leider habe ich keine Ahnung was eine Caption überhaupt ist :S

    Vielleicht hilft das weiter und vereinfacht das ganze: Die Makros werden zum kopieren bestimmter Bereiche benötigt. Ich habe eine Tabelle die als Auftragsübersicht funktioniert. Es sind sozusagen 2 Spalten mit Aufträgen, einfach dass pro "Spalte" mehrere Excel Spalten benötigt werden.
    Bsp: In den Zellen A3 bis F20 sind Daten und in den Zellen I3 bis K20 sind wieder Daten.

    Mit dem 1. Makro wird ein neuer Auftrag erstellt, das bedeutet: es werden leere Zeilen eingefügt und der letzte Auftrag der linken Spalte wird kopiert. Mit dem 2. Makro soll dann in der rechten Spalte ebenfalls ein Auftrag erstellt werden. Das ganze muss separat laufen, da die eingegebenen Daten in eine andere Datei übertragen werden.

    Ich habe es mit nur einem Makro probiert mit einer If Then Else funktion und dem Wert der Zelle, hat allerdings nicht funktioniert.

    Ich weiss nicht welche Methode einfacher ist oder welche überhaupt möglich ist...ich hoffe dass diese neue Info euch eine bessere Grundlage verschafft und nicht für Verwirrung sorgt.
     
  7. Mit "Caption" meine ich "CommandButton1.Caption" (usw.), also die Beschriftung des Elementes, wollte nur nicht alles ausschreiben.

    Kurze Erklärung:

    Bei "If...ElseIf" wird immer zuerst die "If-Bedingung" (das ist meist die Erste) geprüft. Und dieses ist in Deinem Fall immer gegeben, da ja "CommandButton1.Caption" immer "Makro1" enthält. Die "ElseIf" kommt also gar nicht erst zum Zuge.

    Bei "If...Else" wird dagegen wechselseitig geprüft, da sich ja dabei die Bedingungen immer ändern.

    Mit dem folgenden Makro könnte es funktionieren.

     
  8. Beverly
    Beverly Erfahrener User

    1 Button für 2 Makros

    Hi René,
    Das musst du schon mal erklären...


    1 Button für 2 Makros grusz.gif
     
  9. Das war ein kleiner Irrtum meinerseits. Mir schwirrte dabei "OleObjects" durch den Kopf.
     
  10. Hi

    Danke für deine schnelle Antwort Mumpel!

    Leider funktionieren beide Lösungsvorschläge nicht richtig *frown.gif*

    Beim ersten mit den zwei Schaltflächen wird die Zeile
    CommandButton1.Visible = True
    markiert.

    Beim zweiten die Zeile
    If CommandButton1.Caption = "Makro1" Then

    Habe beim ersten das private weggelöscht. Für was steht das? Und wie kann ich ein solches private Makro anwählen?
     
  11. Welche Art von Schaltfläche nutzt Du? Formularschaltfläche oder ActiveX-Schaltfläche? Die Makros hier sind für Schaltflächen aus den ActiveX-Controls.

    "Private" steht für ein privates Makro. Als "Private" deklarierte Makros werden nicht im Makrodialog (ALt+F8) angezeigt. Außerdem können diese Makros nicht aus anderen Modulen im VBA-Projekt heraus aufgerufen werden.

    Für allgemeine Module gibt es zusätzlich noch die Anweisung Option Private Module, welche am Anfang des Moduls stehen muss. Diese Anweisung sorgt dafür, dass alle Makros und Funktionen in diesem Modul vor dem Makrodialog verborgen werden, unabhängig vom Makrostatus.

    Zusätzlich gibt es noch "Public Sub". Dies sorgt dafür, dass alle Module im VBA-Projekt auf das Makro zugreifen können, auch dann wenn "Option Private Module" im Modul definiert ist.
     
  12. Bis jetzt immer Formularschaltflächen. Hab jetzt ein Active-X Steuerelement eingefügt, jetzt tut sich aber gar nichts...
     
  13. 1 Button für 2 Makros

    Du musst den Code im Codebereich der Tabelle ablegen. Rechtsklick auf den Tabellenreiter->Code anzeigen. Dann öffnet sich der Codebereich der Tabelle. Dorthinein den Code. Damit der Code nicht doppelt vorhanden ist, solltest Du das Makro aus dem allgemeinen Modul löschen.
     
  14. Hallo acerspeedlinkacer

    hier mal eine Beispiel Datei mit deinem Makro und mit dem CommandButton1 in Tabelle1
    hinter der Tabelle1 in der Vb-umgebung ist dein vb-code drin
    und in ein Modul1 in der vb-umgebung einmal Makro1 u. Makro2 was ausgeführt wird

    es erscheint jeweils eine MSGBOX mit "Makro1 oder 2 wird ausgehürt"
    schau dir das mal genau an und teste mal

    getestet mit Excel 2007

    Gruß Peter9
     
  15. Beverly
    Beverly Erfahrener User
    Hi,

    hier ein Beispiel mit beiden Varianten - der Code für den CommandButton (ActiveX-Steuerelement) befindet sich im Codemodul des Tabellenblattes, der für das Formularsteuerelement im allgemeinen Modul "SchaltflaechenMakro", deine beiden Makros im allgemeinen Modul "DeineMakros".


    1 Button für 2 Makros grusz.gif
     
Thema:

1 Button für 2 Makros

Die Seite wird geladen...
  1. 1 Button für 2 Makros - Similar Threads - Button Makros

  2. pdf drucken mit button in excel einfügen

    in Microsoft Excel Hilfe
    pdf drucken mit button in excel einfügen: Guten Abend! Habe mit zahlreicher Unterstützung geschafft einen Button auf mein dritten Tabellenblatt einzufügen Funktion fähig. Nun brauche ich nochmals Hilfe. Ich will mittels des PDF Drucken...
  3. Excel per Button Speichern und Schliessen und "X - Button" deaktivieren

    in Microsoft Excel Hilfe
    Excel per Button Speichern und Schliessen und "X - Button" deaktivieren: Guten Morgen zusammen, ich suche nach einem VBA-Code (unter Office 365), um das Schließen einer Excel-Datei über das "Rote X" oben rechts zum Einen zu verhindern und statt dessen zum Anderen den...
  4. Makro aus personal.xls starten

    in Microsoft Excel Hilfe
    Makro aus personal.xls starten: Auf einem Arbeitsblatt habe ich mehrere Buttons. Die zugehörigen Makros sind in personal.xls gespeichert. Aus dem Code-Editor heraus kann ich die Makros ohne Problem starten. auf dem Arbeitsblatt...
  5. Zufällige Zahl wiedergeben mit Schaltfläche/ Button

    in Microsoft Excel Hilfe
    Zufällige Zahl wiedergeben mit Schaltfläche/ Button: Hallo zusammen Ich habe in einer Tabelle in den Zellen A1 - A2000 unterschiedliche Zahlen stehen. Nun möchte ich in einem anderen Tabellenblatt einen Button generieren. Wenn man auf diesen...
  6. Comando Button

    in Microsoft Excel Hilfe
    Comando Button: Liebe Leute Habe in der User form ein ComandoButton eingebaut. Möchte mit diesem ein Bild aufrufen und einfügen im Button aus der Bilderdatei. Habe es schon probiert funktioniert aber nicht was...
  7. Hilfe bei Makro schreiben

    in Microsoft Excel Hilfe
    Hilfe bei Makro schreiben: Hallo zusammen Ich wollte mir ein kleines Tool zum Basteln meiner monatlichen Provisionen basteln. Ich habe eine Excel Mappe mit folgenden Datenblätter: 1. Gunddaten 2. Vertragsprovision...
  8. Rechnungskopie ohne Makros und Buttons in eine andere Datei

    in Microsoft Excel Hilfe
    Rechnungskopie ohne Makros und Buttons in eine andere Datei: Guten Morgen, habe ein Problem das ich nicht gelöst bekomme. Habe ein Makro das eine Kopie des Blattes in einen anderen Ordner speichert, nur leider fragt mich Excel bei jedem speichern ob ich...
  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