• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro om programmacode te maken.

  • Onderwerp starter Onderwerp starter Efsix
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Efsix

Gebruiker
Lid geworden
14 jan 2007
Berichten
181
Beste Excellers,

Ik heb een macro gemaakt om een CommandButton te creeren.
Het maken van de knop gaat goed. De tekst van de knop aanpassen gaat ook,
Wat me niet lukt. . is om in VBA te vertellen wat die knop moet gaan doen.
Ik heb hier de code,
Code:
Sub Knoppen_maken()

Dim Obj As Object
Dim Code As String
'benoem hier de tabnaam van het bedoelde werkblad
Sheets("Blad1").Select

'Maak Stuur bericht button
    Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
    Link:=False, DisplayAsIcon:=False, Left:=200, Top:=50, Width:=100, Height:=35)
    Obj.Name = "CommandButton1"
'Knoptekst
    ActiveSheet.OLEObjects(1).Object.Caption = "Stuur berichtje"
'macro tekst (deze code moet achter Blad1 komen)
    Code = "Private Sub CommandButton1_Click()"
    Code = "Mail_to"
    Code = "End Sub"

End Sub

iemand een idee of dit kan?
groeten, Romé
 
je moet de code eerst definiëren. Als je de macro apart maakt van te voren zou het moeten kunnen. Echter zie ik geen reden om de button dynamisch aan te maken. Indien je de illusie wil geven dat er een button verschijnt kun je de button ook eerst maken en slechts op "visible" zetten als aan bepaalde voorwaarden is voldaan.
 
je moet de code eerst definiëren. Als je de macro apart maakt van te voren zou het moeten kunnen. Echter zie ik geen reden om de button dynamisch aan te maken. Indien je de illusie wil geven dat er een button verschijnt kun je de button ook eerst maken en slechts op "visible" zetten als aan bepaalde voorwaarden is voldaan.

Mijn reden om de knop via een macro te maken is gemakzucht :D.
We maken veel gebruik van standaard formulieren die qua inhoud regelmatig wijzigen.
Om te voorkomen dat ik de hele exercitie steeds weer opnieuw moet programmeren wil ik een standaardmodule maken die ik importeer en vervolgens activeer als Macro.
Vervolgens worden Knoppen en extra macro's ( mailen, opslaan naar netwerkmap etc) automatisch geïnstalleerd.

Het inge dat nog niet werkt, is het programmeren vanuit die Macro van die CommandButton
groet, Romé
 
in dat geval zou ik voor gewone buttons gaan en niet activeX controls. De gewone forms buttons zijn veel makkelijker te programmeren en voldoen volgens mij ook voor wat je er mee wilt.

Code:
Set butTemp = ActiveSheet.Buttons.Add(298.5, 114, 72, 72)
With butTemp
    .OnAction = "'Accounts Tools.xls'!addmissing"
    .Caption = "Press ME"
End With
Set butTemp = Nothing

voorbeeldcode schaamteloos gejat van een site, geen aansprakelijkheid of garanties :P

addmissing macro moet je van te voren schrijven
 
in dat geval zou ik voor gewone buttons gaan en niet activeX controls. De gewone forms buttons zijn veel makkelijker te programmeren en voldoen volgens mij ook voor wat je er mee wilt.

Code:
Set butTemp = ActiveSheet.Buttons.Add(298.5, 114, 72, 72)
With butTemp
    .OnAction = "'Accounts Tools.xls'!addmissing"
    .Caption = "Press ME"
End With
Set butTemp = Nothing

voorbeeldcode schaamteloos gejat van een site, geen aansprakelijkheid of garanties :P

addmissing macro moet je van te voren schrijven

Hallo Wampier,
Hartelijk dank voor het mee denken.
Ik ben aan de slag gegaan met jouw bijdrage, en op zich lijkt dit wel iets :-)
Alleen kan ik geen weg met de OnAction. . . ben al flink aan het knutselen geweest, maar ik krijg geen verwijziging naar een Opslaan_als() module

nog tips?
groeten, Romé
 
Code:
sub test()
msgbox("test")
end sub

Code:
Set butTemp = ActiveSheet.Buttons.Add(298.5, 114, 72, 72)
With butTemp
    .OnAction = "test"
    .Caption = "Press ME"
End With
Set butTemp = Nothing

natuurlijk kan je test macro ook een saveas dialog aanroepen. Indien je een rijtje standaard macro's hebt kun je die op deze manier willekeurig aan een button toevoegen
 
Code:
sub test()
msgbox("test")
end sub

Code:
Set butTemp = ActiveSheet.Buttons.Add(298.5, 114, 72, 72)
With butTemp
    .OnAction = "test"
    .Caption = "Press ME"
End With
Set butTemp = Nothing

natuurlijk kan je test macro ook een saveas dialog aanroepen. Indien je een rijtje standaard macro's hebt kun je die op deze manier willekeurig aan een button toevoegen

Wampier, bedankt voor het mee denken, ik ga er mee aan de slag.
Ik krijg net een overlijdensbericht, dus mijn Excel zin is voor vandaag in ieder geval over.
Ik laat nog van me horen.

groet, Romé
 
Wampier, bedankt voor het mee denken, ik ga er mee aan de slag.
Ik krijg net een overlijdensbericht, dus mijn Excel zin is voor vandaag in ieder geval over.
Ik laat nog van me horen.

groet, Romé

Wampier, hier kan ik verder mee. Bedankt voor de oplossing.:thumb:
groeten, Romé
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan