Hallo #Value,
hab den Thread eben zum erst entdeckt. Schade dass hier niemand weitergemacht hat.
Wenn es wirklich ausreicht die Zeilen von E:AJ nur zu verschieben wenn in D Neu steht ist der dafür notwendige Code relativ simpel. Die Frage ist wie dieser am besten ausgelöst werden kann. Mit Datenverbindungen ist das so eine Sache. Ich glaub da gibt's verschiedene Arten. Probier mal ob nach der Aktualisierung das TableUpdate-Ereignis ausgeführt wird. Dann könnte der folgende Code in das Modul "DieseArbeitsmappe"
Private Sub Workbook_SheetTableUpdate(ByVal Sh As Object, ByVal Target As TableObject)
'sheetnummer 'letzte Zeile 'Zeile
Dim shn As Long, lz As Long, z As Long
For shn = 1 To 12
With Sheets(shn)
lz = .Cells(Rows.Count, 2).End(xlUp).Row
For z = 2 To lz
If .Cells(z, "D") = "Neu" Then
.Range(.Cells(z, "E"), .Cells(z, "AJ")).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Cells(z, "D") = "Aktiv"
End If
Next z
End With
Next shn
MsgBox "Projektdaten wurden aktualisiert"
End Sub
Wenn du keine Msgbox am nach dem Update siehst, ist das leider das falsche Ereignis. Ein anderes gibt's aber leider nicht. Dann musst du den Code in eine normale Sub kopieren und manuell ausführen.
PS: Wenn ich dich richtig verstehe kommt die Info ob ein Projekt Neu ist auch aus den Quelldaten. Ist es überhaupt möglich diese Info in Excel zu überschreiben? Wird sie dann auch in die Quelldaten zurückgeschrieben? Und was machst du, wenn du in den Quelldaten ein Projekt Aktiv setzt, bevor Excel geupdatet wurde? Dann fällt die Info Neu als Bedingung für den Zeilenversatz weg.
Ich würde deshalb, sofern möglich, auf manuelles Update umschalten. Das könntest du über einen Button auslösen. Zuerst müsste der Code sich dann merken welche Projektnummer in welcher Zeile vor dem Update steht dann das Update machen und danach Nr. für Nr. mit den gemerkten Zeilen-Daten vergleichen. Entsprechend würden die Zeilen in E:AJ dann verschoben. Wenn du also mit dem Makrorekorder die Codezeile für das Update ermittelst und hier postest, kann ich dir gern den Rest drumrum schreiben. Sag Bescheid, falls du Interesse hast.
Gruß Mr. K.
|