Wie RPP63 meint, wäre es vielleicht besser, zu verstehen wie diese Werte codiert sind.
Wie dem auch sei, man braucht nicht wirklich VBA dafür, man kann das Hochzählen mit Formeln lösen.
Hier mal die Formeln mit VBA erstellt:
Option Explicit
Sub Test()
Dim rng As Excel.Range
'Datenbereich referenzieren
With Worksheets("Tabelle1")
'Datenbereich wird anhand Spalte A ermittelt (A1 -> ab Spalte A, Zeile 1)
'(von unten nach oben "End(xlUp)": erste gefundene Zelle mit Inhalt -> letzte Zelle in dieser Spalte)
Set rng = .Range("A1", .Cells(.Rows.Count, "A").End(xlUp))
End With
If rng.Rows.Count > 1 Then
'Hilfsspalte: referenzierten Bereich zwei Spalten nach rechts versetzt, Formel schreiben
rng.Offset(, 2).FormulaR1C1 = "=NUMBERVALUE(LEFT(RC2,FIND(""."",RC2)-1))"
'referenzierten Bereich drei Spalten nach rechts versetzt, Formel schreiben
' * beginnend in der zweiten Zeile im Datenbereich (sonst liefert Formel einen Fehler)
With rng.Offset(1, 3).Resize(rng.Rows.Count - 1)
.FormulaR1C1 = "=R[-1]C+IF(RC[-1]<>R[-1]C[-1],1,0)"
' .Value = .Value 'Formel -> Wert
End With
' 'Hilfsspalte löschen
' rng.Offset(, 2).Delete xlShiftToLeft
Else
Call MsgBox("Keine Daten vorhanden.", vbExclamation)
End If
End Sub
|