Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

oleobject mit code/makro bestücken | Herbers Excel-Forum


Betrifft: oleobject mit code/makro bestücken von: max
Geschrieben am: 13.02.2012 14:38:21

hallo excel-freunde,
brauch mal wieder hilfe.
wie bestücke ich ein oleobject, das per makro erstellt wird, ebenfalls über makro mit einem makro.
soweit bin ich bisher in meiner testdatei:

Sub Makro1()
Application.Worksheets.Add
ActiveSheet.OLEObjects.Add ClassType:="Forms.CommandButton.1"
ActiveSheet.OLEObjects(ActiveSheet.OLEObjects.Count).Name = "cb_Loeschen"
ActiveSheet.OLEObjects("cb_Loeschen").Object.Caption = "löschen"
End Sub
und jetzt zur königsfrage - wie komme ich dazu

Private Sub cb_Loeschen_Click()
    ActiveSheet.Delete
End Sub

bedanke mich schon mal vorab für konstruktive hilfe.

gruss max

  

Betrifft: AW: oleobject mit code/makro bestücken von: selli
Geschrieben am: 13.02.2012 14:48:51

hallo max,

sicher bin ich mir nicht. lasse die frage deshalb offen.
versuch es mal so:

ActiveSheet.OLEObjects("cb_Loeschen").Object.onaction = "cb_Loeschen_Click"

gruß
selli


  

Betrifft: nee. geht so nicht von: selli
Geschrieben am: 13.02.2012 14:53:50

.


  

Betrifft: Code mit Vba in Modul eintragen schreiben von: Reinhard
Geschrieben am: 13.02.2012 15:15:19

Hallo Max,

Sub Makro1()
Application.Worksheets.Add
With ActiveSheet
  .OLEObjects.Add ClassType:="Forms.CommandButton.1"
  .OLEObjects(.OLEObjects.Count).Name = "cb_Loeschen"
  .OLEObjects("cb_Loeschen").Object.Caption = "löschen"
  With ThisWorkbook.VBProject.VBComponents(.Name).CodeModule
    .InsertLines .CountOfLines + 1, "Private Sub cb_Loeschen_Click()"
    .InsertLines .CountOfLines + 2, "ActiveSheet.Delete"
    .InsertLines .CountOfLines + 3, "End Sub"
    .InsertLines .CountOfLines + 4, ""
  End With
End With
End Sub

Gruß
Reinhard


  

Betrifft: AW: Code mit Vba in Modul eintragen schreiben von: max
Geschrieben am: 13.02.2012 15:25:19

hallo reinhard
versteh den code zwar nicht, aber funktioniert einwandfrei.
bedanke mich für die schnelle hilfe.
gruss max


  

Betrifft: Code per Code erstellen von: Rudi Maintaire
Geschrieben am: 13.02.2012 15:21:45

Hallo,

Sub xxxxx()
  Dim sCode As String, wks As Worksheet, myCB As OLEObject
  Set wks = Worksheets.Add
  With wks
    Set myCB = .OLEObjects.Add(ClassType:="Forms.CommandButton.1")
    With myCB
      .Name = "cb_Loeschen"
      .Object.Caption = "löschen"
    End With
  End With
  sCode = "Private Sub cb_Loeschen_Click()" & vbLf
  sCode = sCode & "Activesheet.Delete" & vbLf
  sCode = sCode & "End Sub" & vbLf
  With ThisWorkbook.VBProject.VBComponents(wks.CodeName).codemodule
    .AddFromString sCode
  End With
End Sub
Du musst dem Zugriff auf das VBA-Projekt vertrauen.

Gruß
Rudi


  

Betrifft: AW: Code per Code erstellen von: max
Geschrieben am: 13.02.2012 15:31:54

hallo rudi,
hier gilt das gleiche wie bei reinhard:
versteh den code zwar nicht, aber funktioniert einwandfrei.
bedanke mich auch bei dir für die schnelle hilfe.

Noch eine Frage. Was meinst du mit

"Du musst dem Zugriff auf das VBA-Projekt vertrauen."
gruss max


  

Betrifft: Zugriff auf das VBA-Projekt von: Rudi Maintaire
Geschrieben am: 13.02.2012 15:36:31

Hallo,
normalerweise muss man das im Vertrauensstellungscenter einstellen. Code kann sonst nicht durch Code erstellt oder geändert werden. Da aber der Code von Reinhard funktioniert, ist das bei dir schon so.

Gruß
Rudi


  

Betrifft: AW: Zugriff auf das VBA-Projekt von: max
Geschrieben am: 13.02.2012 15:40:51

hab's gefunden - ja, ist bei mir so eingestellt


  

Betrifft: Zugriff auf das VB-Projekt vertrauen von: NoNet
Geschrieben am: 13.02.2012 18:28:40

Hallo Leute,

die oftmals so lapidar verwendete Bemerkung

Du musst dem Zugriff auf das VB-Projekt vertrauen

mag für geübte VBA-Anwender verständlich sein - für Suchende wirkt dieser Satz jedoch oftmals sehr unverständlich, da sie sich (zurecht !) fragen :
Wie soll ich denn einem VBA-Projekt vertrauen oder NICHT vertrauen ?
bzw. "Wie drücke ich denn mein Vertrauen aus ?"

Daher empfehle ich folgende Seite, die diese Bemerkung etwas näher erklärt :

http://www.excelei.de/seiten/vba_zugriff_per_vba.php

Gruß, NoNet


Beiträge aus den Excel-Beispielen zum Thema "oleobject mit code/makro bestücken"