Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
656to660
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
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

add-in zur Zeilennummerierung in VBA

add-in zur Zeilennummerierung in VBA
26.08.2005 09:49:49
Stefan
Hallo Excelfreunde,
kennt jemand ein add-in, welches die Zeilen meines Excel-Codes pozedurweise automatisch nummerieren kann?
Danke für Eure Hilfe
Stefan.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: add-in zur Zeilennummerierung in VBA
26.08.2005 10:00:33
Nepumuk
Hi,
nein, ist aber auch nicht besonders schwer so was selbst zu schreiben. Aber wozu eigentlich?
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: add-in zur Zeilennummerierung in VBA
26.08.2005 10:38:52
Stefan
Hi,
für diesen Code (habe ich irgendwo aus dem Forum):

Sub Test()
Dim x As Long, y As Long
10 On Error GoTo Fehler
20 x = 20
30 y = 99 - 99
40 x = x / y
50 MsgBox "Zahl: " & x
Ende:
60 Exit Sub
Fehler:
70 MsgBox "Es trat der Fehler... '" & Err.Description & "' auf.", _
vbCritical, "Fehler in Zeile " & Erl
80 Resume Ende
End Sub

Weiterhin wollte ich prozedurweit eine Konstante mit dem jeweiligen Prozedurnamen erstellen und modulweit eine Konstante mit dem Modulnamen.
Dann soll zentral im Projekt eine Fehlerbehandlung erfolgen.
(natürlich nicht eine blabla-Meldung, sondern schon sehr differenziert).
Ich möchte den genauen Ausstiegspunkt wissen (Modul,Prozedur,Zeile) und daran geknüpft die Fehlerbehandlung starten.
Gruß
Stefan.
Anzeige
AW: add-in zur Zeilennummerierung in VBA
26.08.2005 10:44:39
Nepumuk
Hi Stefan,
an die Zeilennummer kommst du nicht ran. Die müsstest du, wie den Modulnamen und den Prozedurnamen in einer öffentlichen Variablen mitführen. Sprich in jeder Zeile deiner Makros neu setzen. Kein vergnügliches Unterfangen, vor jede Codezeile eine Zeile einzufügen, in welcher du eine Variable hoch zählst.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: add-in zur Zeilennummerierung in VBA
26.08.2005 11:02:29
Nepumuk
Hi Stefan,
die kannte ich noch nicht. Danke für den Link. Dafür schreib ich dir ein Makro zum nummerieren der Zeilen. Kann aber Nachmittag werden.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: add-in zur Zeilennummerierung in VBA
26.08.2005 11:06:16
Stefan
Hi Nepumuk,
Ich Danke DIR.
Gruß
Stefan.
AW: add-in zur Zeilennummerierung in VBA
26.08.2005 11:34:39
u_
Hallo,
das habe ich mal irgendwo gefunden:

Sub MakroNummerieren()
Dim vbc As Object
Dim iRow As Integer, iCol As Integer, iCounter As Integer, iNumber As Integer
Dim bol

Sub As Boolean
Dim strNumber As String
bol

Sub = False
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
bol

Sub = True
iNumber = 10
strNumber = Format(iNumber, "000000") & ":"
GoTo next_iCounter
End If
If .Lines(iCounter, 1) = "End Sub
" Then
bol

Sub = False
GoTo next_iCounter
End If
If bol

Sub = True Then
If Right(.Lines(iCounter - 1, 1), 1) <> "_" Then
.replaceline iCounter, strNumber & .Lines(iCounter, 1)
iNumber = iNumber + 10
strNumber = Format(iNumber, "000000") & ":"
End If
End If
End If
next_iCounter:
Next iCounter
End With
Next vbc
End Sub

Gruß
Geist ist geil!
Anzeige
AW: add-in zur Zeilennummerierung in VBA
Stefan
Danke.
Eigentlich nicht schlecht.
Klappt aber in der Form nur beim ersten mal. (Neunummerierung müsste erst die alten Nummern entfernen).
Ich werde mich mal bemühen, das hinzubekommen.
Kommentar- und Leerzeilen auslassen wäre auch noch schön.
Lange Nacht.
Stefan.

Hallo Sefan,
ist doch garnicht so schwer:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

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

Gruß
Nepumuk
Excel & VBA – Beispiele

cool.
Schwer nicht, aber ich hätte trotzdem Stunden gebraucht.
Außerdem habe ich ab Verschachtelungstiefe 10 so meine Probleme. Und die nicht nur beim Sprechen.
Gruß, Dank und schönes Wochenende.
Stefan Krähe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige