Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1256to1260
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
Inhaltsverzeichnis

Menüleistenoptionen mit Unterstrich listen

Menüleistenoptionen mit Unterstrich listen
Dieter(Drummer)
Hi VBA Spezialisten,
ich suche ein Makro, dass mit z.B. in Spalte E folgendes auflistet:
Menüpunkte der Menüleiste: den Begriff und in nächste Zelle den evtl. Unterpunkt. Wichtig wäre noch dabei den Shurtcut (Unterstrichenen Buchstaben auch zu unterstreichen - hier nur FETT dargestellt). Z.B. so:
Datei
Öffnen
Schliessen
Speichern
Speichern unter
usw.
Der nächste Menüpunkt, Bearbeiten dann ab der nächstren Spalte z.B. F.
Wäre toll, wenn sich das relisiert werden könnte.
Mit Gruß und Dank für's drum kümmern
Gruß, Dieter(Drummer)

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Menüleistenoptionen mit Unterstrich listen
12.04.2012 21:25:32
ransi
HAllo Dieter
Kaum getestet und mal "so hingeschmiert":
Option Explicit


Public Sub machs()
    Dim objControl As CommandBarControl
    Dim btn As CommandBarControl
    Dim A As Integer, B As Integer, C
    On Error Resume Next
    For Each objControl In Application.CommandBars("Worksheet Menu Bar").Controls
        A = A + 1
        For Each btn In objControl.Controls
            B = B + 1
            With Cells(B, A)
                .Value = btn.Caption
                C = InStr(1, .Text, "&")
                .Replace "&", ""
                .Characters(C, 1).Font.Bold = True
            End With
        Next
        B = 0
    Next
End Sub


Probier mal selber auf Herz und Nieren.
ransi
Anzeige
AW: Menüleistenoptionen mit Unterstrich listen
12.04.2012 21:37:58
Dieter(Drummer)
Hi Ransi,
dass ist schon super. Danke. Es wird wohl der Hauptmenüpunkt. Z.B. "Datei" nicht mit aufgelistet.
Wäre super, wenn das auch noch geht.
Danke für das schnelle und gut funktionierende Makro.
Gruß
Dieter(Drummer)
AW: Menüleistenoptionen mit Unterstrich listen
12.04.2012 21:52:03
Dieter(Drummer)
Hi Ransi,
es wird immer der entsprechende Buchstabe, der einen Unterstrich hat, FETT gelistet. Macnhmal ist der ganze Begriff FETT.
Hier male meien Testdatei: https://www.herber.de/bbs/user/79783.xls
Gruß
Dieter(Drummer)
AW: Menüleistenoptionen mit Unterstrich listen
12.04.2012 23:49:24
Reinhard
Hallo Dieter,
probier mal in einem leeren Blatt:

Option Explicit
Public Sub machs()
Dim objControl As CommandBarControl
Dim btn As CommandBarControl
Dim A As Integer, B As Integer, C
On Error Resume Next
ActiveSheet.UsedRange.Clear
For Each objControl In Application.CommandBars("Worksheet Menu Bar").Controls
A = A + 1
For Each btn In objControl.Controls
B = B + 1
With Cells(B, A)
.Value = btn.Caption
C = InStr(1, .Text, "&")
.Replace "&", ""
If C > 0 Then .Characters(C, 1).Font.Bold = True
End With
Next
B = 0
Next
End Sub

Gruß
Reinhard
Anzeige
AW: Menüleistenoptionen mit Unterstrich listen
13.04.2012 09:23:39
Dieter(Drummer)
Guten Morgen Reinhard,
SORRY, dass ich mich jetzt erst melde! Danke für dein noch so spät erstelltes Makro. Es funktioniert schon prima nach meinen Vorstellungen. Außer, dass nicht alle Hauptmenüpunkte am Anfang gelistet werden.
Hier mal meine neue Musterdatei:
Der Menüpunkt "Datei wird am Anfang gelistet, aber in den Folgespalten fehlen jeweils die nächten Menüpunkte, z.B. "Bearbeiten und dann die nächsten Unterpunkte ...

Es wird auch z.B. der Untermenüpunkt "Berechtigung" 2 x aufgeführt und nicht mehr die nächsten 3 weiteren Menüunterpunkte "Unbeschränkter Zugriff" usw. Dies gilt auch für alle weiteren evtl. Menüunterpunkte.
Hier meine neue Musterdatei: https://www.herber.de/bbs/user/79785.xls
Ich finde das bisherige Ergebnis aber auch schon prima und freue mich auf evtl. Optimierung.
Gruß
Dieter(Drummer)
Anzeige
AW: Menüleistenoptionen mit Unterstrich listen
13.04.2012 15:23:28
Reinhard
Hallo Dieter,
die Unterpunkte fehlen noch, deshlab Frage noch ofen, muß jetzt weg.
Deaktivierte Punkte sind jetzt durchgestrichen.
Option Explicit
Public Sub machs()
Dim objControl As CommandBarControl, btn As CommandBarControl
Dim Zei As Long, Spa As Long, Pos As Integer
On Error Resume Next
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
.UsedRange.Clear
Zei = 1
For Each objControl In Application.CommandBars("Worksheet Menu Bar").Controls
Spa = Spa + 1
.Cells(Zei, Spa).Value = Replace(objControl.Caption, "&", "")
.Cells(Zei, Spa).Font.Bold = True
For Each btn In objControl.Controls
If btn.Visible Then
Zei = Zei + 1
With .Cells(Zei, Spa)
.Value = btn.Caption
Pos = InStr(1, .Text, "&")
.Replace "&", ""
If Pos > 0 Then .Characters(Pos, 1).Font.Bold = True
If btn.Enabled = False Then .Font.Strikethrough = True
End With
End If
Next
Zei = 1
Next
.Columns.AutoFit
End With
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard
Anzeige
AW: Danke Reinhard ...
13.04.2012 21:37:41
Dieter(Drummer)
... es ist auch eine gute Lösung.
Danke für deinen Dauereinsatz. Wenn es noch mit den Unter-Unterpunkten klappt, wäre alles perfekt.
Gruß und einen schönen Abend, Dieter(Drummer
AW: Danke Reinhard ...
13.04.2012 21:57:43
Reinhard
Hallo Dieter,
hatte heute einen harten Tag und keinen Bock mehr noch groß zu denken.
Obwohl, soviel ist das gar nicht, bin da sehr sicher ich kriege das hin, aber erst ab Morgen.
Und wenn ich das hinkrige ist es sooooo schwierig nicht :-) :-(
Probiere es mal selbst. Stell dir da die sichtbaren Menuepunkte oben im Menue,
also datei, bearbeiten usw. vor als Oberordner im Verzeichnisbaum den du vom Win Explorer kennst.
Wie im Code sichtbar kannst du sie mit .Name "ansprechen".
Alle Unterordner/Untermenues je Menuepunkt mit .Caption.
Das siehst du auch im Code.
Prinzipiell mußt du nur eine dritte For-Schleife in die beiden vorhandenen einbauen.
Die erste For-Schleife geht alle Oberordner durch.
Die zweite deren Unterordner.
Die dritte müßte dann alle Unterordner der Unterordner durchgehen.
Probier einfach mal rum.
Irgendwie hab ich Frühjahrsmüdigkeit *gähn*
Gruß
Reinhard
Anzeige
AW: Mit Unter-Unterordner
14.04.2012 08:43:41
Dieter(Drummer)
Guten Morgen Reinhard,
Danke für deine noch späte Meldung und Erläuterungen. Werde mich mit der Problematik gerne auseindersetzen und mal Versuche starten. Sollte ich es nicht schaffen, so greife ich gerne auf deine weitere Hilfe zurück. Zeit ist überhaupt kein Problem und mach dir da keinen Stress.
Gruß, Dieter(Drummer)
AW: Sorry ...
14.04.2012 09:21:43
Dieter(Drummer)
Hi Reinhard,
das Umsetzen deiner Erläuterung ist für mich nicht möglich, da hierzu mein VBA-Wissen zu dürftig ist. Bin auf deine weitere Hilfe angewiesen. Bitte aber keinen Stress deshalb.
Danke dir für weiteren Einsatz und Gruß aus Düsseldorf, Dieter(Drummer)
Anzeige
AW: @Reinhard
17.04.2012 08:32:46
Dieter(Drummer)
Guten Morgen Reinhard,
kann ich noch auf eine Erweiterung deines Codes hoffen, der auch die Unter-Untermenüs mit listet.
Würde mich freien, wenn dies möglich wäre. Ich kann es nicht hinbekommen, da mein VBA Wissen nicht ausreicht. Hier nochmal dein letzter Code:
'Mit deaktivierten Punkten sind durchgestrichen. Von Reinhard 13.04.2012
Public Sub machsMitDuchgestrichen()
Dim objControl As CommandBarControl, btn As CommandBarControl
Dim Zei As Long, Spa As Long, Pos As Integer
On Error Resume Next
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
.UsedRange.Clear
Zei = 1
For Each objControl In Application.CommandBars("Worksheet Menu Bar").Controls
Spa = Spa + 1
.Cells(Zei, Spa).Value = Replace(objControl.Caption, "&", "")
.Cells(Zei, Spa).Font.Bold = True
For Each btn In objControl.Controls
If btn.Visible Then
Zei = Zei + 1
With .Cells(Zei, Spa)
.Value = btn.Caption
Pos = InStr(1, .Text, "&")
.Replace "&", ""
If Pos > 0 Then .Characters(Pos, 1).Font.Bold = True
If btn.Enabled = False Then .Font.Strikethrough = True
End With
End If
Next
Zei = 1
Next
.Columns.AutoFit
End With
Application.ScreenUpdating = True
End Sub
Danke für evtl. weitere Hilfe und
Gruß, Dieter(Drummer)
Anzeige
AW: @Reinhard
17.04.2012 13:04:57
Reinhard
Hallo Dieter,
ich hatte weiter dran probiert aber da ist noch der Wurm drin. Irgendwie ist alles auf dem Blatt *glaub*
aber an falschen Stellen
teste bitte selbst den nachfolgenden Code, dann siehste es.
Gruß
Reinhard
Public Sub machs()
Dim objControl As CommandBarControl, btn
Dim Zei As Long, Spa As Long, Pos As Integer, Z
On Error Resume Next
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
.UsedRange.Clear
Zei = 1
Spa = -1
For Each objControl In Application.CommandBars("Worksheet Menu Bar").Controls
Spa = Spa + 2
.Cells(Zei, Spa).Value = Replace(objControl.Caption, "&", "")
.Cells(Zei, Spa).Font.Bold = True
For Each btn In objControl.Controls
If btn.Visible Then
Zei = Zei + 1
With .Cells(Zei, Spa)
.Value = btn.Caption
For Z = 1 To btn.Controls.Count
.Offset(Z - 1, Spa).Value = btn.Caption
.Offset(Z - 1, Spa + 1).Value = btn.Controls(Z).Caption
Next Z
Zei = Zei + Z
Pos = InStr(1, .Text, "&")
.Replace "&", ""
If Pos > 0 Then .Characters(Pos, 1).Font.Bold = True
If btn.Enabled = False Then .Font.Strikethrough = True
End With
End If
Next
Zei = 1
Next
.Columns.AutoFit
End With
Application.ScreenUpdating = True
End Sub
Sub tt()
MsgBox CommandBars("Worksheet Menu Bar").Controls("Forma&t").Controls("Spa&lte").Controls("Einb&lenden").Enabled
MsgBox CommandBars("Worksheet Menu Bar").Controls("Forma&t").Controls("Spa&lte").Controls.Count
End Sub
Anzeige
AW: Unter-Untermenüs auch listen
17.04.2012 16:30:45
Dieter(Drummer)
Hi Reimnhard,
Danke erstmal fürs weiter drum kümmern. Mit dem neuen Makro werden dei Spalten nicht komplett gelistet, verschieben sich in nächste Spalten und die Unter-Untermenüs werden in Folgespalten gezeigt.
Hier mal eine Musterdatei mit z.B. nur Spalte C, wie es sein sollte, ohne Makros:
https://www.herber.de/bbs/user/79835.xls
Würde mich freuen, wenn es noch klappt.
Gruß, Dieter(Drummer)
AW: @Reinhard, Unter-Untermenü
18.04.2012 09:10:18
Dieter(Drummer)
Guten Morgen Reinhard,
bei Prüflauf deines neuen Makros, konnte ich z.B, festellen, dass bei diesem Block:

Next Z
Zei = Zei + Z
Pos = InStr(1, .Text, "&")
.Replace "&", ""
If Pos > 0 Then .Characters(Pos, 1).Font.Bold = True
If btn.Enabled = False Then .Font.Strikethrough = True
End With
End If
Next
Zei = 1
schon die Spalte B mit dem Untermenüpunkt "&NEU" wieder begonnen wird, obwohl in der A2 schon der Unterpunkt gelistet ist. Es wird also schon die Spalte B weiter gelsitet, obwohl in die Spalte A noch nicht komplett ist. Evtl. hilft dir das weiter.
Wäre toll. wenn es noch klappen würde und danke für weitere Hilfe.
Gruß, Dieter(Drummer)
Anzeige
AW: Unter-Untermenüs listen
18.04.2012 19:56:13
Dieter(Drummer)
Guten Abend Reinhard,
hab noch das letzte Makro von dir mal weiter geprüft mit STOPS. Mit dieser Zeile:
.Offset(Z - 1, Spa + 1).Value = btn.Controls(Z).Caption

wird das Untermenü "&Neu...", dass in Zelle A2 gelistet wird, zusatzlich in der nächsten Spalte, in B1 gelistet und müsste aber in Spalte A bleiben. Evtl. hilft das schon zur weiteren Verbesserung.
Freue mich auf deine weitere Hilfe.
Gruß, Dieter(Drummer)
AW: Unter-Untermenüs listen
18.04.2012 22:18:48
Reinhard
Hallo Dieter,
in fremden Code einen Fehler zu finden empfinde ich relativ gesehen als einfacher.
Ich kann (derzeit) auf meinen Code glotzen und glotzen usw. ich seh den/die Fehler nicht,
denn in meinem Kopf laufen die gleichen Gedanken wie bei der Codeerstellung ab :-(
Ich lese was du schreibst aber es bewirkt bei mir leider kein "Klick" :-(((
Ich habe die Frage auf noch offen gestellt, vielleicht erbarmt sich hier ja jmd. unserer.
Wenn nicht kommt morgen Plan B. Ich gehe die Sache mit völlig neuem Code an.
Um relativ unbelastet zu sein habe ich ihn mir heute gar nicht angeschaut.
Gruß
Reinhard
AW: Unter-Untermenüs listen
18.04.2012 22:38:50
Dieter(Drummer)
Guten Abend Reinhard,
keine Problem. Freu mich, dass du dennoch nicht aufgibst nund mir damit hilfst. Gut Ding braucht manchmal seine Zeit. Ich warte gerne bis es klappt.
Gruß, Dieter(Drummer)
AW: Menüpunkte mit Unter-Untermenüs listen
22.04.2012 10:20:07
Dieter(Drummer)
Hi Reinhard,
gibt es noch eine Lösung für die Listung der Menüpunkte mit Unter-Untermenüs? Es ist bestimmt nicht einfach die komplette Lösung zu erstellen. Wäre toll, wenn es dennoch klappt.
Gruß und Danke für's dran bleiben,
Dieter(Drummer)

32 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige