Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makros auflisten

Makros auflisten
15.07.2004 23:34:33
Uduuh
Hallo zusammen,
hat einer eine Idee, wie ich alle Makros einer Mappe in einer Tabelle auflisten kann?
Gruß aus'm Pott
Udo

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zusatz Makros auflisten
Uduuh
ich meine nur die Namen, also was zwischen Sub und () ist.
AW: Zusatz Makros auflisten
K.Rola
Hallo,
aus welchen Komponenten, auch aus userforms, Klassenmodulen?
Gruß K.Rola
AW: Noch kurz vorm Schlafen gehen...
Uduuh
Hallo Franz,
das ist ein guter Ansatz. Ich werde mal sehen, was ich draus machen kann.
Vielen Dank aus'm Pott
Udo
Nachfrage
Uduuh
Hallo,
die Lösung von Franz hat mir schon ganz gut weiter geholfen. Hab's ein bisschen umgestrickt, weil ich nur eine lange Liste will.
Jetzt mein Prob: wie kriege ich das auf Subs eingegrenzt? Die Functions brauche und will ich nicht und auch alle Private Subs nicht. Leider gibt die Hilfe auch nix her.
Gruß aus'm Pott
Udo

Sub MakroListe()
Dim vbc As Object, sh As Worksheet
Dim iRow As Integer, iCol As Integer, iCounter As Integer
Dim sMacro As String
Set sh = ThisWorkbook.Sheets(1)
sh.Cells.Clear
sh.Rows(1).Font.Bold = True
iRow = iRow + 1
iCol = 1
For Each vbc In ActiveWorkbook.VBProject.VBComponents
With vbc.CodeModule
For iCounter = 1 To .CountOfLines
If .ProcOfLine(iCounter, 0) > "" Then
sMacro = .ProcOfLine(iCounter, 0)
If sMacro <> sh.Cells(iRow, iCol) Then
iRow = iRow + 1
sh.Cells(iRow, iCol).Value = sMacro
End If
End If
Next iCounter
End With
Next vbc
sh.Columns.AutoFit
End Sub

Anzeige
AW: Nachfrage
16.07.2004 09:18:39
Franz
Hallo Udo,
hier was von Nepumuk, um die makros im Modul einer Tabelle zu löschen:
With ActiveWorkbook.VBProject.VBComponents("Tabelle1").CodeModule
.DeleteLines 1, .CountOfLines
End With
Noch was von Nepumuk, um das Workbook-Modul zu löschen und was neues reinzuschreiben:
Public Sub Franz()
With Workbooks("Mappe2").VBProject.VBComponents("DieseArbeitsmappe").CodeModule
.DeleteLines 1, .CountOfLines
.InsertLines 1, "Option Explicit"
.InsertLines 2, ""
.InsertLines 3, "

Private Sub Workbook_BeforeClose(Cancel As Boolean)"
.InsertLines 4, "    ThisWorkbook.Saved = True"
.InsertLines 5, "End Sub
"
End With
End Sub
Und dann gibt's noch das:
https://www.herber.de/index.html?https://www.herber.de/forum/archiv/380to384/t380713.htm
Besser weiß ich es leider auch nicht, vielleicht findest du raus, wie man ein kongretes Modul anspricht.
Beste Grüße
Franz
Anzeige
AW: Nachfrage
Uduuh
Hallo,
nein das ist es nicht. Ich will wissen, um welche Art von Prozedur es sich handelt.
Sub, Private Sub, Function oder Private Function. .ProcOfLine gibt mir den Namen wieder, aber leider ohne Typ.
Trotzdem Danke
Udo
AW: Nachfrage
16.07.2004 09:54:39
Franz
Hallo Udo,
kann ich leider nicht auch nicht weiterhelfen. Wenn du in der Hilfe nix findest, musst vielleicht mal auf Nepumuk warten, der hat's sicher im Kopf ;-)))
Grüße
Franz
Ich hab's
Uduuh
Dank an alle, die geholfen haben.
Gruß aus'm Pott
Udo

Sub MakroListe()
Dim vbc As Object, sh As Worksheet
Dim iRow As Integer, iCol As Integer, iCounter As Integer
Set sh = ThisWorkbook.Sheets(1)
sh.Cells.Clear
iRow = 1
iCol = 1
For Each vbc In ActiveWorkbook.VBProject.VBComponents
With vbc.CodeModule
For iCounter = 1 To .CountOfLines
If .ProcOfLine(iCounter, 0) > "" Then
If .Lines(iCounter, 1) Like "Sub*" Then
sh.Cells(iRow, iCol).Value = .ProcOfLine(iCounter, 0)
iRow = iRow + 1
End If
End If
Next iCounter
End With
Next vbc
sh.Columns.AutoFit
End Sub

Anzeige
AW: Ich hab's
16.07.2004 10:45:19
joel
hallo udo
da hatten wir wohl die gleiche idee... jetzt noch zusammenwursteln, dann kommts gut :-)
"Public Sub*" oder "Sub*"
gruss joel
ps: ich bin einer der "pingeligen", der nie einfach nur "Sub ..." schreibt. alles muss seine ordnung haben! bin halt n'schweizer *lol
Gratuliere! Grüße o.t.
16.07.2004 10:53:44
Franz
so vielleicht?...
16.07.2004 10:32:10
joel
hallo udo
eine hand wäscht die andere :-)
bin zwar immer noch auf der suche nach einer eigenschaft, die den typ der Funktion/prozedur als konstante ausgiebt, mit der "lines"-eigenschaft lässt sich das aber zumindest mal lösen
gruss joel

Sub MakroListe()
Dim vbc As Object, sh As Worksheet
Dim iRow As Integer, iCol As Integer, iCounter As Integer
Dim sMacro As String
Set sh = ThisWorkbook.Sheets(1)
sh.Cells.Clear
sh.Rows(1).Font.Bold = True
iRow = iRow + 1
iCol = 1
For Each vbc In ActiveWorkbook.VBProject.VBComponents
With vbc.CodeModule
For iCounter = 1 To .CountOfLines
If .ProcOfLine(iCounter, vbext_pk_Proc) > "" Then
sMacro = .ProcOfLine(iCounter, vbext_pk_Proc)
'##### NEU
sLine = .Lines(iCounter, 1)
If sLine Like "Public Sub*" Then
sh.Rows(iRow).Font.ColorIndex = 5
End If
If sMacro <> sh.Cells(iRow, iCol) Then
iRow = iRow + 1
sh.Cells(iRow, iCol).Value = sMacro
End If
End If
Next iCounter
End With
Next vbc
sh.Columns.AutoFit
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige