Patrick.Karre Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 Hallo Leute, ich habe ein Makro geschrieben, das ich weitergeben möchte (kein Virus). Für dieses Makro soll automatisch ein Button erzeugt werden. Ich bekomme es zwar hin, das ein Button erzeugt wird, aber es fehlt der Verweis auf das Makro. Weiss jemand wie ich es am besten anstelle ein Button mit Verweis auf das Makro zu erzeugen ? MfG Patrick Zitieren
DerMatze Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 Zusammenfassend: Du hast n Makro aufgenommen. Du erzeugst einen Button. Der Button soll dsa Marko ausführen. Das funzt net. Lösung: Nimm den Code und kopiere ihn, gehe auf "ThisDocument" (keine Ahnung, wie das auf dt. heißt). Linke Dropdown-List im Codefenster, dort den Button auswählen, dann müßte er ein ClickEvent hinzufügen. Dort fügst du den kopieren Code ein, fertig. Zitieren
-roTekuGeL- Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 ActiveSheet.Buttons.Add(144.75, 116.25, 202.5, 31.5).Select 'Button an der Ausgewählten stelle erzeugen Selection.OnAction = "button" 'dem selektierten button wird das Makro (Makro1) zugewiesen versuch das mal... bei mir hats funktioniert Edit: na huch da hab ich doch glatt überlesen das das für word und nicht für excel ist... ach ja... Matze hat recht Zitieren
Patrick.Karre Geschrieben 24. Juli 2003 Autor Geschrieben 24. Juli 2003 Das Button soll dem Benutzer mit einem Makro eingerichtet werden. Ich gehe davon aus, das der Benutzer wenig Ahnung hat und um erlich zu sein, habe ich nicht andauernd lust, den leuten zu erklären, wie sie einen Button in Word einrichten. Ich weis das man einen Button mit einem Makro hinzufügen kann, ich habe nur noch nicht herausgefunden, wie ich mit diesem Button auf mein Makro verweise. MfG Patrick Zitieren
DerMatze Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 Kann es sein, dass du einen Button in der Menüleiste meinst, und nicht wie das Kügelchen und ich angenommen haben einen Button innerhalb des Dokumentes ?? Zitieren
Patrick.Karre Geschrieben 24. Juli 2003 Autor Geschrieben 24. Juli 2003 Ja. Aber ich habe die Lösung auch rausgefunden: Dim Button As CommandBarButton Set Button = CommandBars("Standard").Controls.Add(Type:=msoControlButton, Before:=7) With Button .Caption = "Faxolution" .OnAction = "FaxButton" .TooltipText = "Fax senden an Faxolution" .FaceId = 24 .Visible = True End With Trotzdem, danke für eure hilfe. MfG Patrick Zitieren
Patrick.Karre Geschrieben 24. Juli 2003 Autor Geschrieben 24. Juli 2003 Hallo Leute, ein Problem habe ich noch, wie kann ich überprüfen, ob der Button schon vorhanden ist und ggf. löschen ? MfG Patrick Zitieren
DerMatze Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 Bin ich mir nich ganz sicher, ob das in VBA so funzt, aber: IF Button IS NOTHING THEN SET BUTTON CommandBars("Standard").Controls.Add(Type:=msoControlButton, Before:=7) ELSE SET BUTTON = NOTHING SET BUTTON CommandBars("Standard").Controls.Add(Type:=msoControlButton, Before:=7) END IF Kugel, stimmst du mir zu ?? Zitieren
Patrick.Karre Geschrieben 24. Juli 2003 Autor Geschrieben 24. Juli 2003 Muss ich nicht noch vorher irgendwie angeben, welchen Button ich meine ? MfG Patrick Zitieren
DerMatze Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 Original geschrieben von Patrick.Karre Dim Button As CommandBarButton Set Button = CommandBars("Standard").Controls.Add(Type:=msoControlButton, Before:=7) With Button .Caption = "Faxolution" .OnAction = "FaxButton" .TooltipText = "Fax senden an Faxolution" .FaceId = 24 .Visible = True End With Tust du doch. Oben deklarierst du ja "Button" als Button. Ist übrigens sehr unglücklich gewählt. Benutze besser "btnXXX" oder "cmdXXX" wobei du XXX durch igendwas sinnvolles ersetzt. z.b.: Dim btnFaxVersenden As CommandBarButton Zitieren
Patrick.Karre Geschrieben 24. Juli 2003 Autor Geschrieben 24. Juli 2003 Er hat aber durch den Befehl .Add immer ein neuen Button vorher erzeugt. Ich bin mittlerweile auf diese Lösung gekommen: Dim ButtonTest As CommandBarButton Set ButtonTest = CommandBars("Standard").Controls(7) If ButtonTest.Caption = "Faxolution" Then ButtonTest.Delete End If Ich schaue einfach nach, ob an der gewünschten Stelle ein Button mit der gleichen Bezeichnung steht. Das geht soweit. Nochmal danke für die Mithilfe. MfG PAtrick Zitieren
DerMatze Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 Original geschrieben von Patrick.Karre Dim ButtonTest As CommandBarButton Set ButtonTest = CommandBars("Standard").Controls(7) If ButtonTest.Caption = "Faxolution" Then ButtonTest.Delete End If Leichter und sauberer dazu wäre if Commandbars("Standard").Controls(7) is nothing ... end if Denn in der Collection Controls ist item #7 dein Button ... Zitieren
Patrick.Karre Geschrieben 24. Juli 2003 Autor Geschrieben 24. Juli 2003 Würde nicht jeder Button auf Position 7 geprpft werden ??? MfG Patrick Zitieren
DerMatze Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 Du kannst nur 1 Objekt an Position 7 stecken (das klingt albern ) Zitieren
Peregrin Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 hi, hmmm, ich fände es sauberer, wenn man durch die buttons iteriert und den gewünschten löscht.for each btn in Commandbars("Standard").Controls if(btn.caption = "deine überschrift")then btn.delete 'oder wie auch immer das geht... exit for end if next sonst gibt es ein problem, wenn der 7. button mal was anderes ist... hth... Zitieren
DerMatze Geschrieben 24. Juli 2003 Geschrieben 24. Juli 2003 Hmm, wenn dann: for each btn in Commandbars("Standard").Controls if(btn.[COLOR=red]name[/COLOR] = "dein name")then btn.delete 'auch nicht sicher exit for end if next Nach der Caption zu suchen finde ich wiederrum unsauber, dann lieber nach dem Namen, der ja beim Instanzieren gegeben worden ist. Zitieren
Patrick.Karre Geschrieben 24. Juli 2003 Autor Geschrieben 24. Juli 2003 Ja aber ich setze das ding doch an Position 7. Wieso sollte ich dann nicht genau diese position ansprechen ? Ich gehe mal davon aus, das es nicht so oft vorkommt, das an dieser position irgend eine reihenfolge von einem normalen Usre geändert wird. Oder irre ich mich jetzt. Andernfalls, so viel aufwand ist es auch nicht euren Vorschlag einzubauen.... MfG Patrick Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.