Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Makro zur Tabellenaktualisierung in einem Excelsheet
Frage
Hallo und guten Morgen,
schonmal vorweg: Ich habe leider keine VB-Vorkentnisse.
Zu meiner Frage: Ich habe ein Excelsheet mit einer relativ umfangreiche Tabelle (Tabelle1). Da ich aus dieser Tabelle aber nur bestimmte Informationen brauche habe ich mir gedacht, das ich mir die wichtigsten Spalten der Tabelle in ein anderes Blatt kopiere(Tabelle2). Dazu ein Makro zu machen ist ja ansich auch für den totalen Laien per Makro Aufzeichnen kein Problem. Aber hier fängt mein Problem erst an: Diese Ausgangstabelle (die s.o. "umfangreiche Tabelle"/Tabelle1) wird in regelmäßigen Abständen aktualisiert. Jetzt soll beim erneuten ausführen des Makros nicht die vorhandene Tabelle (die mit den "wichtigsten Spalten"/Tabelle2) überschrieben, sondern ergänzt werden. D.h. es soll ein Abgleich zwischen beiden Tabellen stattfinden, wo die eventuell neuen Datensätze in Tabelle1 auch in Tabelle2 übernommen werden. Datensätze die noch in Tabelle2 vorhanden sind, aber nichtmehr in Tabelle1 aufgeführt sind, sollen nicht gelöscht/überschrieben werden sondern in irgendeiner Art gekennzeichnet werden (Zeile rot hinterlegen o.ä.).
Ist so ein Makro möglich und wenn ja, wie?
Wie oben geschrieben kenne ich mich in der Materie überhauptnicht aus, es wäre also sehr nett, wenn mir hier geholfen werden könnte, auch wenn es keine vollständige Lösung ist.
An der Stelle schonmal ein Danke, das du dich durch diesen Text gewühlt hast. :D
Grüße Sirhc
Antwort 1 von kicia
Hallo Sirhc,
klingt in der Tat aufwendig. Ich bin nicht gut in VBA in Excel, aber vielleicht kann ich ja Vorarbeit leisten:
Kann man die Zeilen irgendwie anhand einer Spalte eindeutig identifizieren (ID-Nummer oder so)? Oder müssen alle Spalten verglichen werden?
Wann oder wie kopierst Du die Zeilen? Wählst Du sie von Hand aus?
Oder woran kann das Macro sehen, welche Zeilen "wichtig" sind?
Ein Ansatz als Pseudocode:
Wenn ich da auf dem richtigen Weg bin, können wir den Code vertiefen, wobei sich dann besser ein Excel-VBA spezialist einschalten sollte. Na, mal sehen.
Gruß, kicia
klingt in der Tat aufwendig. Ich bin nicht gut in VBA in Excel, aber vielleicht kann ich ja Vorarbeit leisten:
Kann man die Zeilen irgendwie anhand einer Spalte eindeutig identifizieren (ID-Nummer oder so)? Oder müssen alle Spalten verglichen werden?
Wann oder wie kopierst Du die Zeilen? Wählst Du sie von Hand aus?
Oder woran kann das Macro sehen, welche Zeilen "wichtig" sind?
Ein Ansatz als Pseudocode:
for each i in Tabelle1
if ZeileIstWichtig then KopiereInBuffer()
EndIf
for each i in Tabelle2
gefunden = false
for each k in Buffer
if i=k then gefunden = true
Next
if gefunden = false then MarkiereAlsAltInTabelle2() else LöscheAusBuffer()
Next
for each k in Buffer
SchreibeInTabelle2()
NextWenn ich da auf dem richtigen Weg bin, können wir den Code vertiefen, wobei sich dann besser ein Excel-VBA spezialist einschalten sollte. Na, mal sehen.
Gruß, kicia
Antwort 2 von Anbu1989
Hallo,
und sorry erstmal für die späte Antwort. Danke für deine Mühe kicia, aber ich habe mittlerweile eine Lösung für das Problem gefunden.
Danke trotzdem!
und sorry erstmal für die späte Antwort. Danke für deine Mühe kicia, aber ich habe mittlerweile eine Lösung für das Problem gefunden.
Danke trotzdem!

