Anzeige
Archiv - Navigation
1476to1480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Untersch. Tabellen vergleichen/aktualisieren

Untersch. Tabellen vergleichen/aktualisieren
18.02.2016 11:44:30
Fredi
Hallo liebes Forum,
für mein Studium müsste ich zwei Tabellen auswerten und vergleichen.
Das Auswerten ist erledigt.
Für das Vergleichen benötige ich jedoch noch Hilfe :/
Ich habe zwei unterschiedliche Tabellen. Die Tabellen besitzen jedoch eine Id-Nummer in Spalte Q die bei beiden gleich ist.
Bei beiden Tabellen gibt es nun in Spalte D eine "Status" (erledigt, neu, usw.)
Tabelle´1 ist älter und nicht aktuell. Tabelle 2 ist neu und aktuell.
Mit der ID-Nummer soll nun Tabelle 1 mit Tabelle 2 verglichen werden und den Status, falls er sich verändert ha, in der Tabelle 1 aktualisiert werden.
Ich hoffe es ist verständlich :( Die Datensätze sind gigantisch :/ Manuell würde ich hier Tage vergleichen und aktualisieren... Gibt es eine einfache und schnelle Möglichkeit?
Vielen Dank!!!
Grüßle
Fredi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Untersch. Tabellen vergleichen/aktualisieren
18.02.2016 11:50:15
Oberschlumpf
Hi Fredi
zwei Bsp-Dateien (alt/neu) per Upload mit jeweils n paar Bsp-Datenzeilen könnten hilfreich sein.
Ciao
Thorsten

AW: Untersch. Tabellen vergleichen/aktualisieren
19.02.2016 00:34:52
Piet
Hallo Fredi
grundsaetzlich geht es mit diesem Makro im normalen Modulblatt
Die laenge der Daten ist völlig unwichtig, bis > 1.000.000 Zeilen.
Geaendert werden müssen die Tabellen Namen in der Set Anweisung.
Bei mir Blatt 1+2. Und evtl. die 1. IQ Zeile, bei mir Zeile "Q2"
Dieses simpel Programm vergleicht nicht, es prüft nur ob ein der Wert vorhanden ist
(ob keine leere Zelle vorliegt) und kopiert alles von Tabelle2 "D" in Tabelle1 "D"
Sollten auch die in Tabelle2 bereits gelöschte Zeilen nach Tabelle1 kopiert werden
einfach die IF Then Zeile löschen!
Dann wird alles 1:1 kopiert. Bei Daten > 1000 kann es aber dauern.
Den selektierten Bereich kann man über Range("Q2:Q" & lc).Select prüfen.
Einfach das ' Zeichen entfernen
Zum Testen stoppt das Programm bei 100. siehe: If IQ.Row > 100 Then Exit Sub
Wenn es laeuft wie gewünscht diese Zeile einfach komplett löschen.
mfg Piet
Option Explicit
Dim Tab1 As Object, Tab2 As Object
Dim IQNr, Status, IQ, lc
Sub Vergleichen()
'eigene Tabellen Namen einsetzen
Set Tab1 = Worksheets("Blatt1")
Set Tab2 = Worksheets("Blatt2")
lc = Cells.Rows.Count  'LastCell suchen
lc = Tab2.Range("Q" & lc).End(xlUp).Row
'** nur zum testen
' Range("Q2:Q" & lc).Select:  Exit Sub
For Each IQ In Tab2.Range("Q2:Q" & lc)
Application.StatusBar = IQ.Row
'Wenn Status  "" dann kopieren
If Tab2.Cells(IQ.Row, "D")  "" Then _
Tab1.Cells(IQ.Row, "D") = Tab2.Cells(IQ.Row, "D")
'**  zum Testen bei 100 abbrechen
'    diese Zeile nach Test löschen !!
If IQ.Row > 100 Then Exit Sub
Next IQ
Application.StatusBar = Empty
End Sub

Anzeige
AW: Untersch. Tabellen vergleichen/aktualisieren
23.02.2016 14:17:18
Fredi
Hallo liebe Helfer :)
anbei mal eine Hilfs-Datei.
https://www.herber.de/bbs/user/103809.xlsx
Die Lösung von dir Piet funktioniert hier nur teilweise.
Weiß leider nicht genau wo ich den Fehler gesetzt habe.
Vielen Dank schonmal :)

AW: Untersch. Tabellen vergleichen/aktualisieren
23.02.2016 17:17:33
Piet
Hallo Fredi
ich würde gerne weiter machen, muss aber erst verstehen worum es genau geht?
Heisst aktualisieren das nur in -Spalte H- der Status geaendert werden muss, oder
sollen auch die aktuellen Werte von Spalte A bis J übertragen werden?
Wo soll die aktualisierung stattfinden? Soll die alte Tabelle mit den Daten der
neuen Tabelle aktualisiert werden, oder umgekehrt? Da frage ich lieber nach.
mfg Piet

Anzeige
AW: Untersch. Tabellen vergleichen/aktualisieren
24.02.2016 09:53:47
Fredi
Hallo Piet,
vielen Dank für deine Hilfe!:)
Die "alte" Tabelle sollte aktualisiert werden. Heißt nur der Status. Die neue Tabelle wird von einem Programm kopiert und hier ist nur die ID-Nummer gleich. Diese ID-Nummer sollte verglichen werden und den Status von der neuen Tabelle in die alte kopiert werden. Die Tabellen sind nicht 1:1 gleich - heißt es könnten ID-Nummer vorkommen die in meiner Tabelle nicht vorhanden sind - diese können aber ignoriert werden.
Jede ID-Nummer wird von mir noch mit Bewertungen, Infos, Texten usw. ergänzt. Deshalb kann ich nicht einfach die neue Tabelle vom Programm verwenden.
Was daran eben das schlechte ist, ist eben der Reiter "Status" in der Tabelle. Dieser ist veraltet und sollte nun mit/und von der neuen Tabelle "aktualisiert" werden - also nur der Wert der Spalte Status soll kopiert werden.
Vielen Dank nochmals!
Grüßle Fredi

Anzeige
AW: nach dem lesen bitte schliessen ...
24.02.2016 22:51:14
Piet
Hallo Fredi
anbei das gewünschte Makro für dein Anliegen. Es kopiert nur den Status der neuen Tabelle in die alte Tabelle.
Auf Wunsch kann die Schriftfarbe geaendert werden. Man sieht dann welcher Status geaendert wurde
Der Befehl ist nicht aktiv! Löscht man das ' Semikolon vor dieser Zeile wird die Schriftfarbe geandert:
'rFind.Offset(0, 3).Font.ColorIndex = 5 '3
ich stelle den Thread noch einmal offen damit du ihn schneller finden kannst.
Nach dem lesen durch kurze Antwort bitte schliessen, indem das Haeckchen offen bleibt
'übernimmt den Status aus Tabelle Neu
Sub Status_aus_TabelleNeu_übernehmen()
Dim TNeu As Object, TAlt As Object, z
Dim rFind As Object, ID As Variant, NEdr
Set TNeu = ThisWorkbook.Worksheets("TabelleNeu")
Set TAlt = ThisWorkbook.Worksheets("TabelleAlt")
z = Cells.Rows.Count  'LastCell in Tabelle
NEdr = TNeu.Cells(z, "E").End(xlUp).Address
'Sucht identische ID Nr  (xlWhole)
For Each ID In TNeu.Range("E4", NEdr)
Set rFind = TAlt.Columns("E").Find(What:=ID, LookIn:=xlValues, LookAt:=xlWhole)
If Not rFind Is Nothing Then
rFind.Offset(0, 3) = ID.Offset(0, 3)
'auf Wunsch Schriftfarbe aendern  3=rot, 5=blau
'rFind.Offset(0, 3).Font.ColorIndex = 5 '3
End If
Next ID
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige