Liste der Makros auf den Tasten
#1
Liebe Excelfreunde

Ich habe wieder mal eine Frage. Ich habe in einem Tool sehr viele Tasten verbaut und dort natürlich Makros hinterlegt. Nun habe ich auf einem Blatt eine Taste auf ein neues Makro gelegt und muss 9 weitere identische Blätter nachpflegen. Um zu kontrollieren, ob ich alle Tasten richtig erwischt habe (und ev. auch andere Fehlbelegungen zu sehen), fragte ich mich, ob es eine Liste in Excel gibt, die zeigt, welche Taste mit welchem Makro belegt ist (so ähnlich wie die Liste der vergebenen Namen von Zellen/Bereichen).

Gibt es das und wenn ja, wo finde ich das? Ich habe Excel 2016 und Win 10 installiert.

Danke schon im Voraus für eure Antworten.

Gruss aus der Schweiz
Rodlof
Top
#2
Hi

Hier mal ein Ansatz für das jeweils Aktive Blatt. Statt in ein MSGBOX kannst du es dir auch in Zellen ausgeben lassen.
Code:
Public Sub Test1()
Dim but As Object, i As Long
For i = 1 To Sheets.Count
 For Each but In Sheets(i).Buttons
  MsgBox Sheets(i).Name & " " & but.Name & "  " & but.Caption & "  " & but.OnAction
 Next but
Next i
End Sub

Gruß Elex
Top
#3
Hallo

da habe ich auch noch einen alten Code auf Lager, den ich ab und zu verwende. Er listet alle Objekte in in Tabelle auf, bei mir in "Tabelle8"
Der zweite Code richtet alle Objekte neu aus, wenn man die Werte für Top, Left, usw. vorher von Hand korrigiert hat. 
Placment ist die Abhaengigkeit ds Objektes von der Zell Position und Zell Grösse.

mfg  gast 123

Code:
'listet alle Blatt Objekte auf

Sub Objekte_auflisten()
Dim n As Integer:  n = 3
Dim TB As Worksheet
Set TB = Sheets("Tabelle8")
   TB.Range("A4:H50") = Empty
   Application.ScreenUpdating = False
On Error Resume Next
For i = 1 To 4
 Zahl = Worksheets(i).DrawingObjects.Count
 For j = 1 To Zahl
  With Worksheets(i).DrawingObjects(j)
     TB.Cells(n, 2) = i
     TB.Cells(n, 3) = .Name
     TB.Cells(n, 4) = .Text
     TB.Cells(n, 5) = .Top
     TB.Cells(n, 6) = .Left
     TB.Cells(n, 7) = .Height
     TB.Cells(n, 8) = .Width
     TB.Cells(n, 9) = .Placement
     TB.Cells(n, 10) = .OnAction
     n = n + 1
  End With
 Next j
 n = n + 2
Next i
Columns(10).Replace ThisWorkbook.Name & "'!", ""
Sheets("Tabelle8").Select
[k1].Select
End Sub



'alle Blatt Objekte neu ausrichten

Sub Objekte_Install()
Dim n As Integer:  n = 3
Dim TB As Worksheet
Set TB = Sheets("Tabelle8")
Application.ScreenUpdating = False
On Error Resume Next
For i = 1 To 4
 Sheets(i).Select
 Zahl = Worksheets(i).DrawingObjects.Count
 For j = 1 To Zahl
  With Worksheets(i).DrawingObjects(j)
     .Top = TB.Cells(n, 5)
     .Left = TB.Cells(n, 6)
     .Height = TB.Cells(n, 7)
     .Width = TB.Cells(n, 8)
      n = n + 1
  End With
 Next j
 n = n + 2
Next i
Sheets("Tabelle8").Select
End Sub
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste