Office: Einen CommandButton per VBA einfügen

Helfe beim Thema Einen CommandButton per VBA einfügen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, liebe Mituser! In meinem VBA-Programm generiere ich Tabellenblätter. Diese sollen auch eine bestimmte Befehlsschaltfläche bekommen. Auch per... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Streethawk68, 12. August 2010.

  1. Einen CommandButton per VBA einfügen


    Hallo, liebe Mituser!

    In meinem VBA-Programm generiere ich Tabellenblätter. Diese sollen auch eine bestimmte Befehlsschaltfläche bekommen. Auch per VBA. Der Endnutzer kann sie nicht erzeugen, also soll der Code das tun.

    Wie lautet der Befehl zum Einfügen einer Befehlsschaltfläche auf einem Tabellenblatt und wie weist man Namen, Caption und Eigenschaften der Befehlsschaltfläche zu? Und natürlich: wie weist man der Befehlsschaltfläche Ereignis-Code zu?

    Vielen lieben Dank für eure wertvollen Tipps
    euer
    Streethawk68
    *Smilie

    :)
     
    Streethawk68, 12. August 2010
    #1
  2. Abend,

    die M.E. einfachste Lösung:

    kopiere eine Muster-Tabelle mit einem Button aus Steuerelemente. Dabei wird der Code automatisch mit kopiert.

    cu, Bernd
     
  3. Ich möchte aber bitte lieber wissen, wie der VBA-Befehl zur Generierung einer Befehlsschaltfläche (CommandButton) lautet.
    *Smilie
    *wink.gif*
     
    Streethawk68, 14. August 2010
    #3
  4. Einen CommandButton per VBA einfügen

    Moin, Streethawk68,

    ab Excel2002 Zugriff aufs VBA Vertrauen anhaken: Neue Schaltfläche mit zugehörigem Code in Tabellenblatt.

     
  5. HAllo

    http://www.herber.de/mailing/129000h.htm
    beschreibt das Vorgehen wenn der Button aus der Symbolleiste Formular stammt.
    Willst du einen echten CommandButton (ActiveX-Steuerelement) einfügen ist das Vorgehen ähnlich, aber nicht genauso.

    Bau dir das mal nach:
    Im Codemodul von Tabelle1 liegt der Code der ins neue Blatt soll.
    ' **********************************************************************
    ' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
    ' **********************************************************************

    Option Explicit

    Private Sub CommandButton1_Click()
    MsgBox "Test"
    MsgBox "...und noch ein Text"
    End Sub


    Damit das Ganze auch automatisch angeschubst wird, diesen Code ins CodeModul von DieseArbeitsmappe:
    ' **********************************************************************
    ' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
    ' **********************************************************************

    Option Explicit

    Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Dim CB As Object
    Dim sh_New As Object
    Dim sh_mit_Code As Object 'Tabelle1. Hier liegt der Code der ins neue Blatt soll.
    Dim i As Integer

    If Sh.Type <> xlWorksheet Then Exit Sub

    Set CB = Sh.OLEObjects.Add("Forms.CommandButton.1") 'Button einfügen

    With CB 'Button formatieren
    .Object.Caption = "Lalala..."
    .Top = 123
    .Left = 456
    .Height = 40
    .Width = 150
    End With

    Set sh_mit_Code = Application.VBE.ActiveVBProject.VBComponents(Sheets("Tabelle1").CodeName)
    Set sh_New = Application.VBE.ActiveVBProject.VBComponents(Sh.CodeName)

    With sh_New.CodeModule
    .DeleteLines 1, .countoflines 'Alte Zeilen löschen
    For i = 1 To sh_mit_Code.CodeModule.countoflines 'Zeilen aus Tabelle1 "abschreiben"
    .InsertLines i, sh_mit_Code.CodeModule.Lines(i, 1)
    Next
    End With

    End Sub


    ransi
     
  6. Ich hatte jetzt eher an die folgende Lösung gedacht:

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.Commandbutton.1", Link:=True, _
    DisplayAsIcon:=False, Left:=6, Top:=210, Width:=77, Height:=33). _
    Select
    Selection.Name = "CM"

    Selection.OnAction = "IndivAktivitätenplanDrucken"

    Sub IndivAktivitätenplanDrucken()
    ActiveSheet.PrintOut
    End Sub

    Aber da kommt die Fehlermeldung:
    "Die OnAction-Eigenschaft des OLEObject-Objektes kann nicht festgelegt werden."

    Bin ich nah dran?

    Gruß
    Streethawk68
    *Smilie
     
    Streethawk68, 15. August 2010
    #6
  7. Morgen,

    Nein. Bei OleObjects gibt es kein OnAction, die haben dafür Ereignisse.

    OnAction gibt es nur bei den älteren Teilen aus Formular.

    Wenn Du dynamisch OleObjects erstellen willst musst Du Code per Code erzeugen und/oder ein Klassenmodul benutzen.

    Ransi hat Dir doch bereits gezeigt wie das funktionieren könnte ?

    cu, Bernd
     
  8. Einen CommandButton per VBA einfügen

    Ransi, das ist 'voll stark'. *Smilie
    Es funktioniert!
    Danke.

    Der CommandButton dient zum Ausdrucken des neuen Blattes. Er soll aber selbst nicht mitgedruckt werden. Vielleicht lautet das ähnlich wie

    ActiveWorkbook.Objects.CB.Visible = False

    aber das spricht das CommandButton-Objekt nicht wirklich an. Ideen?
    Vielen Dank für eure wertvollen Tipps, euer
    Streethawk68
     
    Streethawk68, 15. August 2010
    #8
  9. HAllo

    Das geht so:

    With CB 'Button formatieren
    .PrintObject = False
    .Object.Caption = "Lalala..."
    .Top = 123
    .Left = 456
    .Height = 40
    .Width = 150
    End With


    ransi
     
  10. Sehr gut.
    *Smilie

    Das hätte ich allein nicht gekonnt. Ich denke, es steht auch nirgendwo in meinen Büchern.
     
    Streethawk68, 16. August 2010
    #10
Thema:

Einen CommandButton per VBA einfügen

Die Seite wird geladen...
  1. Einen CommandButton per VBA einfügen - Similar Threads - CommandButton VBA einfügen

  2. Ein Fall für VBA... oder nicht?

    in Microsoft Excel Hilfe
    Ein Fall für VBA... oder nicht?: Hallo zusammen, ich habe eine schwierige Nuss zu knacken. Ich habe eine Tabelle, bei der immer 1 von 3 Werten (Bewehrt, Stahlfaser, Walzbeton) ausgewählt werden muss. Wie kann ich es...
  3. VBA CommandButton einblenden abhängig von Eintrag in Zeile

    in Microsoft Excel Hilfe
    VBA CommandButton einblenden abhängig von Eintrag in Zeile: Hallo Leute, nachdem ich fleißig VBA geübt habe und schon komplett eigene Codes erfolgreich zum Laufen gebracht habe (Dank der Hilfe hier!), stoße ich nun doch wieder an eine Grenze. Ich habe...
  4. Mitgliederliste aktualisieren

    in Microsoft Excel Hilfe
    Mitgliederliste aktualisieren: Hallo zusammen, ich habe ein Problem. Ich möchte mit einer Combobox1 und einem Textfeld1 über einen CButton eine Liste aktualisieren bzw. Namen hinzufügen. In der Combobox1 sollen die...
  5. Blattschutz VBA mit PW und Bedingungen

    in Microsoft Excel Hilfe
    Blattschutz VBA mit PW und Bedingungen: Hallo VBA'ler Kenne mich nicht wirklich mit VBA aus, habe es aber geschafft, eine mit PW geschützte Tabelle via Button zu entsperren und wieder zu sperren. Der Button dient dazu, die gesetzten...
  6. Über Command Button dynamisch Dokumente öffnen

    in Microsoft Excel Hilfe
    Über Command Button dynamisch Dokumente öffnen: Hallo Zusammen, Ich habe eine Tabelle in der über unterschiedliche Kriterien, Produkte angezeigt werden. Nun möchte ich dazu, zu dem entsprechenden Produkt, über einen CommandButton die...
  7. Excel VBA Suche mit Hilfe Command Buttons anzeigen

    in Microsoft Excel Hilfe
    Excel VBA Suche mit Hilfe Command Buttons anzeigen: Hallo Ich habe eine UserForm erstellt, welche mit voneinander Abhängige Comboboxen sucht. Dabei wurde mir schon geholfen in diesen Forum. Ich würde mir gerne das Ergebnis mithilfe eines...
  8. CommandButton per VBA Erstellen und in Symbolleiste einfügen

    in Microsoft Word Hilfe
    CommandButton per VBA Erstellen und in Symbolleiste einfügen: Servus zusammen! Ich sitze nun schon etwas länger an diesem Problem. Mit dem Makro Rekorder fügt er nachher nur leere Buttons ein und von Hand will das mit dem Commandbars.controls.add nicht...
  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