Frage von Jojo120120, 63

Excel Tabelle aktualisieren?

Ich bekomme wöchentlich eine Exceltabelle mit drei Spalten. Unter der Woche werden noch weitere Zellen individuell ergänzt die aber jeweils mit einer Reihe zusammenhängen. Das Problem ist, dass jede Woche auch ganze Zeilen wegfallen können bei der aktuellen Esxceltabelle die ich immer bekomme. Sollten sich die Werte ändern, sollen einfach nur die Werte aktualisiert werden aber die individuell hinzugefügten Zellen sollen bestehen bleiben. Wie kann ich da jetzt am besten eine Regel erstellen, dass ich nur die aktuelle Tabelle einfüge und die individuellen Zellen bestehen bleiben bzw. sich automatisch richtig verschieben?

Expertenantwort
von Ninombre, Community-Experte für Excel, 45

Ich gehe davon aus, dass es nur mit Makro sauber umgesetzt werden kann. Unklar ist allerdings: Wie werden denn Zeilen durch Aktualisieren gelöscht? Wenn der Account nicht mehr in der aktuellen Datei ist? 


Die drei ersten Spalten werden immer geliefert lt Beschreibung. Können hier auch geänderte Werte stehen, die nicht überschrieben werden dürften? 

Kommentar von Jojo120120 ,

Also die drei ersten Spalten werden komplett überschrieben. Bei der neuen Liste die ich bekomme sind aber keine Zellen mehr aufgelistet bei denen der Wert in Zelle Size unter 300 MB. Heißt wenn bei einer Zeile der Wert unter 300 ist, fällt dieser komplett weg bzw. falls sich nur der Wert ändert aber über 300 ist, sollen die Zellen bestehen bleiben. Das mit den aufrücken hab ich so gemeint, dass wenn die Zeile komplett gelöscht wird, wäre in der Zeile ja nichts mehr hinterlegt und müsste nach oben verschoben werden.

Ich habs schon mit Makros versucht aber komme da nicht ganz drauf wie ich das am besten einstelle.

Kommentar von Ninombre ,

Es gibt da unterschiedliche Lösungswege, ich stelle die Frage daher nochmal neu ein, damit es ggf. andere Vorschläge genannt werden, die vielleicht besser zu Deiner Vorstellung passt.

Welche Reihenfolge soll denn führend sein? Ich habe mal die Sortierung der neuen Datenlieferung übernommen (dann braucht man die Datensätze nicht löschen, die in der neuen Lieferung nicht enthalten sind), es geht aber auch anders.

Kann man die bisherigen Daten einfach wegwerfen? Ich hätte einfach ein neues Tabellenblatt angelegt. Ggf. kannst Du die alten auch löschen, wenn es zuviel wird.

Annahme: Daten stehen A1:Hxxx
In der Zieltabelle gibt es nur ein Tabellenblatt. Dieser Punkt ist wichtig, sonst muss man die Logik ändern, wie man neues/altes Tabellenblatt erkennt.

grober Ablauf:
- letztes Tabellenblatt ermitteln (das ist die Quelle für die individuellen Anmerkungen
- neues Tabellenblatt anlegen. Name= Tagesdatum
- Datei öffenen, Bereich A1:C100 (Anpassen bei Bedarf) kopieren und ins neue Tabellenblatt einfügen
- Prüfen, ob es Anmerkungen zur Domain gibt und diese ggf. vom alten ins neue Tabellenblatt kopieren. Countif prüft, ob es einen eintrag gibt, match liefert die richtige Zeile (=VERGLEICH als normale Formel)

Sub einlesen()
altetabelle = Sheets.Count()
Sheets.Add after:=Sheets(altetabelle)
Sheets(altetabelle + 1).Name = Date 'noch einen speziellen Namen vergeben?
Workbooks.Open Filename:="C:\Users\hugoemildingsbums\Desktop\Mappe2.xlsx" 'anpassen!
Range("A1:C100").Copy  'kann man einen ausreichend großen bereich definieren oder muss die genaue anzahl geprüft werden?
Destination:=ThisWorkbook.Sheets(altetabelle + 1).Range("A1")
ThisWorkbook.Activate
Sheets(altetabelle).Range("D1:F1").Copy Destination:=Sheets(altetabelle + 1).Range("D1") ' überschriften kopieren
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Sheets(altetabelle).Range("A1:A100"), Sheets(altetabelle + 1).Range("A" & i)) > 0 Then
zeile = WorksheetFunction.Match(Sheets(altetabelle + 1).Range("A" & i), Sheets(altetabelle).Range("A1:A100"), False)
Sheets(altetabelle).Range("D" & zeile & ":H" & zeile).Copy Destination:=Sheets(altetabelle + 1).Range("D" & i)
End If
Next
End Sub

Keine passende Antwort gefunden?

Fragen Sie die Community