Office-Fragen.de
2 Tabellen zusammenführen - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: 2 Tabellen zusammenführen (/thread-26694.html)

Seiten: 1 2


2 Tabellen zusammenführen - Strolchi1980 - 22.02.2022

Hallo Zusammen,

ich habe mal wieder ein Thema das etwas kniffliger ist und ich bin auch nicht sicher ob es machbar ist. Ich würde es gerne per VBA lösen.

Ich habe eine Tabelle Gesamt_mit_Forecast in dieser Tabelle stehen in Spalte A ID und ich möchte nun das eine Zeile unter die ID eingefügt wird, wenn die ID auch in der Liste Master_VNB vorhanden ist. und es soll der entsprechende Euro wert in den korrekten Monat eingetragen werden. ich habe diese jetzt mal Händisch mit ROT eingefügt, so hätte ich es eben gerne per VBA, vielleicht hat Jemand etwas ähnliches bereits gemacht und kann mir Anregungen geben?

Vielen Dank


https://www.ms-office-forum.net/forum/showthread.php?p=2063341#post2063341


RE: 2 Tabellen zusammenführen - steve1da - 22.02.2022

https://office-fragen.de/thread-13.html
Bitte nachholen.
Danke.
Gruß,
steve1da


RE: 2 Tabellen zusammenführen - Strolchi1980 - 22.02.2022

nachgeholt :-) Danke für den Hinweis in der Regel stelle ich nur in einem Forum ein, da es aber dringend ist :-)


RE: 2 Tabellen zusammenführen - AlterDresdner - 23.02.2022

Hallo,
da ich glaube, die Beiträge im anderen Office-Forum helfen Dir so richtig nicht weiter, hier ein Versuch, ob ich Deine Bitte richtig verstanden habe.
Die Konstanten am Anfang musst Du bei Änderung der Datenstruktur (die in der Tat überarbeitungswürdig ist, vermutlich aber nicht von Dir zu vertreten ist[Bild: wink.png]), ggfls. anpassen.
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) Then 'ID auch in Ziel
        ZZeile = erg.Row + 1
        If Ziel.Cells(ZZeile, 1) <> STID Then 'ggfls. Zeile einfügen
          Ziel.Rows(ZZeile).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
          Ziel.Cells(ZZeile, 1) = STID
        End If
        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



RE: 2 Tabellen zusammenführen - Strolchi1980 - 24.02.2022

Tausend Dank, in der Test Datei macht er schon einmal genau das was ich suche, was ich vergessen habe, es kann sein das die ID in der Liste Master_VNB auch mal leer sein kann, kann man diese einfach überspringen und mit der nächsten weiter machen?  und vielleicht noch wichtig, das in der Quelldatei keine Werte sondern Formeln stehen, kann dies Probleme machen?


RE: 2 Tabellen zusammenführen - AlterDresdner - 24.02.2022

Hallo,
die lere ID wird durch Ersatz der einen Zeile im Code abgefangen
If Not (erg Is Nothing) And STID <> "" Then 'ID auch in Ziel und nicht leer
Das andere (Formel) macht keine Probleme.
Gruß der ALteDresdner


RE: 2 Tabellen zusammenführen - Strolchi1980 - 24.02.2022

ok, kann es daran liegen das die ID´s in der Quelle Liste mehrfach vorkommen können?


RE: 2 Tabellen zusammenführen - AlterDresdner - 24.02.2022

Hallo,
dort werden dann die Werte>0 des letzten EIntrags hingeschrieben. Leere Spalten werden übergangen.


RE: 2 Tabellen zusammenführen - AlterDresdner - 24.02.2022

Mit anderen Worten: Es werden nacheinander die EInträge abgearbeitet. Ist in einem späteren EIntrag ein Wert >0 vorhandn, überschreibt er einen evtl. früher dort schon hingeschriebenen Wert. Wenn es da eine andere Mimik geben soll, müsstest Du sagen wie.


RE: 2 Tabellen zusammenführen - Strolchi1980 - 24.02.2022

Oh es wäre toll wenn jede Spalte mit ID und wert eingefügt wird, aber ich weiß nicht ob das machbar ist? wenn also eine ID 3 mal vorkommt, sollen 3 Spalten mit den entsprechenden Werten eingetragen werden, wenn nur einmal dann nur eine... :-D