Beiträge: 10
Themen: 2
Registriert seit: Feb 2022
Bewertung:
0
Office-Version:
Ich habs jetzt auch hin bekommen ihn in die Original Datei zu bekommen und bin überwältigt, wenn man es jetzt noch hin bekommt das alles ID übertragen und die Werte dazu eingetragen werden ist es exakt das was ich brauchte.... Tausend Tausend Dank
Beiträge: 38
Themen: 0
Registriert seit: May 2019
Bewertung:
1
Office-Version:
(24.02.2022, 13:30)Strolchi1980 schrieb: Ich habs jetzt auch hin bekommen ihn in die Original Datei zu bekommen und bin überwältigt, wenn man es jetzt noch hin bekommt das alles ID übertragen und die Werte dazu eingetragen werden ist es exakt das was ich brauchte.... Tausend Tausend Dank
Da müsstest Du mal genauer schreiben, was Du willst. Momentan passiert bei mehrfacher ID in der Quelle Folgendes:
Beim 1. Mal Zeile einfügen, Werte einsetzen. Beim 2. und den nächsten Malen werden nur die Werte eingesetzt.
Soll jeweils bei jedem Auftreten eine Zeile eingefügt werden?
Gruß der AlteDresdner (Win11, Off2021)
Beiträge: 10
Themen: 2
Registriert seit: Feb 2022
Bewertung:
0
Office-Version:
Ja genau für Jede ID soll die entsprechende Zeile mit dem entsprechenden Wert eingetragen werden.
Beiträge: 38
Themen: 0
Registriert seit: May 2019
Bewertung:
1
Office-Version:
Hallo,
dann würde es so aussehen:
Code:
Sub Ergaenzung()
Const QuellIDSpalte = 32 'Spalte STID in Quelle
Const FirstDat = 123 'erste Spalte mit Datum in Quelle
Dim Quelle As Object, Ziel As Object, erg As Variant
Dim QZeile As Long, QSpalte As Long, STID As String, ZZeile As Long, MyDiff As Long
Set Quelle = ThisWorkbook.Sheets("Master_VNB")
Set Ziel = ThisWorkbook.Sheets("Gesamt_mit_Forecast")
With Quelle
MyDiff = DateDiff("m", Ziel.Cells(1, 3), .Cells(1, FirstDat))
For QZeile = 2 To .Cells(Rows.Count, QuellIDSpalte).End(xlUp).Row
STID = .Cells(QZeile, QuellIDSpalte)
Set erg = Ziel.Range("A:A").Find(what:=STID, lookat:=xlWhole)
If Not (erg Is Nothing) And STID <> "" Then 'ID auch in Ziel und nicht leer
ZZeile = erg.Row + 1
Ziel.Rows(ZZeile).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'Zeile einfügen
Ziel.Cells(ZZeile, 1) = STID
QSpalte = FirstDat
Do
If Val(.Cells(QZeile, QSpalte)) > 0 Then 'wert vorhanden
Ziel.Cells(ZZeile, QSpalte - FirstDat + 3 + MyDiff) = Quelle.Cells(QZeile, QSpalte)
End If
QSpalte = QSpalte + 1
Loop Until IsEmpty(.Cells(1, QSpalte))
End If
Next QZeile
End With
End Sub
Gruß der AlteDresdner (Win11, Off2021)
Beiträge: 10
Themen: 2
Registriert seit: Feb 2022
Bewertung:
0
Office-Version:
Ich fasse es nicht genau das habe ich gebraucht wirklich Tausend Dank an dich!
Beiträge: 38
Themen: 0
Registriert seit: May 2019
Bewertung:
1
Office-Version:
Hallo, danke für Rückmeldung!
Gruß der AlteDresdner (Win11, Off2021)