Herbers Excel-Forum - das Archiv

Tabellen vergleichen - 2.Tabelle aktualisieren

Bild

Betrifft: Tabellen vergleichen - 2.Tabelle aktualisieren
von: BerndSchweiger

Geschrieben am: 09.03.2005 13:21:07
Hallo,
folgendes Problem:
Ich möchte 2 Tabellen in Excel miteinander vergleichen (Tabelle1 und Tabelle2) und die Tabelle2 entsprechend aktualisieren.
Es sind jeweils 7 Spalten (A-G) vorhanden, wobei die erste Zeile die Überschriften beinhaltet, danach kommt der Dateninhalt (von Spalte D-G nicht zwingend ein Inhalt vorhanden)
Tabelle1 wird täglich neu erzeugt und danach sollte dadurch Tabelle2 demzufolge geändert werden:
- Neue Datensätze aus Tabelle1 sollen bei Tabelle 2 nach der letzten Zeile mit Inhalt angefügt werden
- Datensätze, welche nicht mehr in Tabelle1 erscheinen, dürfen jedoch nicht aus Tabelle2 gelöscht werden.
- schon vorhandene Datensätze sollen nicht in Tabelle 2 überschrieben bzw. aktualisiert werden (komplette Zeileninhalte von Spalte A-G müssen verglichen werden)
Kann mir hierbei jemand helfen, einen entsprechen VBA-Code zu erstellen.
Alle meinerseits gefunden Codes legen eine 3 Tabelle an oder überschreiben die bestehenden Zeilen! Komme also alleine nicht mehr weiter – bin auf Eure Hilfe angewiesen.
1. Hier ist z. B. ein Teil, der die Daten aktualisiert oder in eine neue Zeile schreibt:
'Ausgabe der Daten

For i = 1 To AnzahlAufträge
'Ist der Datensatz schon vorhanden?
Cells(1, 1).Select
Selection.CurrentRegion.Select
BereichZeilen = Selection.Rows.Count
For Each zelle In ActiveSheet.Cells.Range("A:A")
If CStr(zelle.Value) = "" Then Exit For
If CStr(zelle.Value) = CStr(daten(i, 1)) Then
'vorhandenen Eintrag aktualisieren
Cells(zelle.Row, zelle.Column).Select
Application.StatusBar = "Aktualisierung von " & daten(i, 1 & " ..."
Call DatenAusgeben(daten, i)
aktualisieren = True
Exit For
End If
Next
'neuer Eintrag -> neue Zeile anfügen
If aktualisieren = False Then
Cells(BereichZeilen, 1).Offset(1, 0).EntireRow.Select
Selection.Copy
Application.CutCopyMode = False
Selection.Insert Shift:=xlShiftDown
Cells(Selection.Row, 1).Select
Application.StatusBar = "neuer Eintrag: " & daten(i, 1) & " ..."
Call DatenAusgeben(daten, i)
End If
aktualisieren = False
Next i

Vielen Dank schon jetzt für Eure Bemühungen!!!
Gruß
Bernd
Bild

Betrifft: AW: Tabellen vergleichen - 2.Tabelle aktualisieren
von: Rolf Beißner

Geschrieben am: 09.03.2005 17:15:45
Hallo Bernd,
vielleicht hilft dir das.
Die 1. Prozedur setzt bei abweichenden Werten Kommentare in Sheet(1);
die 2. Prozedur steuert die Kommentare an + fragt, ob der Wert überschrieben werden soll. Den Bearbeitungsbereich (B1) musst du deinen Bedürfnissen anpassen.
FG
Rolf
Sub vergleich_plus_kommentar_bei_abweichung()
On Error Resume Next
Dim B2 As Worksheet
Dim B1 As Range, c As Range
Dim v As Double
Set B1 = Sheets(1).Range("A1:T30")
Set B2 = Sheets(2)
For Each c In B1
v = B2.Range(c.Address).Value
If c.Value <> v Then
c.AddComment
c.Comment.Text Text:=Str(v)
End If
Next
End Sub

Sub übernahme_abfrage()
Dim cmt As Object
Dim rc As Variant
Set cmt = Worksheets(1).Comments
For Each c In cmt
Range(c.Parent.Address).Select
rc = MsgBox("Soll der Kommentarwert " & c.Text _
& " in die aktuelle Zelle übertragen werden", vbYesNo)
Select Case rc
Case Is = 6
Range(c.Parent.Address) = Val(c.Text)
c.Delete
Case Is = 7
c.Delete
End Select
Next
End Sub


Bild

Betrifft: AW: Tabellen vergleichen - 2.Tabelle aktualisieren
von: BerndSchweiger
Geschrieben am: 09.03.2005 17:27:00
Danke Rolf
Komme heute aber leider nicht mehr zum Testen - morgen dann
Aber die letzten winzigen Änderungen bekomm ich hoffentlich noch alleine hin.
Nochmals tausend Dank
Bernd
Bild

Betrifft: hat's geklappt? oT
von: Rolf Beißner
Geschrieben am: 10.03.2005 12:18:27
..
Bild

Betrifft: Jow
von: BerndSchweiger
Geschrieben am: 10.03.2005 12:54:41
Jow, hat super geklappt (nach ner kleinen Änderung)
Nochmals vielen Dank
Bernd
 Bild
Excel-Beispiele zum Thema "Tabellen vergleichen - 2.Tabelle aktualisieren"
Suche über mehrere Tabellen Benennen von Tabellenblättern mit Monatsnamen
Druckseitenlinien im Tabellenblatt Tabellenblattnamen in ein Listenfeld einlesen
Suchbegriff über mehrere Tabellenblätter suchen. Tabellenblätter benennen
Tabellenblatt auswählen Zustand von Tabellenblatt-Checkboxes ermitteln
Tabellenblattnamen der VBE-Projekte ändern Tabellenblattnamen nach Datum