Versionszähler funktioniert bei mir nicht
21.03.2024 12:45:11
Daniel
ich wollte einen Versionszähler machen.
Dieser Sollte bei 0.1 anfangen und dann 0.11, 0.12 etc hochzählt und ab 0.99 in 1.0 springt. Bei 0.99 hängt er sich dann auf mit einem Laufzeitfehler.
Dies habe ich so gemacht:
Beispieldatei ist angehängt :)
Sub VersionierungSpeichern()
Dim letzteZeile As Long
Dim ws As Worksheet
Dim versionCell As Range
Dim currentVersion As String
Dim newVersion As String
'Arbeitsblatt festlegen
Set ws = ThisWorkbook.Sheets("Versionierung") 'Ersetzen Sie "IhrArbeitsblattname" durch den tatsächlichen Namen Ihres Arbeitsblatts
'Bestimmen der letzten Zeile mit Inhalten in Spalte A
letzteZeile = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'Zelle für die Versionsnummer festlegen
Set versionCell = ws.Range("A1") 'Ersetzen Sie "A1" durch die tatsächliche Zelle, in der sich Ihre Versionsnummer befindet
'Aktuelle Version lesen und inkrementieren
currentVersion = versionCell.Value
newVersion = IncrementVersion(currentVersion)
'Schreiben der Versionierungsinformationen in die nächste leere Zeile
ws.Cells(letzteZeile + 1, 1).Value = Environ("Username") 'Benutzername
ws.Cells(letzteZeile + 1, 2).Value = Date 'Datum
ws.Cells(letzteZeile + 1, 3).Value = newVersion 'Neue Version
'Aktualisierte Version in Zelle schreiben
versionCell.Value = newVersion
End Sub
Function IncrementVersion(ByVal version As String) As String
Dim majorVersion As String
Dim minorVersion As String
Dim dotPosition As Long
' Prüfen, ob eine Version vorhanden ist
If InStr(version, ".") = 0 Then
' Wenn keine Version vorhanden ist, starten Sie mit 0.1
IncrementVersion = "Version 0.1"
Exit Function
End If
' Position des Punkts finden
dotPosition = InStr(version, ".")
' Major- und Minor-Versionen extrahieren
majorVersion = Left(version, dotPosition - 1)
minorVersion = Mid(version, dotPosition + 1)
' Inkrementieren der Minor-Version und Überprüfen auf Überlauf
If CLng(minorVersion) = 99 Then
majorVersion = CStr(CLng(majorVersion) + 1)
minorVersion = "00"
Else
minorVersion = Format(CLng(minorVersion) + 1, "00")
End If
' Neue Version zurückgeben
If Left(version, 7) = "Version" Then
IncrementVersion = "Version " & majorVersion & "." & minorVersion
Else
IncrementVersion = version
End If
End Function
Beispieldatei: https://www.herber.de/bbs/user/168216.xlsm
Leider setzt er mir jetzt immer ein Version davor also Version Version Version 0.03 etc. Und mein zweites Problem er fängt mit 0.1 an aber springt dann zurück auf 0.02 bei zweiten mal klicken der schaltfläche.
Zudem Wollte ich noch einen zweite Schaltfläche welche "Große" Änderungen nimmt und hier immer auf 1.0 oder 2.0 springt also ganze zahl und .0 hinten. sowie einen automatischen PDF druck mach mit "Microsoft Print to PDF"
hat da jemand eine idee oder eine lösung? :D