Hallo 180Grad,
das Überschreiben funktioniert im Prinzip genauso wie das Einfügen einer neuen Zeile, nur eben in einer bereits beschriebenen Zeile.
Ich gehe davon aus, dass du irgendwo die Daten, die du einfügen willst, gespeichert hast. Vielleicht gibt es eine Zelle, die den Client eindeutig identifiziert. Sei der identifisierende Wert in der Variablen Suchbegriff gespeichert. In der zugehörigen Spalte der Tabelle Done würde ich suchen, ob der Client schon vorhanden ist. Dazu bestimmst du als erstes, wie viele Einträge in der Spalte vorhanden sind (im Beispiel Spalte C (=3, Zählung beginnt bei 1 für A):
lz = Range(Worksheets("Done").Cells(65536, 3), Worksheets("März").Cells(65536, 3)).End(xlUp).Row
Dann suchst du in dieser Spalte, ob ein solcher Eintrag vorhanden ist:
For i = 1 To lz
If Suchbegriff = Worksheets("Done").Cells(i, 3) Then Exit For
Next i
Nach dem Durchlauf durch diese Zeilen steht in der Variablen i die Zeile, die überschrieben werden soll. Falls kein Eintrag gefunden wurde, steht in i der Wert lz+1, also die nächste freie Zeile. Du brauchst jetzt also nur deine Daten in diese Zeile einzufügen, was du ja schon gelöst hast.
Viel Erfolg
Holger
180Grad schrieb am 07.02.2008 09:45:13:
Hallo Zusammen
Ich habe zwei Tabellen "Execute" und "Done". In Tab.Execute ist eine Liste mit Clients bei denen etwas ausgeführt wird. Sind diese erfolgreich, werden diese in die Tab.Done mit Datum und Zeit kopiert. Bis hier hin alles kein Problem.
Da die Clients anhand von Textdateien eingelesen werden, kann es vorkommen, dass auf denen (nochmals) etwas ausgeführt wird, obwohl sie sich schon in der Tab.Done befinden.
Mein eigentliches Problem ist jetzt, dass wenn ich etwas auf dem Client ausführe, wird dieser in die Tab.Done kopiert, obwohl sie vielleicht schon dort vorhanden ist. Das Ziel wäre, dass der alte Eintrag in Tab.Done gelöscht und der neue eingetragen wird.
Habt hier hierzu einige Lösungen?
Mfg, 180Grad |