Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Alle Makros einer Tabelle in einer Combobox

Alle Makros einer Tabelle in einer Combobox
Eugen
Forum
würde gerne ein Makro erweitern, so das alle Makros in einer ComboBox zur Auswahl stehen.
wer kann helfen?
herzlichen dank
eugenS
mein kläglicher Versuch:

Sub cboMacros_Click()
Dim iRow As Integer
Dim objWB As Object
cboMacros.Clear
For Each objWB In ThisWorkbook.VBProjekt.VBComponents.CodeModule
With objWB.CodeModule
For iRow = 1 To .CountOfLines
If .ProcOfLine(iRow, 0) > "" Then
If .ProcBodyLine(.ProcOfLine(iRow, 0), 0) = iRow Then
cboMacros.AddItem .ProcOfLine(iRow, 0)
End If
End If
Next iRow
End With
Next
End Sub

und das Original von Hans Herber

Sub cboMacros_DropButtonClick()
Dim iRow As Integer
cboMacros.Clear
With ThisWorkbook.VBProject.VBComponents("BasMain").CodeModule
For iRow = 1 To .CountOfLines
If .ProcOfLine(iRow, 0) > "" Then
If .ProcBodyLine(.ProcOfLine(iRow, 0), 0) = iRow Then
cboMacros.AddItem .ProcOfLine(iRow, 0)
End If
End If
Next iRow
End With
msgbox "Makros wurden eingelesen!"
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Alle Makros einer Tabelle in einer Combobox
Ramses
Hallo
schon gar nicht schlecht adaptiert ;-)
Es muss nur eine Zeile geändert werden.
Option Explicit

Private Sub CommandButton1_Click()
Dim iRow As Integer
Dim objWB As Object
Me.cboMacros.Clear
'Diese Zeile ist neu
For Each objWB In ThisWorkbook.VBProject.VBComponents
With objWB.CodeModule
For iRow = 1 To .CountOfLines
If .ProcOfLine(iRow, 0) > "" Then
If .ProcBodyLine(.ProcOfLine(iRow, 0), 0) = iRow Then
Me.cboMacros.AddItem .ProcOfLine(iRow, 0)
End If
End If
Next iRow
End With
Next
End Sub

Gruss Rainer
Anzeige
Danke (m.T)
eugenS
hallo reiner
herzlichen dank. auch für die aufmunternden worte. tun mir gut.
du hast noch ein Me. vor cboMacros gesetzt. darf ich fragen was man damit erreicht.
gruss eugenS
Merci :-)
Ramses
Hallo
"Me" referenziert auf die gerade ausführende Userform als Object.
Dann wird dir, wenn du den Code "Me." im VB-Editor eingibst, alles vorgeschlagen, was darin enthalten ist, und brauchst nicht alles von Hand zu schreiben.
Es gibt einige die sagen, das sei nicht nötig, aber wenn es das schon gibt, dann spare ich mir wenigsten Schreibfehler :-)
Gruss Rainer
Anzeige
AW: Merci :-)
eugenS
hallo rainer
stein für stein
merke langsam wo die hunderte wenn nicht schon tausende von mannjahren, die in excel investiert worden sind, hingewandert sind. toll. noch eine gute nacht oder wenn ich zu spät bin einen wunderschönen tag.
gruss eugen
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige