Supportnet Computer
Planet of Tech

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:
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()
Next


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

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!

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: