Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabelle mit Formeln erweitern

Tabelle mit Formeln erweitern
07.06.2018 17:20:48
Torsten
Hallo wieder einmal.
Mein Projekt schreitet voran. Nun begegne ich einem neuen Problem.
Um das besser zu verdeutlichen, werde ich die Date mal hochladen.
Zur Erklaerung.
In Sheet "Main Sheet" sind die Daten in einer Tabelle, die mit Einfuegen - Tabelle angelegt wird. Deren Range erweitert sich normalerweise automatisch, wenn neue Zeilen angefuegt werden. Ich habe diese Loesung bevorzugt, da in den Spalten Q-Y Formeln hinterlegt sind, die automatisch in die naechsten angefuegten Zeilen uebernommen werden sollen. Dies funktioniert auch super, wenn man die neuen Zeilen manuell anfuegt per copy/paste. Jetzt habe ich aber einen Code, der dieses Sheet mit dem 2. Sheet "Daily" vergleicht, und dementsprechend neue Zeilen in "Main Sheet" anfuegt. In dem Fall wird aber die Range der Tabelle in "Main Sheet" nicht automatisch erweitert. Kann mir jemand verraten, warum das nicht funktioniert?
Wie gesagt, werde ich die Beispieldatei hochladen. Bitte helft mir. Oder vielleicht habt ihr eine andere Idee, wie ich die Formeln in die angefuegten Zeilen uebernehmen kann.
Vielen Dank wieder mal im Voraus.
Gruss Torsten
Datei:
https://www.herber.de/bbs/user/122008.xlsm

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle mit Formeln erweitern
07.06.2018 21:32:08
Robert
Hallo Torsten,
in Deiner Datei habe ich das Makro zum Kopieren nicht gefunden. Deshalb weiß ich nicht, wie Du das gemacht hast. Ich vermute mal, dass Du die komplette Zeile kopierst. Wenn Du nur die betroffenen Spalten A bis J wie in nachstehendem Makro (zum Testen habe ich nur mal die Zeile 2 genommen) von der Tabelle "Daily" in die Tabelle "Main Sheet" kopierst, müssten die Formeln in den Spalten Q - Y automatisch übernommen werden.
Sub Kopie()
Dim WS1 As Worksheet: Set WS1 = Worksheets("Daily")
Dim WS2 As Worksheet: Set WS2 = Worksheets("Main Sheet")
Dim lngRow As Long
lngRow = WS2.Range("A" & Rows.Count).End(xlUp).Row + 1
WS2.Unprotect "?"
WS1.Range("A2:J2").Copy Destination:=WS2.Range("A" & lngRow)
WS2.Protect "?"
Set WS1 = Nothing
Set WS2 = Nothing
End Sub
Gruß
Robert
Anzeige
AW: Tabelle mit Formeln erweitern
08.06.2018 10:10:46
Torsten
Hi Robert. Danke fuer deine Antwort.
Der Code zum Kopieren ist in Modul 1 in der 2. For Schleife.
For lngRow = 2 To WS1.Cells(Rows.Count, 6).End(xlUp).Row
If WorksheetFunction.CountIfs(WS2.Columns(6), WS1.Cells(lngRow, 6), _
WS2.Columns(7), WS1.Cells(lngRow, 7)) = 0 Then _
WS1.Rows(lngRow).Copy WS2.Rows(WorksheetFunction.CountA(WS2.Columns(6)) + 1)
WS2.Cells(WorksheetFunction.CountA(WS2.Columns(6)), "O") = Date
Next lngRow
Hier werden erst die Zeilen in den Spalten F und G verglichen und nur neue Zeilen in WS 2 einkopiert. Aber mit diesem Code wird die Tabelle nicht automatisch erweitert und somit werden auch die Formeln in Q-Y nicht uebernommen. Der Code funktioniert super, bis auf dieses kleine Problem
Anzeige
AW: Tabelle mit Formeln erweitern
08.06.2018 10:44:52
Robert
Hallo Torsten
sorry, habe ich glatt übersehen. Aber es ist wie vermutet, Du kopierst die komplette Zeile, also auch die Spalten Q-Y aus der Tabelle Daily und da sind keine Formeln drin. Ändere die Copy-Anweisung in der If-Abfrage wie folgt, dann müsste es klappen:
If WorksheetFunction.CountIfs(WS2.Columns(6), WS1.Cells(lngRow, 6), WS2.Columns(7), WS1.Cells( _
lngRow, 7)) = 0 Then WS1.Range("A" & lngRow & ":J" & lngRow).Copy WS2.Range("A" & WorksheetFunction.CountA(WS2.Columns(6)) + 1)
Gruß
Robert
Anzeige
AW: Tabelle mit Formeln erweitern
08.06.2018 10:49:00
Torsten
OK. Kann ich auch nochmal versuchen. Dann brauch ich vielleicht die listobject.resize Methode nicht.
Danke nochmals.
AW: Tabelle mit Formeln erweitern
08.06.2018 10:45:16
Torsten
Hi nochmal Robert.
Habs rausgefunden. Muss das hier mit der listobject.resize Methode machen.
Hier der Code dazu, den ich nach der Kopierschleife eingefuegt habe. Klappt.
Dim tbl As ListObject
Dim Lrow1 As Long
Lrow1 = WS2.Cells(Rows.Count, "A").End(xlUp).Row
Set tbl = WS2.ListObjects("Table1")
tbl.Resize tbl.Range.Resize(Lrow1)
Habe hier zum check Spalte A gewaehlt, da dort immer was drin steht.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige