Code für Zeilennummerierung von Nepumuk
29.04.2017 10:37:46
Nepumuk
da mich dieses Thema reizt und ich vor Jahren mal ein AddIn für die Zeilennummerierung von Fredi Jansen bekam,hab ich mal gesucht und folgenden Code von Nepumuk unter https://www.herber.de/forum/archiv/656to660/658350_addin_zur_Zeilennummerierung_in_VBA.html
gefunden:
' Modul: Modul1 Typ: Allgemeines Modul
Public Sub Zeilennummerierung()
Dim intModulCount As Integer, intLine As Integer
Dim intColumn As Integer, intLineCounter As Integer
Dim strModulname As String
Dim bolUnderscore As Boolean, bolSelect As Boolean
With ActiveWorkbook.VBProject
For intModulCount = 1 To .VBComponents.Count
With .VBComponents(intModulCount).CodeModule
For intLine = .CountOfDeclarationLines + 1 To .CountOfLines
If Trim$(.Lines(intLine, 1)) "" And _
Left$(Trim$(.Lines(intLine, 1)), 1) "'" Then
If .ProcOfLine(intLine, 0) strModulname Then
strModulname = .ProcOfLine(intLine, 4)
intLineCounter = 0
If Left$(Trim$(StrReverse(.Lines(intLine, 1))), 1) = "_" _
Then bolUnderscore = True Else bolUnderscore = False
Else
If InStr(1, "End Sub End Function End Property", _
.Lines(intLine, 1)) = 0 Then
If Not bolUnderscore And Not bolSelect Then
If Left$(Trim$(StrReverse(.Lines(intLine, 1))), 1) = "_" _
Then _
bolUnderscore = True
If InStr(1, .Lines(intLine, 1), "Select Case") 0 Then _
bolSelect = True
If IsNumeric(Left$(.Lines(intLine, 1), 1)) Then
For intColumn = 1 To Len(.Lines(intLine, 1))
If Not IsNumeric(Left$(.Lines(intLine, 1), _
intColumn)) Then
Exit For
End If
Next
.ReplaceLine intLine, String(intColumn - 1, " ") & _
Mid$(.Lines(intLine, 1), intColumn)
End If
intLineCounter = intLineCounter + 1
If Trim$(Left$(.Lines(intLine, 1), _
Len(Trim(intLineCounter)) + 2)) = "" Then
.ReplaceLine intLine, Mid$(.Lines(intLine, 1), _
Len(Trim(intLineCounter)) + 2)
Else
.ReplaceLine intLine, Trim$(.Lines(intLine, 1))
End If
.ReplaceLine intLine, Trim$(CStr(intLineCounter)) & " " _
& .Lines(intLine, 1)
Else
If Left$(Trim$(StrReverse(.Lines(intLine, 1))), 1) "_" _
Then bolUnderscore = False
If InStr(1, .Lines(intLine, 1), "Case") 0 Then _
bolSelect = False
End If
Else
strModulname = ""
End If
End If
End If
Next
End With
Next
End With
End Sub
Wo und wie wird dieser Code nun eingebunden? In einem normalen Modul bekomme ich eine Fehlermeldung:Laufzeitfehler '1004':
Die Methode 'VBProject' für das Objekt'_Workbook' ist fehlgeschlagen.
Nach einem Klick auf Debuggen ist "With ActiveWorkbook.VBProject" gelb markiert.
Lg Frank