Thema Datum  Von Nutzer Rating
Antwort
Rot 2 Dateien zwei Spalten werte suchen und wenn nicht vorhanden mit Werten füllen
18.11.2022 13:19:06 Bernd
Solved
18.11.2022 13:23:13 Gast11122
Solved
18.11.2022 14:19:55 Bernd
Solved
18.11.2022 16:13:07 Gast54888
Solved
18.11.2022 17:21:34 Gast53268
Solved
21.11.2022 08:45:49 Bernd
Solved
21.11.2022 12:38:19 Gast91815
Solved
21.11.2022 12:41:13 Bernd
Solved
21.11.2022 14:23:33 Bernd
Solved
21.11.2022 12:40:24 Bernd
Solved
21.11.2022 15:44:51 Bernd
Solved
22.11.2022 16:24:16 Bernd
Solved

Ansicht des Beitrags:
Von:
Bernd
Datum:
18.11.2022 13:19:06
Views:
1204
Rating: Antwort:
 Nein
Thema:
2 Dateien zwei Spalten werte suchen und wenn nicht vorhanden mit Werten füllen

Hallo liebe Leute.
Ich habe diese Frage bereits in ein anderes Forum gestellt, bin dort leider nicht weitergekommen. Deshalb stelle ich es hier nochmal ein. Danke

HI,

Ich bekomme es leider nicht hin.
Ich habe eine Datei (Tabelle) "Dokumentation" in der ich alle neuen Meldungen erfasse, die einem bestimmten Typ entsprechen.
Ich bekomme aus einem Programm einen Excelauszug "Datenexport (1)" (Name ändert sich) in dem nach dem Typ bereits gefiltert wurde.

Leider stehen in dieser Liste alte und neu Meldungen durcheinander.

In meiner Tabelle steht die Meldungsnummer in der Spalte "D", in der von dem Programm in Spalte "A".

Nun soll erst Festgestellt werden welche Meldungsnummern bereits in meiner Tabelle enthalten sind.

Ist sie nicht enthalten, dann füge die Nummer in meine Tabelle an letzter Stelle ein und Übertrage den Wert aus "Datenexport (1)" "AI" in die "Dokumentation" Spalte "G" letzte Zeile ein.

 

Im Zweiten Step soll wenn die Meldungsnummer gefunden wurde, vergleiche die Letzte Änderung aus der Spalte "Datenexport (1)" "CU" (Zeile von gefunden)

mit der "Dokumentation" "Y" .

Ist sie gleich mache mit der nächsten Zeile weiter.

Wenn ungleich, Füge das neue Datum in Dokumentation ein

und kopiere den Wert (String) aus "Datenexport (1)" "P" nach "Dokumentation" "X" ein.

 

Ich habe jetzt versucht aus alten Makros mir das neue anzupassen.

Leider bleibe ich schon im oberen Teil hängen.

Hier mein Beginn des Makros:

 

 

Dim QName As Workbook

Dim QSheet As Worksheet

Dim ZPath As String

Dim ZName As String

Dim ZSheet As String

 

 

'Set QPath = ActiveWorkbook.Path ' Ich öffne das Makro in der Datei "Datenexport (1)" dessen Namen sich ändert

Set QName = ActiveWorkbook 'Erstellt sich aus aktiver Quelldatei "Datenexport (1)"

Set QSheet = ActiveSheet 'Erstellt sich aus aktiven Quellsheet "Datenexport (1)"

ZPath = "D:\Users\YYY\XXXXXXXXX\Desktop\ADAM Rohdaten\MEM Makro\" ' Mein Pfad zur Zieldatei "Dokumentation"

ZName = "[Test_Makro20221020_Dokumentation_QuickWin_Test_Datenblatt.xlsm]" ' Mein Name der Zieldatei "Dokumentation"

ZSheet = "Dokumentation QuickWin Test" ' Das Zielsheet in der Datei "Dokumentation"

 

 

Dim rFinde1 As Range, rSuche1 As Range ' Variablendeklaration

Dim strFirst1 As String

Dim lngReihe1 As Long, lngLetzte1 As Long

Dim I1 As Integer

 

 

'Suchen nach der letzten Zeile in "Dokumentation"

With Sheets(ZPath & ZName & ZSheet) ------------Ab hier bleibe ich schon hängen, mit dem Fehler Laufzeitfehler '9' Index außerhalb des gültigen Bereichs----------

 

lngLetzte1 = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) ' letzte volle Zeile in Sheet "Dokumentation QuickWin Test" ermitteln, da stehen die Suchwerte in den Spalten von Spalte D

End With

 

 

Set rFinde1 = Sheets(QSheet).Range("A:A") ' in Spalte A Sheet "Meldung" Datei "Datenexport (1)", stehen die zu vergleichenden Werte

 

With Sheets(ZPath & ZName & ZSheet)

For I1 = 1 To lngLetzte1 ' Suchschleife, da ja mehr als nur ein Suchwert (Wird bei einem Exklusiven, nur einmal vorhandenen Wert wohl nicht so benötigt, aber wie muss er dann aussehen?)

Set rSuche1 = rFinde1.Find(What:=.Cells(I1, 2), LookAt:=xlWhole) ' .cells.. ist der jeweilige Suchwert

If rSuche1 Is Nothing Then ' wenn, was gefunden wurde

 

 

Ich denke wenn der Anfang funktioniert und die Oben genannten Abfragen (Vorhanden /Nicht vorhanden) mit den ersten Kopierfunktionen klappen, kann ich den Rest schon irgendwie einfügen.
Übrigens: Die Meldungsnummern können nur einmal vorhanden sein.

Evtl. Kann mir auch jemand eine "Einfache "Abfrage erstellen, die ich auch verstehen kann.


Oder mir die Abfrage (später) mit Kommentaren versehen, damit ich genau verstehe was dort in der Zeile passiert.
Dann kann ich auch beim nächsten mal die Abfragen besser verstehen und selbst anpassen.

Ich hoffe das das jetzt nicht zu viel verlangt ist und es nicht zu Frech klingt.
Ich finde es immer wieder toll, was ihr realisieren könnt, und möchte es auch verstehen.
Danke

Leider stehen in der Quelle die Daten von verschiedenen Zeiten (z.B.: ab 01.09.2022).
In meiner Auswertung stehen zum Teil die Daten drin, zum Teil auch nicht.

Deshalb kann ich zwar nach dem Datentyp innerhalb der Quelltabelle (ThisWorkbook.ActiveSheet) (Datenexport (1)) suchen und Filtern, aber was bereits in der Dokumentation steht leider nicht.

Da muss ich nachschauen was schon vorhanden ist und was nicht.

Wenn etwas vorhanden ist muss ich das ja auch nicht einfach ignorieren, sondern muss dann in der Spalte "Letzte Änderung" jeweils nachgeschaut werden ob sich etwas verändert hat.
Und zu guter Letzt passen die Spalten nicht in der Reihenfolge der beiden Tabellen zusammen.

 

leider habe ich deine Suchfunktion nur zum Teil verstanden, sodass ich sie leider nicht anpassen kann.

Ich werde aber versuchen sie zu verstehen.
Ich dachte es gibt eine einfache, für mich verständliche ganz einfache Suchfunktion für Anfänger.

Ich versuche einmal einen Ablauf zu erstellen.

Ich hoffe ich kann damit etwas besser den Ablauf erklären.

Ich hoffe das ich wenn das Gerüst steht, ich die anderen Kopierfunktionen einfügen kann.

Wenn das letzte i durchlaufen = end Sub

 

Vielen Dank

Bernd

 

Bild


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen