PDA

Vollständige Version anzeigen : Makros in Symbolleisten


Neumi
02.10.2000, 15:57
Mit Excel 5 konnte man jedem Makro einen Menüpunkt im Menü Extras zuweisen.

In Excel 97 geht das nicht mehr.
Das Problem: Die Menüs werden für die Anwendung Excel gespeichert und nicht für die Arbeitsmappe.

Ich möchte, daß die Menüs wieder verschwinden, wenn die Datei gelöscht wird.

Bei alten konvertierten Dateien funktioniert das problemlos.
Doch finde ich nirgends die Option, wo man das einstellen kann.

Weiß jemand, wie das geht?

Schmid
17.10.2000, 17:18
Hallo Neumi,

dies geht nur über die commandbar_auflistung.
Schau Dir folgendes an:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Leiste_zurücksetzen
End Sub
<hr>
Private Sub Workbook_Open()
On Error GoTo Fehler_Öffnen
Call menueLeiste_erstellen
Workbooks("Partie.xls").Sheets("NeuePartien").Select
Exit Sub
Fehler_Öffnen:
MsgBox Err.Description
Exit Sub
End Sub
<hr>
Sub menueLeiste_erstellen()
Dim cmdBar As CommandBar
Dim mPartie As CommandBarPopup
Dim mnuLesen As CommandBarPopup
Dim mnuBewert As CommandBarButton
Dim mnuGesamt As CommandBarButton
Dim mnuInvGesamt As CommandBarButton
Dim mnuGesamtNeu As CommandBarButton
Dim mnuInvGesNeu As CommandBarButton
Dim mnuDaten As CommandBarButton
Dim mnuRCP As CommandBarButton
Dim mnuAllesLesen As CommandBarButton
Dim mnuInventurenbewerten As CommandBarButton
Dim mnuMehrlesen As CommandBarButton
Dim mnuZeitlesen As CommandBarButton 'eingefügt 04/98 Zeitkriterium

Set cmdBar = Application.CommandBars.Add("Partie", msoBarTop, , True)
Set mPartie = cmdBar.Controls.Add(msoControlPopup)
mPartie.Caption = "&Partiebewertung"
Set mnuLesen = mPartie.Controls.Add(msoControlPopup)
Set mnuAllesLesen = mnuLesen.Controls.Add(msoControlButton)
' Set mnuMehrlesen = mnuLesen.Controls.Add(msoControlButton)
' Set mnuZeitlesen = mnuLesen.Controls.Add(msoControlButton) 'eingefügt 04/98 Zeitkriterium
Set mnuBewert = mPartie.Controls.Add(msoControlButton)
Set mnuGesamt = mPartie.Controls.Add(msoControlButton)
Set mnuGesamtNeu = mPartie.Controls.Add(msoControlButton)
Set mnuInventurenbewerten = mPartie.Controls.Add(msoControlButton)
Set mnuInvGesamt = mPartie.Controls.Add(msoControlButton)
Set mnuInvGesNeu = mPartie.Controls.Add(msoControlButton)
Set mnuRCP = mPartie.Controls.Add(msoControlButton)
Set mnuDaten = mPartie.Controls.Add(msoControlButton)



mnuLesen.Caption = "&Einlesen"
mnuAllesLesen.Caption = "Chargen einlesen"

'mnuMehrlesen.Caption = "Mehrere Chargen"
'mnuZeitlesen.Caption = "Chargen nach Datum" 'eingefügt 04/98 Zeitkriterium
mnuBewert.Caption = "Partiebewertung"
mnuInventurenbewerten.Caption = "Inventurbewertung"
mnuGesamt.Caption = "Partiebew. Gesamtergebnis anzeigen"
mnuInvGesamt.Caption = "Inventurbew. Gesamtergebnis anzeigen"
mnuGesamtNeu.Caption = "Partiebew. aktuelles Gesamtergebnis anzeigen"
mnuInvGesNeu.Caption = "Inventurbew. aktuelles Gesamtergebnis anzeigen"
mnuRCP.Caption = "Prodisdaten kopieren"
mnuDaten.Caption = "Datenimport aus MSO"
cmdBar.Visible = True

mnuAllesLesen.OnAction = "Charge"
'mnuMehrlesen.OnAction = "Charge_2"
'mnuZeitlesen.OnAction = "Datum_lesen"
mnuBewert.OnAction = "Partieverarbeitung_Neu"
mnuInventurenbewerten.OnAction = "Inventurbewertung"
mnuGesamt.OnAction = "Gesamtdatei_erstellen"
mnuInvGesamt.OnAction = "InvGesamtdatei_erstellen"
mnuGesamtNeu.OnAction = "Gesamtdateiaktuell_erstellen"
mnuInvGesNeu.OnAction = "InvGesamtdateiaktuell_erstellen"
mnuRCP.OnAction = "RCP"
mnuDaten.OnAction = "Datenbank_Tabellen_import_ACCESS"

End Sub
<hr>
Sub Leiste_zurücksetzen()
Dim cmdBar As CommandBar
For Each cmdBar In Application.CommandBars
If cmdBar.Name = "Partie" Then
cmdBar.Delete
End If
Next
End Sub

In diesem Beispiel wírd eine Menueleiste mit Menuepunkten und Menuebelegung bei Öffnen der Arbeitsmappe erstellt.
Beim Schliessen der Arbeitsmappe wird diese wieder gelöscht!

Gruß
peter