Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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
Inhaltsverzeichnis

Versionszähler funktioniert bei mir nicht

Versionszähler funktioniert bei mir nicht
21.03.2024 12:45:11
Daniel
Hallo Zusammen,

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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Versionszähler funktioniert bei mir nicht
21.03.2024 14:00:46
Zahlendreher
Hallo!

So zum Beispiel (hab ein wenig umgebaut):
Sub VersionierungSpeichern()

Dim letzteZeile As Long
Dim ws As Worksheet
Dim versionCell As Range
Dim currentVersion As Variant
Dim newVersion As Variant


'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 = Split(Replace(versionCell.Value, "Version ", ""), ".")

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 Variant) As String
Dim majorVersion As String
Dim minorVersion As String
Dim dotPosition As Long

' Prüfen, ob eine Version vorhanden ist
If UBound(version) = 0 Then
' Wenn keine Version vorhanden ist, starten Sie mit 0.1
IncrementVersion = "Version 0.1"
Exit Function
End If

' Inkrementieren der Minor-Version und Überprüfen auf Überlauf
If CLng(version(1)) = 99 Then
majorVersion = CStr(CLng(version(0)) + 1)
minorVersion = "00"
Else
majorVersion = CStr(CLng(version(0)))
minorVersion = Format(CLng(version(1)) + 1, "00")
End If

' Neue Version zurückgeben
IncrementVersion = "Version " & majorVersion & "." & minorVersion

End Function
Anzeige
AW: Versionszähler funktioniert bei mir nicht
21.03.2024 14:05:02
daniel
naja, es ist auch nicht sinn einer Versionszählung, von 0.99 auf 1.0 zu springen.
korrekterweise müsste nach 0.99 die Version 0.100 kommen
normalerweise macht man das so, dass ein hochzählen nach dem Punkt für kleiner Änderungen wie Fehlerkorrekturen steht, während ein Hochzählen vor dem Punkt dann für eine größere Änderung steht (neue Funktionen, neue Oberfläche usw)
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige