Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
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

Übersicht eigene VBA Funktionen zusammenstellen

Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 11:53:25
Dietrich
Hallo liebes Forum,
manchmal suche ich mir einen Wolf in meinen Exceldateien, um schon einmal gefundene VBA-Lösungen wiederverwenden zu können. Da wäre es schön, wenn man auf der Festplatte die Exceldateien nach enthaltenen VBA-Makros durchsuchen könnte.
Vielleicht geht es ja gar nicht - vielleicht ist es aber auch ein alter Hut und somit mein Anfängerproblem...
Für Tips von Euch wäre ich sehr dankbar...
Viele Grüße
Dietrich

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 12:23:40
Nepumuk
Hallo Dietrich,
mal ein Beispiel. Da für jede Mappe eine Spalte benötigt wird, musst du deine Mappen portionsweise verarbeiten oder die Prozedur umbauen.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub Macrolist()
    Dim objVBC As Object, objWorkbook As Workbook
    Dim strMacroname As String
    Dim intLine As Integer
    Dim lngFileCount As Long, lngColumn As Long, lngRow As Long
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        With .FileSearch
            .NewSearch
            .FileType = msoFileTypeExcelWorkbooks
            .LookIn = ThisWorkbook.Path
            .SearchSubFolders = True
            .Execute
            For lngFileCount = 1 To .FoundFiles.Count
                If .FoundFiles(lngFileCount) <> ThisWorkbook.FullName Then
                    lngColumn = lngColumn + 1
                    lngRow = 1
                    ThisWorkbook.Worksheets(1).Cells(1, lngColumn).Value = Dir$(.FoundFiles(lngFileCount))
                    Set objWorkbook = Workbooks.Open(.FoundFiles(lngFileCount))
                    For Each objVBC In objWorkbook.VBProject.VBComponents
                        With objVBC.CodeModule
                            For intLine = 1 To .CountOfLines
                                If .ProcOfLine(intLine, 0) <> "" Then
                                    If strMacroname <> .ProcOfLine(intLine, 0) Then
                                        strMacroname = .ProcOfLine(intLine, 0)
                                        lngRow = lngRow + 1
                                        ThisWorkbook.Worksheets(1).Cells(lngRow, lngColumn).Value = strMacroname
                                    End If
                                End If
                            Next
                        End With
                    Next
                    objWorkbook.Close SaveChanges:=False
                End If
            Next
        End With
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 15:12:00
Dietrich
Hallo Nepumuk,
Vielen Dank für den Code. Zum Ausprobieren habe ich ihn einfach mal in den VBA-Bereich (Alt-11) einer neuen Datei kopiert und mit F5 starten wollen.
Er bricht leider immer in Zeile 12 beim Befehl
.LookIn = ThisWorkbook.Path
mit der Fehlermeldung ab:
"Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ugültiges Argument"
Was mache ich falsch?
Viele Grüße
Dietrich
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 15:19:00
Nepumuk
Hallo Dietrich,
na du solltest die Mappe vorher speichern. Die kann ja im ungespeicherten Zustand noch gar keinen Pfad haben.
Gruß
Nepumuk
Anzeige
DANKE!!! Nepumuk
10.11.2008 16:01:04
Dietrich
Hallo Nepumuk,
Super! Vielen Dank!
Wenn ich das richtig verstanden habe zeigt er mir die Makronamen aller XLS-Dateien des aktuellen Verzeichnisses und aller Unterverzeichnisse, nicht wahr?
Genau das habe ich gesucht!
Vielen Dank und viele Grüße
Dietrich
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 16:08:00
Dietrich
Hm,
ich glaub einen hab ich noch:
er bricht den Job regelmäßig mit dem folgenden Fehler ab:
Laufzeitfehler 1004
Anwendungs- oder Objectdefinierter Fehler
Ist das normal oder mache ich einen Fehler?
Gruß
Dietrich
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 16:11:00
Tele
Hi Dietrich
du machst einen Fehler, bei mir funzt es!
Gruß
Tele
Anzeige
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 16:16:12
Dietrich
Hi Tele,
es läuft auch bei mir super los. Ab einem bestimmten (?) Punkt steigt es allerdings aus. Die Fehlermeldung an sich gibt leider nicht mehr Hinweise bzw. ich weiss nicht, in welchen Situationen solche Meldung erfolgt.
Gruß
Dietrich
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 16:24:00
Tele
Hi Dietrich
überprüf mal: vielleicht zu viele Workbooks im Pfad, denke an deine max. Spaltenanzahl im Sheet
Gruß
Tele
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 16:38:19
Dietrich
Hi Tele,
hm, muss ich gucken. Wie kann ich erkennen, wieviele Dateien er scannen kann? An den Spalten hats aber sicher nicht gelegen...
Viele Grüße
Dietrich
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 16:42:52
Tele
Hi Dietrich
256 Dateien, da 256 Spalten im Sheet
Gruß Tele
Anzeige
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 16:50:00
Dietrich
Hi Tele,
nicht schlecht ;-) Darauf hätte ich natürlich auch kommen...
Ist aber nicht der Punkt, da er z.B. bei der Spalte "AR" abbricht...
Gruß
Dietrich
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 16:58:00
Tele
Hi Dietrich
dann weiß ich auch nicht weiter, bei mir klappts!!
Gruß
Tele
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 17:00:32
Nepumuk
Hallo Dietrich,
ohne die Zeile zu kennen, in welcher der Debugger stehen bleibt ist das stochern im Nebel.
Gruß
Nepumuk
AW: Übersicht eigene VBA Funktionen zusammenstellen
10.11.2008 19:40:48
Erich
Hallo Dietrich,
eventuell bricht das Makro ab, weil ein Projekt geschützt ist.
Auf Basis von Nepumuks Code hab ich mal das hier gebastelt:

Option Explicit
Public Sub MakroListe() ' nach Nepumuk, 10.11.2008 12:23:40
' www.herber.de/forum/archiv/1020to1024/t1023170.htm#1023175
Dim objVBC As Object, wbk As Workbook, strMak As String, intZ As Integer
Dim lngF As Long, lngR As Long, strM As String, wksE As Worksheet, lngC As Long
Const bolShow  As Boolean = True ' False, wenn's schneller gehen soll
Set wksE = ThisWorkbook.Worksheets(1)
wksE.Cells.ClearContents
wksE.Range("A1:E1") = Split("File Nr Datei Makroname Schutz")
With Application
.ScreenUpdating = False
.EnableEvents = False
With .FileSearch
.NewSearch
.FileType = msoFileTypeExcelWorkbooks
.LookIn = ThisWorkbook.Path  ' "c:\temp"
.SearchSubFolders = True
.Execute
lngR = 1
For lngF = 1 To .FoundFiles.Count
Application.StatusBar = .FoundFiles.Count & " / " & lngF
If .FoundFiles(lngF)  ThisWorkbook.FullName Then
strM = .FoundFiles(lngF)
Set wbk = Workbooks.Open(strM, False, True)
lngC = 0
If wbk.VBProject.Protection Then
lngR = lngR + 1
wksE.Cells(lngR, 1) = lngF
wksE.Cells(lngR, 2) = 0
wksE.Cells(lngR, 3) = strM
wksE.Cells(lngR, 4).ClearContents
wksE.Cells(lngR, 5) = "#geschützt#"
Else
For Each objVBC In wbk.VBProject.VBComponents
With objVBC.CodeModule
For intZ = 1 To .CountOfLines
If .ProcOfLine(intZ, 0)  "" Then
If strMak  .ProcOfLine(intZ, 0) Then
strMak = .ProcOfLine(intZ, 0)
lngR = lngR + 1
lngC = lngC + 1
wksE.Cells(lngR, 1).Value = lngF
wksE.Cells(lngR, 2).Value = lngC
wksE.Cells(lngR, 3).Value = strM
wksE.Cells(lngR, 4).Value = strMak
End If
End If
Next
End With
Next objVBC
End If
wbk.Close SaveChanges:=False
End If
If bolShow Then
Application.Goto Cells(Application.Max(1, lngR - 30), 1), True
Application.ScreenUpdating = True
Application.ScreenUpdating = False
End If
Next lngF
End With
.ScreenUpdating = True
.EnableEvents = True
.StatusBar = False
End With
End Sub

Die Files werden hier nicht in Spalten nebeneinander, sondern in Zeilen aufgelistet.
Hier eine Mappe zum Spielen: https://www.herber.de/bbs/user/56661.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
Evtl. VBA-Projekt geschützt ?
10.11.2008 19:42:00
NoNet
Hallo Dietrich,
Evtl. versucht das Makro gerade eine Datei mit geschütztem VBA-Projekt oder sogar eine defekte Datei oder eine Datei mit Lesekennwort zu öffnen ?
Welchen Wert gibt denn ? objWorkbook.Name (im Direktfenster eingeben !) aus ?
Überprüfe diese Datei dann mal manuell....
Gruß, NoNet
Sorry, war die letzten Tage krank...
13.11.2008 17:55:54
Dietrich
Hallo Tele5,
Hallo Nepomuk,
Hallo Erich G.,
und Hallo NoNet,
sorry dass ich erst jetzt antworte aber so'n fieser Virus hatte mich die letzten Tage ganz gut im Griff...
Vielen Dank nocheinmal für Eure vielen Tips.
Die Hinweise mit gesperrten Dateien/VBA-Codes - das kann wirklich gut sein. Leider sagt der bisherige Code nicht, an welcher Stelle bzw. bei welcher Datei er aussteigt. Dass muss ich ein bisschen rumprobieren.
Erich G.: Dein Skript werde ich heute abend gleich probieren. Vielleicht ist das schon die Lösung !
Vielen Dank nochmal an alle. Der Lister so wie er ist, ist schon eine große Hilfe.
Anzeige
Das wars: Geschützte VBA-Skripte
13.11.2008 18:04:00
Dietrich
Hallo zusammen,
eure Vermutungen stimmten. Das Skript ist bei den geschützten hängengeblieben. Das angepaßte Skript von Erich G. hat das abgefangen und als #geschützt# ausgewiesen.
Vielen Dank nochmal an alle. Das ist ein Superskript und hilft mir unheimlich den Überblick zu behalten!!!
Dietrich

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige