Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA-Menüpunkt markieren nach Prozedur

VBA-Menüpunkt markieren nach Prozedur
07.07.2006 14:51:07
HorstH
Hallo nette Leute im Forum,
weiß jemand eine Möglichkeit, wie man, wenn mehrere Menüunterpunkte bestehen, diese nach erfolgter Prozedurausführung markiert erscheinen lassen kann? Z. B. ein Zeichen davor oder fette Schrift oder welche Möglichkeit es sonst geben könnte. Ich möchte also einen Menüpunkt, wenn dieser ausgewählt wurde, anschließend kenntlich gemacht haben, um dem User anzuzeigen, dass diese Routine bereits erledigt ist - damit nicht doppelt ausgeführt wird. Wer hat hier einen Tipp?
Danke und Gruß
Horst
Auszug
...
Set cmdButton = M2.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Objektverzeichnis bearbeiten"
.OnAction = "Objektbearbeitung"
.Style = msoButtonIconAndCaption
.FaceId = 23 '592
End With
Set cmdButton = M2.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Objektverzeichnis Veränderungen speichern"
.OnAction = "Objektbearbeitung_SpeichernBeenden"
.Style = msoButtonIconAndCaption
.FaceId = 1975
End With
Set cmdButton = M2.Controls.Add(Type:=msoControlButton, ID:=2)
With cmdButton
.Caption = "------------------------------------------------------"
.Style = msoButtonCaption
End With
Set cmdButton = M2.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Objektverwaltung"
.OnAction = "ObjektVorlagenBearbeiten"
.Style = msoButtonIconAndCaption
.FaceId = 296
End With
...

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Menüpunkt markieren nach Prozedur
07.07.2006 15:01:06
Peter
Hallo Horst,
da wirst du wenig Glück haben, einen Menüpunkt zu markieren oder anders anzuzeigen.
Ob deine Anwender das obendrein zur Kenntnis nehmen, ist doch auch fraglich.
Ich würde mir ein paar Public Variablen definieren und dort speichern, wenn ein Makro gelaufen ist.
Bevor ein Makro gestartet wird, würde ich die Variable befragen, ob das Makro bereits aufgerufen wurde.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: VBA-Menüpunkt markieren nach Prozedur
07.07.2006 15:17:07
HorstH
Hallo Peter,
danke für deine Post! Wie macht man das mit der Abfrage - bin Anfänger und kriege gerade 'ne Schleife hin. Wie baut man so einen Zähler ein? Kannst du behilflich sein? Wäre toll!
Freundliche Grüße
Horst
Anzeige
AW: VBA-Menüpunkt markieren nach Prozedur
07.07.2006 15:40:37
Konrad
Hi,
disable die Controls nach Makroausführung.
mfg Konrad
AW: VBA-Menüpunkt markieren nach Prozedur
07.07.2006 16:18:36
HorstH
Hallo Konrad,
Danke für Post. Bin in der Hilfe so nicht fündig geworden. Wie macht man das?
~f~
Set cmdButton = M2.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Objektverzeichnis bearbeiten"
.OnAction = "Objektbearbeitung"
.Style = msoButtonIconAndCaption
.FaceId = 23 '592
End With
M2.Visible = True
Wird am Ende des Makros dann auf False; und wenn - wie gesetzt?
Ich weiß nicht wie. Hilfe wär prima!
Gruß
Horst
AW: VBA-Menüpunkt markieren nach Prozedur
07.07.2006 16:22:56
Konrad

Sub Objektbearbeitung()
'Dein Code
Commandbars("M2").Controls("Objektverzeichnis bearbeiten").Enabled = False
End Sub

mfg Konrad
Anzeige
AW: VBA-Menüpunkt markieren nach Prozedur
07.07.2006 16:33:36
HorstH
Super, Konrad,
du hast mein Wochenende gerettet. Recht herzlichen Dank - ich wusste einfach nicht, was ich alles ansprechen muss und dass das commandbars wie unterzubringen ist. D e n Punkt habe ich jetzt gelernt.
Wünsche ein sonniges Wochenende!
Danke und Gruß
Horst
Also erledigt, oder?
07.07.2006 16:51:50
Konrad
.
AW: Also erledigt, oder?
10.07.2006 10:23:26
HorstH
Hallo Konrad,
prima, dass du nachfragst. Freitag wurde kurz nach meiner Freuden-mail an dich unser Server heruntergefahren - so konnte ich die Zeile erst zuhause ausprobieren. Hier hatte ich ständig die Fehlermeldung "Fehler 5 - Argument bzw. Prozedur ...". Tja, dann habe ich als Anfänger mich durch die Hilfe gelesen (...kam mir vor wie im Ausland :-) - aber nach Stunden! habe ich es dann erfolgreich geschafft durch ständiges Probieren, mein Ziel zu erreichen (siehe unten). Grund überhaupt: Ich habe ein sheet mit 16.000 Matrixformeln, die je zur Hälfte erst ausgerechnet werden müsssen, bevor der nächste Schritt kommt usw. und da die nachfolgenden Schritte schon während der Berechnung ausgeführt werden, passiert es, dass die Formelergebnisse als Value gemacht werden, obwohl noch nicht alle ausgerechnet sind. Da das Tool von mir auf unterschiedlichen Rechnern läuft, kann ich kein Wait eingeben. Ich arbeite mit Win+Office 2000. Erst ab 2002 oder 3 soll das gehen?! Jedenfalls am Ende jedes VBAs des jeweiligen Menüpunkts fragt dieses hier nach und setzt enstsprechend blind/aktiv. Ich danke für deine Zeile, mit der ich mind. 2 Stunden herumexperimentiert habe - habe ich aber nicht gebacken bekommen und habe dann nach und nach das script zusammenbekommen :-)) . Hast du evtl. noch Optimierung? Hauptmenü Punkt 4, darin in den Untermenüpunkten 1 + 3-7 die abzuarbeitenden Schritte. FRAGE wohl noch: wie bekommt man denn den durchgezogenen Strich hin? Wenn ich den Unterstrich nehme, ist der nicht mittig zwischen den Menüpunkten. Meine bisherige Version am Ende. Vielleicht hast du hier noch Tipps?
Danke jedenfalls und freundliche Grüße aus Bremen.
Mein script:
' Kein Option Explicit
'Enabled-Eigenschaften Untermenü
'im Hauptmenü sind diese Menüpunkte individuell auf False gesetzt
&ltpre&gt
Sub WechselOnActionAuswertung()
Set WechselBar = CommandBars("QSB0_Menü").Controls(4)
If WechselBar.Controls(1).Enabled = True Then
With WechselBar
.Controls(1).Enabled = False
.Controls(3).Enabled = True
End With
ElseIf WechselBar.Controls(3).Enabled = True Then
With WechselBar
.Controls(3).Enabled = False
.Controls(4).Enabled = True
End With
ElseIf WechselBar.Controls(4).Enabled = True Then
With WechselBar
.Controls(4).Enabled = False
.Controls(5).Enabled = True
End With
ElseIf WechselBar.Controls(5).Enabled = True Then
With WechselBar
.Controls(5).Enabled = False
.Controls(6).Enabled = True
End With
ElseIf WechselBar.Controls(6).Enabled = True Then
With WechselBar
.Controls(6).Enabled = False
.Controls(7).Enabled = True
End With
ElseIf WechselBar.Controls(7).Enabled = True Then
With WechselBar
.Controls(7).Enabled = False
.Controls(1).Enabled = True
End With
End If
WechselBar.Visible = True
End Sub&lt/pre&gt
'+++
Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=2)
' normal Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=2)
' tief, aber mit ABC davor Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=2)
' Disk davor Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=3)
' zeigt Tastenkürzel dazu an Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=4)
With cmdButton
.Caption = "------------------------------------------"
.Style = msoButtonCaption
End With
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige