Collapse column

Autor Thema: Office 2010: Versionierung durch Makro- Formel wird falsch berechnet  (Gelesen 466 mal)

Offline Hendlman

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Office 2010: Versionierung durch Makro- Formel wird falsch berechnet
« am: März 11, 2017, 15:02:25 Nachmittag »
Hallo zusammen,

ich versuche im Moment eine Tabelle zu erstellen, die durch Anwendung eines Buttons, eine Versionierung von einzelnen Datensätzen ermöglicht.

Ich bin dabei schon relativ weit gekommen und habe (mangels VBA-Know-How) auch bereits ein Makro gefunden, dass diesen Zweck weitestgehend erfüllt.

Grundsätzlich wird dabei eine neue Zeile, unterhalb des Ausgewählten Datensatzes eingefügt und der Inhalt der darüberliegenden Zeile kopiert.

Weiterhin wird in einer separaten Spalte, der Public Name (der später zu veröffentlichende Dateiname) kopiert und mit einem entsprechendem Verisonskürzel am Ende versehen.

Das funktioniert dabei auch alles einwandfrei, außer wenn zwei direkt untereinander liegende Datensätze "versioniert" werden sollen. Dann wird nämlich die Formel die den neuen Versionsnamen generiert nicht korrekt ausgeführt.
Die liegt wohl am Kopiervorgang, der durch das Einfüge-Kopier-Makro nich korrekt ausgeführt wird.
In F6 sollte also der Name: "OneDrive - Verwendung des Sync Client V2" entstehen.

Hier die Formlen die ich hinterlegt habe.

Spalte F - Neue Version: (soll abgleichen, dass die Version auch zum richtigen Datensatz gehört und den Namen generieren)
F2:
=WENN(UND(E1="Change";D1=D2);D1&" "&"V"&H2;"")

Spalte G - Count Basis: Grundlegende Zählung der Version
G2:
=ZÄHLENWENN($A1:A$2;A2)+1

Spalte H - Version Count: Endgültige Versionszählung
H2:
=WENN(UND(D1=D2;R1=R2);G1+1;G1)


Hier das Makro:

Sub BlankLine()
    'Updateby20150203
    Dim Rng As Range
    Dim WorkRng As Range
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
    Set WorkRng = WorkRng.Columns(1)
    xLastRow = WorkRng.Rows.Count
    Application.ScreenUpdating = False
    For xRowIndex = xLastRow To 1 Step -1
        Set Rng = WorkRng.Range("A" & xRowIndex)
        If Rng.Value = "Change" Then
            Rng.Offset(1, 0).EntireRow.Insert Shift:=xlDown
            ActiveCell.EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Private Sub CommandButton1_Click()

End Sub


Der Trigger den ich für die Anlage einer neuen Verision erdacht habe, ist die Auswahl des Wertes "Change" und das anschließende Betätigen des Buttons mit dem VBA Code, um die Zeile zu kopieren und unterhalb einzufügen.

Ich habe das mal in der nachfolgenden Tabelle versucht darzustellen (Auch als Anhang anbei).

Ich wäre sehr dankbar, wenn mir hier jemand weiterhelfen könnte, ich finde leider selbst keine Lösung mehr...

Vielen Dank und viele Grüße!


Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.