Nummerisch Zahl aufsteigend einfügen

josef24

Erfahrenes Mitglied
Hallo und einen schönen Sonntag wünsche ich allen. Natürlich auch noch ein glückseliges und vor allen Dingen gesundes neues Jahr.

Ich bin mal wieder auf der Suche nach einer funktionierenden VBA Code Lösung. Ich möchte Call Command eine Funktion einfügen.
Habe dafür versucht einen Code zusammen zu schrieben, der aber nicht funktioniert. Also das nummerische Auflisten führt er nicht aus.
Könnte mir vielleicht hier jemand weiter helfen? Danke und Gruß Josef

Visual Basic:
Private Sub CommandButton3_Click()
  Dim i As Long, lastrow As Long ' String ' Range
 
  With Worksheets("ArbTab")
 
    Application.EnableEvents = False
 
        For i = 2 To lastrow
        lastrow = .Range("A" & i) = i - 1
       
        Next
 
            Application.EnableEvents = True
 
        Call UserForm_Initialize
   
    End With

End Sub
 
Zuletzt bearbeitet von einem Moderator:

Yaslaw

alter Rempler
Moderator
Auch dir ein gutes Neues.

Was soll der Code machen?

Du veränderst in jedem Durchgang die BEdinung für die Schleife. Mach das nicht.
Wenn du den Wert einer Zelle ansprechen wilst, dann solltest ud das auch tun
Visual Basic:
lastrow = (.Range("A" & i).VALUE = i - 1)
Im Titem schreibst du, dass du eine Zahl einfügen willst. Das machst du aber nicht. Du vergleichst nur Zahlen. Ich denke, das was du willst ist folgenden
Visual Basic:
'Das fehlt
        lastrow = 10   'Letzte Zeile definieren
        For i = 2 To lastrow
             'Zeilennummer -1 in die Zelle schreiben
             .Range("A" & i).VALUE = i - 1
        Next
 
Zuletzt bearbeitet:

josef24

Erfahrenes Mitglied
Danke erstmal, habe hier das Problem, das noch eine USERFORM beteiligt ist. Es war mir nicht bewusst, das hier noch ein weiteres Problem auf mich zukommen würden. Gruß Josef
(Das .Range("PosNr") war nur ein versuch. )

Screenshot 2022-01-02 132059.png
 

Yaslaw

alter Rempler
Moderator
1) Was soll der Code wirklich machen
2) Ich habe den Code nicht angeschaut. Unlesbar unformatiert
3) Die fehlemreldung besagt, dass colAtPosNr nirgends definiert ist
4) Was soll der Code machen
5) formatieren den Code
 

josef24

Erfahrenes Mitglied
Danke, den Code vollumfänglich hier zu erläutern würde zu weit führen. (Ich habe den Code nicht angeschaut. Unlesbar unformatiert) Gruß Josef
 

Yaslaw

alter Rempler
Moderator
Gut, wenn ich nicht weiss, was der Code (oder mindestens dieser Codeabschnitt) machen soll, kann ich dir nicht sagen was falsch läuft. Kann ich den Thread schliessen?
 
Zuletzt bearbeitet:

josef24

Erfahrenes Mitglied
Hallo, der Code soll beim Schließen der Eingabemaske in Spalte A die lfd. Nummerierung aktualisieren.
Hintergrund ist: Wenn Zeilen gelöscht werden, stimmt die lfd. Nummerierung ja nicht mehr. Gruß Josef
 

josef24

Erfahrenes Mitglied
Danke, komme so nicht zurecht, will aber meine Vorstellung nochmal darstellen.
Die Eingabe beenden soll auch das "sortieren, nummerieren" zum Inhalt haben / ausführen.

Die CommandButton einzeln ausführen funktioniert, wollte sie halt in einem Click ausführen lassen.
Gruß Josef

Beim schließen: (Beenden- Code)

Visual Basic:
Private Sub CommandButton4_Click() ' Eingabemaske schließen
Dim intTabelle As Integer, arbtab As Integer ' und gleichzeitig alle Tabellenblätter ausblenden
Dim colatposnr As Range

    For intTabelle = 1 To ActiveWorkbook.Worksheets.Count
    If ActiveWorkbook.Worksheets(intTabelle).Name <> "Auswahl Klick" Then
    ActiveWorkbook.Worksheets(intTabelle).Visible = False
  
End If

Next intTabelle

Call Tabelle8.CommandButton5_Click ' <-- hier der Aufruf

' Call arbtab.CommandButton3_Click

Unload Me  ' Call Sichern
End Sub

Soll folgendes mit eingebunden sein: (sortieren u. nummerieren Code)

Visual Basic:
Private Sub CommandButton5_Click() ' Tabelle Arb sortieren
Dim LastRow As Long ' Tabelle ArbDat sortieren
Dim i
With Worksheets("ArbTab")

  Worksheets("ArbTab").Unprotect  ' HIERMIT WIRD DIE TABELLE "ARBDAT" FÜR DEN ZUGRIFF GEÖFFNET
 
    LastRow = .Range("A65536").End(xlUp).Row
    .Range("A2:z" & LastRow).Sort Key1:=.Range("D2"), Key3:=.Range("E2"), Key3:=.Range("H2")
 
 
   Application.EnableEvents = False
 
    For i = 2 To LastRow
        .Range("A" & i) = i - 1
    Next
 
    Application.EnableEvents = True
 
Call UserForm_Initialize
    End With

End Sub
 
Zuletzt bearbeitet von einem Moderator:

Yaslaw

alter Rempler
Moderator
Sieht gut aus. Was und wo ist das aktuelle Problem? Das mit der Fehlenden Konstate ist da ja nicht mit drin.