Mithilfe Visual Basic in Excel Zählen

Audrey

Grünschnabel
Hi Leute,

Ich hab in Excel eine Tabelle erstellt die ab und zu verändert wird. Dazu wollte ich versuchen dass das Wort "Version" und die entsprechende Nummer dazu in der Spalte B vor einer Speicherung heruntergezählt wird. Leider bekomme ich nicht ganz hin das zu erstellen.

Es sollte ungefähr so aussehen:
in B2 steht: Version 1.0
in B3 dann: Version 1.1
und so weiter...

Hier erstmal der Code wie er im Moment aussieht:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
VersionÄnderung = InputBox("Für den verständlicheren Umgang mit der aktuellen Version geben Sie bitte eine kurze Erklärung ihrer Änderungen ein!")
Version = "Version "
Versionnummer = 1.0
AktuelleVersion = Version & Versionnummer
Sprungmarke:
  If VersionÄnderung = "" Then
  MsgBox "Bitte Änderung eingeben!"
  VersionÄnderung = InputBox("Für den verständlicheren Umgang mit der aktuellen Version, geben Sie bitte eine kurze Erklärung ihrer Änderungen ein!")
  GoTo Sprungmarke
  Else
  MsgBox "Änderung erfolgt!"
  Versionnummer = Versionnummer + "0,1"
  Worksheets("Tabelle3").Range("B2") = AktuelleVersion
  Worksheets("Tabelle3").Range("C2") = Now()
  Worksheets("Tabelle3").Range("D2") = VersionÄnderung
  End If
End Sub

Hoffe ihr könnt mir etwas helfen da ich vorher nicht oft mit Visual Basic programmiert habe..

mfg

PS: Das Sprungelement ist nur zum Test drinne. Wird später durch eine While-Schleife ersetzt... :)
 
Hi Audrey,

versuch mal Folgendes.
Der Zähler bei "A1" kannst Du ja Weiss einfärben, dann sieht man ihn auch nicht mehr. ;o)

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim VersionÄnderung As Variant
    Dim Version As String
    Dim Versionnummer As Double
    Dim AktuelleVersion As String
    Dim LastPos As Integer
    Dim TextDummy As String
    
    VersionÄnderung = InputBox("Für den verständlicheren Umgang mit der aktuellen Version geben Sie bitte eine kurze Erklärung ihrer Änderungen ein!")
    Version = "Version "
    LastPos = CInt(Worksheets("Tabelle3").Range("A1").Value) 'Ermittle wo der letzte Eintrag war. CInt wandelt den allfälligen Text in ein Integer um.
    If LastPos = 0 Then LastPos = 1 'Falls LastPos noch Leer ist beim ersten Eintrag
    TextDummy = Worksheets("Tabelle3").Range("B" & 1 + LastPos).Value ' lese den letzten Versionstext ein
    If TextDummy = "" Then
        Versionnummer = 0.9
    Else
        TextDummy = Right(TextDummy, Len(TextDummy) - Len(Version)) 'Schneide von Links her alles weg was keine Zahl ist
        Versionnummer = CDbl(TextDummy) 'Wandle "1.1" in ein Double um.
    End If
    
Sprungmarke:
    If VersionÄnderung = "" Then
        MsgBox "Bitte Änderung eingeben!"
        VersionÄnderung = InputBox("Für den verständlicheren Umgang mit der aktuellen Version, geben Sie bitte eine kurze Erklärung ihrer Änderungen ein!")
        GoTo Sprungmarke
    Else
        MsgBox "Änderung erfolgt!"
        LastPos = LastPos + 1 'Erhöht die Position um 1
        Versionnummer = Versionnummer + 0.1 'Für Jeden Durchlauf wird 0.1 addiert (Var muss ein Double sein, sonst entsteht: 10,10,10,1)
        AktuelleVersion = Version & Format(Versionnummer, "0.0") 'Format mit "0.0" macht, dass nicht "Version 1" sondern "Version 1.0" steht
        Worksheets("Tabelle3").Range("B" & 1 + LastPos).Value = AktuelleVersion '"B" & 1+1 ergiebt "B" & 2 ergiebt "B2"
        Worksheets("Tabelle3").Range("C" & 1 + LastPos).Value = Now() 'Du könntest auch mit Cells(Zeile,Spalte) arbeiten
        'Worksheets("Tabelle3").Cells(1 + LastPos, 3) = Now() ' Das 1+LastPos ergiebt 2 und die 3 entspricht "C" -> "C2"
        Worksheets("Tabelle3").Range("D" & 1 + LastPos).Value = VersionÄnderung
        
        Worksheets("Tabelle3").Range("A1").Value = LastPos 'Speichern der letzten Position
    End If
End Sub

Gruss Diseli
 

Anhänge

Neue Beiträge

Zurück