Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Symbol mit VBA automatisch erstellen und einfügen





Frage

Hallo Leute, ich komme mit folgendem Problem nicht weiter. Ich habe eine Vorlagedatei (Excel2000) mit mehreren Makros. Diese Datei sollen Mitarbeiter kopieren und umbenennen. Der VBA Code solle folgendes leisten: * beim starten der Datei automatisch ein Symbol erstellen * das Symbol soll mit einem Makro aus der Arbeitsmappe verknüpft werden * dies muss unabhängig vom Dateinamen geschen, da die Mitarbeiter die Name unterschiedlich vergeben. Könnt Ihr mir einige Anregungen geben? Vielen Dank schon mal von mir im Vorraus Eleve

Antwort 1 von aiuto

Hi Eleve,

Nachfolgender Code sollte in ein Modul kopiert werden, und das von Dir Beschriebene erledigen:

Option Explicit

Sub Mein_Makro()
Beep
End Sub

Sub auto_open()
Symbolleiste
End Sub

Sub Symbolleiste(strName$)
If strName = "" Then strName = "Meine Symbolleiste"
Dim MyCButton As CommandBarControl
Dim myCbar As CommandBar
If Application.CommandBars(strName).Index > 0 Then
Application.CommandBars(strName).Delete
End If
Set myCbar = CommandBars.Add(strName, msoBarFloating, , True)
With myCbar
.Top = 200 'Position im Fenster
.Left = 100
.Visible = True
End With
Set MyCButton = myCbar.Controls.Add(msoControlButton)
MyCButton.FaceId = 500 'Symbolauswahl über Zahl
MyCButton.TooltipText = "Meine Makrobeschreibung"
MyCButton.OnAction = "Mein_Makro" 'verknüpftes Makro
End Sub


mfg
vom Helfer

Antwort 2 von Eleve

Hallo lieber Helfer,

vielen Dank erst mal für die Antwort.

Ich habe folgendes Problem.

Wenn ich den Code in mein auto_open Makro integriere bricht der Code in der Zeile:
If Application.CommandBars(strName).Index > 0 Then

mit dem Fehler
Zitat:
Laufzeitfehler -2147024809(80070057)
Microsoft Excel kann keine übereinstimmenden Daten zum Ersetzen finden. Keine Zelle der Markierung enthält den Suchbegriff oder kein Datensatz entspricht dem Kriterium.

ab.

Wenn ich Deine Codes so verwende, wie Du es mir geschrieben hast, dann krieg ich die Meldung:
Zitat:
Argument ist nicht optional.


Ich hab den Code in ein neues Modul in einer neuen Mappe kopiert.
Kann ich irgendetwas dabei falsch machen?

Viele Grüße Eleve

Antwort 3 von aiuto

Hallo Eleve,

Du kannst den IF-Block komplett löschen, der diente während der Entwicklung dazu, die (bereits) vorhandene Symbolleiste zu löschen.
Zitat:
If Application.CommandBars(strName).Index > 0 Then
Application.CommandBars(strName).Delete
End If
Habe vergessen das zu entfernen

mfg
vom Helfer

Antwort 4 von Eleve

Hallo Helfer,

vielen Dank! Das wars.

Ich musste noch eine Modifikationen vornehmen - Sub auto_open in sub workbook_open.

Hast mein Weihnachtsurlaub um einiges ruhiger gemacht -
schönen Dank nochmal und eine Gute Zeit


Eleve

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: