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

Forumthread: CommandButton Makro per Makro zuweisen

CommandButton Makro per Makro zuweisen
10.12.2015 10:36:30
kultnoob
Hi zusammen,
bin gerade an einer "kleinen" Aufgabe aber komme nicht weiter.
Hintergrund:
über ein Auswertungstool werden zwei Dateien miteinander abgeglichen und eine Datei wird dabei gespeichert. Mit der gespeicherten Datei soll weiter gearbeitet werden. Darum dachte ich mir, ich schreibe ein Makro, welches ein eigenes Makro schreibt. Im WWW habe ich folgendes gefunden, was nach ersten Tests auch funktioniert.

  • Sub marko_in_Makro()
    With ActiveWorkbook.Sheets(1)
    With ThisWorkbook.VBProject.VBComponents("Tabelle1").CodeModule
    For i = 1 To 10
    .InsertLines i, "
    
    
    Sub Summen" & CStr(i)
    '            .InsertLines i, " usw....
    Next i
    End With
    End Sub
    

  • Nun habe ich in Sheet1 zwei Commandbuttons eingefügt. Funktioniert auch bestens.

  • Sub test()
    With ActiveWorkbook.Sheets(1)
    'Zeile 1 markieren
    Rows("1:1").RowHeight = 35
    'Commandbutton einfügen und umbennen
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:= _
    False, Left:=190, Top:=6, Width:=245, Height:=24).Select
    ActiveSheet.OLEObjects("CommandButton1").Object.Caption = "Summen berechnen"
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:= _
    False, Left:=500, Top:=6, Width:=245, Height:=24).Select
    ActiveSheet.OLEObjects("CommandButton2").Object.Caption = "Summen löschen"
    End with
    End Sub
    

  • Nun möchte ich ein Makro den Commandbuttons zuweisen. Doch leider bin ich hier ratlos. Habe im WWW folgendes gefunden, doch werde daraus nicht schlau....
    http://www.office-loesung.de/ftopic436085_0_0_asc.php
    Das Makro, welches per Makro erstellt werden soll, habe ich bereits geschrieben. Mir geht es lediglich um das Verständnis, wie ich einem Commandbutton ein Makro per Makro zuweisen kann.
    Über einen Tipp wäre ich sehr dankbar. Vielen Dank...
    Gruß

    Anzeige

    1
    Beitrag zum Forumthread
    Beitrag zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: CommandButton Makro per Makro zuweisen
    10.12.2015 15:08:49
    kultnoob
    Habe nun eine andere Lösung gefunden...
    Statt CommandButton (ActiveX-Steuerelemente) zu verwenden, baue ich Formularsteuerelemente ein.
    An diese kann ich ein Makro zuweisen.
    Vorgehen:
    1. Zuerst das Makro was man übergeben möchte schreiben und exportieren.
    2. Danach das Makro importieren.

  • Sub Makro_importieren()
    With ActiveWorkbook.Sheets(1)
    With ThisWorkbook.VBProject
    .VBComponents.Import "C:\USERS\" & Environ("UserName") & "\desktop\ _
    Variable_Summenberechnung.bas"
    .VBComponents.Import "C:\USERS\" & Environ("UserName") & "\desktop\Summen_loeschen.bas"
    End With
    End With
    End Sub
    

  • 3. Formularsteuerlemente einfügen, Namen ändern und Makros zuweisen

  • Sub test()
    With ActiveWorkbook.Sheets(1)
    'Zeile 1 markieren
    Rows("1:1").RowHeight = 35
    'Formularsteuerelemente einfügen, Makro zuweisen und umbenennen
    ActiveSheet.Buttons.Add(190, 6, 245, 24).Select
    With Selection
    .OnAction = "Variable_Summenberechnung"
    .Caption = "Summen berechnen"
    End With
    'Formularsteuerelemente einfügen, Makro zuweisen und umbenennen
    ActiveSheet.Buttons.Add(500, 6, 245, 24).Select
    With Selection
    .OnAction = "Summen_loeschen"
    .Caption = "Summen berechnen"
    End With
    End With
    End Sub
    

  • Natürlich muss dies noch von der ausführenden Datei an die neue zu bearbeitende Datei übergeben werden. Aber das ist glaub ich das kleinere Problem.
    Somit...
    HABE FERTIG... FLASCHE LEER!!!
    Gruß
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    CommandButton Makro in Excel zuweisen


    Schritt-für-Schritt-Anleitung

    Um einem CommandButton ein Makro in Excel zuzuweisen, befolge diese Schritte:

    1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

    2. Füge einen CommandButton hinzu: Verwende den folgenden Code, um einen CommandButton in dein Arbeitsblatt einzufügen:

      Sub test()
         With ActiveWorkbook.Sheets(1)
             'Zeile 1 markieren
             Rows("1:1").RowHeight = 35
             'CommandButton einfügen und umbenennen
             ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:= _
             False, Left:=190, Top:=6, Width:=245, Height:=24).Select
             ActiveSheet.OLEObjects("CommandButton1").Object.Caption = "Summen berechnen"
         End With
      End Sub
    3. Makro schreiben: Schreibe das Makro, das du mit dem Button verknüpfen möchtest.

    4. Makro zuweisen: Verwende den folgenden Code, um dem CommandButton ein Makro zuzuweisen:

      Sub MakroZuweisen()
         ActiveSheet.OLEObjects("CommandButton1").Object.OnAction = "DeinMakroName"
      End Sub

    Häufige Fehler und Lösungen

    • Problem: CommandButton funktioniert nicht. Lösung: Stelle sicher, dass du den richtigen Typ von Steuerelement verwendest. ActiveX-Steuerelemente benötigen eine andere Handhabung als Formularsteuerelemente.

    • Problem: Das Makro wird nicht erkannt. Lösung: Überprüfe die Schreibweise des Makronamens und stelle sicher, dass es im gleichen Modul oder in einem zugänglichen Modul gespeichert ist.


    Alternative Methoden

    Statt einen ActiveX CommandButton zu verwenden, kannst du auch Formularsteuerelemente nutzen. Diese haben den Vorteil, dass du ihnen einfach ein Makro zuweisen kannst, ohne den VBA-Editor öffnen zu müssen.

    1. Formularsteuerelement einfügen: Nutze den folgenden Code:

      Sub FormularSteuerelement()
         With ActiveWorkbook.Sheets(1)
             ActiveSheet.Buttons.Add(190, 6, 245, 24).Select
             With Selection
                 .OnAction = "DeinMakroName"
                 .Caption = "Summen berechnen"
             End With
         End With
      End Sub
    2. Makro zuweisen: Es wird direkt beim Einfügen des Buttons zugewiesen.


    Praktische Beispiele

    Hier sind einige praktische Beispiele, wie du den CommandButton in Excel nutzen kannst:

    • Summenberechnung: Nutze einen Button, um die Summe einer bestimmten Zellengruppe zu berechnen.

      Sub Summenberechnen()
        Dim Summe As Double
        Summe = Application.WorksheetFunction.Sum(Range("A1:A10"))
        MsgBox "Die Summe ist: " & Summe
      End Sub
    • Daten löschen: Ein Button kann verwendet werden, um Inhalte in einem bestimmten Bereich zu löschen.

      Sub DatenLoeschen()
        Range("A1:A10").ClearContents
      End Sub

    Tipps für Profis

    • Wenn du häufig CommandButtons verwendest, erstelle eine Vorlage, die bereits die Buttons und die zugehörigen Makros enthält.
    • Nutze descriptive Namen für deine Makros, um die Zuordnung zu erleichtern.
    • Teste deine Makros gründlich, bevor du sie in produktiven Dateien verwendest.

    FAQ: Häufige Fragen

    1. Wie kann ich einen CommandButton in Excel 2016 einfügen?
    Du kannst einen CommandButton über den VBA-Editor unter Einfügen > Steuerelemente einfügen und dann den Code hinzufügen.

    2. Kann ich mehrere Makros einem Button zuweisen?
    Ein CommandButton kann nur einem Makro gleichzeitig zugewiesen werden. Du kannst jedoch ein Makro erstellen, das mehrere andere Makros in einer bestimmten Reihenfolge aufruft.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige