vanuit VBA een button plaatsen, deze een caption geven en er een macro aan hangen

Status
Niet open voor verdere reacties.

xceland

Gebruiker
Lid geworden
29 feb 2012
Berichten
11
Omdat ik in heel veel bestanden in een van de sheets een activex-button moet plaatsen, wil ik dit doen vanuit een macro.
Deze macro opent steeds een volgend bestand, het juiste sheet wordt geopend en dan ..
Vanuit VBA wil ik dus een activex-button plaatsen in een sheet.
Ook vanuit VBA wil ik deze button dan een andere (name en) caption geven en er een macro aan hangen.

Dit werkt:
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=1000, Top:=5.25, Width:=125, Height _
:=27).Select
Er staat nu een button in mijn sheet.

Maar nu??
Het volgende werkt niet, wie kan mij helpen?
ActiveSheet.Shapes("CommandButton1").Select
With Selection
.Caption = "instellen printen per maand"
End With

Alvast bedankt.
 
ActiveSheet.OLEObjects(1).Object.Caption = "test"

Liefst nooit werken met selects. Het is onhandig, langzaam en kan onvoorspelbare resultaten geven.
 
Code:
ActiveSheet.OLEObjects.Add("Forms.CommandButton.1", False, False, 1000, 5.25, 125, 27).caption="test"
 
Heb je dat gestest snb? voor mij werkt het namelijk niet (2007)
 
gebruik dan deze maar:
Code:
    ActiveSheet.OLEObjects.Add("Forms.CommandButton.1").Object.Caption = "test2"
 
Alvast bedankt snb en wampier voor de eerste stap.
Ik heb er nu van gemaakt

Function knopplaatsen()
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=1000, Top:=5.25, Width:=125, Height _
:=27).Object.Caption = "test2"
End Function

en dat werkt.
Hoe koppel ik nu de macro (bv. DitDoen) aan?
 
Gebruik hiervoor geen Function maar een macro (Sub) !

Het is overbodig standaardwaarden te specificeren; daarom mijn voorkeur:

Code:
sub snb()
  ActiveSheet.OLEObjects.Add("Forms.CommandButton.1", , , , , 1000, 5.25).Object.Caption = "test2"
end sub

Kijk verder eens hier.
 
Laatst bewerkt:
Hartelijk bedankt voor de hulp.

Dit is het voor mij geworden:
de macro maakt een button op blad1 op de juiste plaats, zet de tekst op de button (hier moet je zijn) en kent een macro toe aan de button (test1).

Sub KNOPPLAATSEN()
ActiveSheet.OLEObjects.Add(classtype:="Forms.CommandButton.1", Left:=1000, Top:=5.25, Width:=125, Height:=30).Object.Caption = "hier moet je zijn"
With ThisWorkbook.VBProject.VBComponents("Blad1").codemodule
.insertlines .createeventproc("Click", "CommandButton1") + 1, vbTab & "test1"
End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan