tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1697
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Audrey Audrey ist offline Mitglied
    Registriert seit
    Nov 2007
    Ort
    Nordenham
    Beiträge
    17
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    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...
     

  2. #2
    diseli diseli ist offline Grünschnabel
    Registriert seit
    Feb 2008
    Beiträge
    2
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    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
    Angehängte Dateien Angehängte Dateien
     

Ähnliche Themen

  1. Pixel zählen mit Visual Basic
    Von dumme nuss im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 19.04.08, 21:35
  2. visual-basic .net mit excel 2003
    Von Oolee_74 im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 25.04.07, 08:17
  3. Excel/Visual Basic Frage!
    Von kingmat5 im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 01.09.05, 15:30
  4. Visual Basic mit Excel verknüpfen
    Von redriver im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 07.10.04, 17:52
  5. Excel & Visual Basic
    Von schiefju im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 23.09.03, 13:42