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

VBA-Code wird nicht akzeptiert

VBA-Code wird nicht akzeptiert
05.04.2018 18:38:26
helmut
Hallo,
Ich habe mal wieder ein Problem:
Ein AddIn von mir ca.8 Jahre alt, listet eine beliebige Excel-Datei auf, sodass unter anderem eine komplette Liste aller darin erstellten Makros erzeugt wird.
Erstellt wurde das Addin unter Windows XP (32 bit) und Office 2010 oder älter.
Jetzt benutze ich Windows 7 mit 64 bit und Office 2013 und das Makro liefert nur leere Dateien.
Das Addin beginnt wie folgt:

Public Sub VBA_Hauptprogramm1()
On Error Resume Next
Sheets.Add.Name = "VBA" 'Erstellt Blatt und führt das Programm aus
'Falls Blatt bereits vorhanden, bewirkt Fehleroutine das Beenden
Application.ScreenUpdating = False
  ProcOfLine_test         'Tabelle mit Stuktur
VBA_Format              'Tabelle Formatieren
ProgErstellen           'VBA_Code erstellen
SpaltenNumerieren2      '1. Spalte nummerieren
VBA_Code_Formatieren    'VBA_Code formatieren
VBA_Bearbeiten          'Programm- und Modulliste erstellen
SprungAdressenEinfügen  'Fügt die Sprungadressen ein
LinkIntern "VBA_Codea"  'Fügt Hyperlinks auf VBA_Code ein
LinkIntern "VBA_Codeb"  'Fügt Hyperlinks auf VBA_Code ein
NamenEintragen          'Fügt Zuordnung zu Programm und Modul ein
Application.ScreenUpdating = True
Sheets("VBA_Code").Select
Abbruch:                                  'entfernt alle VBA-Blätter und Button
If Err.Number = 1004 Then
On Error Resume Next
Application.DisplayAlerts = False
ActiveSheet.Delete
Sheets("VBA").Delete
Sheets("VBA_Code").Delete
Sheets("VBA_Codea").Delete
Sheets("VBA_Codeb").Delete
Application.DisplayAlerts = True
'    VBA_Delete
Err.Clear
End If
End Sub

Public Sub ProcOfLine_test() '16.04.2004 '16-05-2004 '30.06.2007
'fragt das Modul ab, wie die Prozeduren heißen und listet alle auf
Dim i As Integer 'Nummer der ersten Textzeile der jeweiligen Procedure
Dim j As Integer 'Zeile
Dim k As Integer 'Spalte
Dim n As Long 'Zeilen-Nr des Codes
Dim dat As String
Dim vbCode
Dim pro
Dim Textzeile 'As String
Workbooks(1).Activate 'Dies ist das gestartete Programm
Set vbCode = ActiveWorkbook.VBProject.VBComponents 'analysiert das aktivierte Programm
Set pro = ActiveWorkbook.VBProject
Die Zeile Set vbCode = ActiveWorkbook.VBProject.VBComponents
BlattLöschenErstellen "VBA"
' Application.ScreenUpdating = False '27.09.2008
On Error GoTo ErrorHandler 'Fehlerbehandlung
For k = 1 To vbCode.Count 'zählt die Module
j = 3
With vbCode(k).CodeModule
For i = 1 To .CountOfLines 'Zeilenzahl im jeweiligen Modul
dat = .ProcOfLine(i, vbext_pk_Proc) 'zur Zeilnnr zugehöriger Prozedurname
If Cells(j - 1, 2 * k) dat Then 'Prozedurname wird nur einmal _
gespeichert
Cells(j, 2 * k - 1) = i 'erstellt Modultabelle
Cells(j, 2 * k) = dat 'erstellt Modultabelle
j = j + 1
End If
n = n + 1 'selektiert nächste Zeile in 'VBA- _
Code'
Next i
End With
Cells(2, 2 * k) = vbCode(k).Name 'Modulname
Cells(2, 2 * k - 1) = vbCode(k).CodeModule.CountOfLines 'Zeilennummer in der Proc.
Next k
Cells(1, 1) = ActiveSheet.Name 'Programmpfad
' VBA_Format
' Application.ScreenUpdating = True
' VBA_Bearbeiten ' startet Programablauf3
Exit Sub ' Vor Fehlerbehandlung beenden.
'--------------------------------------------------------------
ErrorHandler: ' Fehlerbehandlungsroutine.
Select Case Err.Number ' Fehlernummer auswerten.
Case 55 ' Fehler "Datei bereits geöffnet".
Close #1 ' Geöffnete Datei schließen.
Case Else
MsgBox Err.Description ' Andere Fälle hier bearbeiten...
' Exit Sub
End Select
Resume ' Ausführung in der Zeile fortsetzen, die den Fehler ausgelöst hat. _
_
'
End Sub

Die Zeile Set vbCode = ActiveWorkbook.VBProject.VBComponents bewirkt, dass sofort zum nächsten Makro gesprungen wird, d.h. keine der Anweisungenwurd ausgeführt.
Die gewünschten Dateien sind leer.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code wird nicht akzeptiert
05.04.2018 18:53:15
Nepumuk
Hallo Helmut,
kommentiere mal im Hauptprogramm diese Zeile aus:
On Error Resume Next
Damit solltest du eine Fehlermeldung bekommen.
Gruß
Nepumuk
AW: VBA-Code wird nicht akzeptiert
05.04.2018 19:20:37
snb

Sub M_snb()
For Each it In ThisWorkbook.VBProject.VBComponents
For j = 1 To it.CodeModule.countoflines
c01 = vbLf & it.Name & "." & it.CodeModule.procofline(j, 0) & vbLf
If InStr(c00, c01) = 0 Then c00 = c00 & Mid(c01, 2)
Next
Next
MsgBox c00
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige