Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1876to1880
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

Zellbezug ändert sich bei Kopieren

Zellbezug ändert sich bei Kopieren
21.03.2022 14:36:18
Sabine
Hallo liebe hilfsbereite Mitmenschen,
ich habe vor einiger Zeit einen Code gepostet der dann auch funktionierte - dachte ich zumindest.
Leider kann ich die Datei nicht hochladen, da sie trotz Kürzung zu groß ist (knapp 1 MB).
Folgendes: Spalte A bis J sind Werte aus einem Datenabruf.
Ab Spalte K formeln, die auf den Daten aufbauen.
Ab Spalte K gehören die Formeln nicht mehr zur Tabelle, da sonst die Dateigröße explodiert und die Datei unglaublich langsam wird.
Das Makro schaut nun, ob die Länge des Datenabrufes dem der Formeln entspricht. Wenn nicht, dann sollen die Formeln so lange nach unten kopiert werden, bis die letzte Datenzeile erreicht ist.
Das wird auch gemacht.
Der Fehler: Der Bezug der Formeln der ersten Zeile, die eingefügt wird, geht nicht auf die nächste Zeile, wie es korrekt wäre, sondern auf die letzte Zeile des Datenabrufes. Die Bezüge der folgenden Zeilen gehen dann immer eins darunter, sodass sie sich auf die Zeilen unter dem Datenabruf beziehen - d.h. auf leere Zellen.
Das heißt die Formel wird zwar kopiert und eingefügt, was auch sein soll, aber der Bezug der Formeln ist falsch. Kann mir jemand sagen woran das liegt?
Ich hatte das makro zuerst so hinterlegt, dass es bei Aktualisierung der DB startet. Das hat nicht funktioniert. Dann bei Änderung des Blattes, das hat aber zu lange gedauert. Nun starte ich es manuell nachdem der Datenabruf abgeschlossen ist, aber dann passiert das bereits beschriebene. Kennt jemand solch einen Fall?
Das Makro lautet:

Sub Formeln()
Dim i As Integer
Dim j As Integer
Dim Sp As Integer
Application.ScreenUpdating = False
i = 1 'Zeile, von wo aus gestartet wird = Counter, wie viele Zeilen
j = 1 'Zeile, von wo aus gestartet wird = Counter, wie viele Zeilen
Sp = 1 'Spalte, von wo aus gestartet wird = Counter, wie viele Spalten
Do Until ActiveSheet.Range("A" & i).Value = "" 'Spalte A Zeilen zählen
i = i + 1
Loop
Do Until ActiveSheet.Range("K" & j).Value = "" 'Spalte K
j = j + 1
Loop
Do Until ActiveSheet.Cells(1, Sp).Value = "" 'In Zeile eins bei den Überschriften schauen
Sp = Sp + 1
Loop
If i > j Then 'so lange DB länger ist als Berechnung daneben
Do Until i - 1 = j - 1 'bis die Zeilen gleich sind
ActiveSheet.Range(Cells(j - 1, 11), Cells(j - 1, Sp - 1)).Select 'ab Spalte K (= 11) Zeilen markieren bis letzte Spalte = Counter Sp
Selection.Copy
j = j + 1
Range(Cells(j - 1, 11), Cells(j - 1, Sp - 1)).Select
Selection.PasteSpecial xlPasteFormulas
Loop
End If
Application.ScreenUpdating = True
End Sub
Lieben Dank und liebe Grüße,
Sabi.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellbezug ändert sich bei Kopieren
21.03.2022 17:18:22
onur
Statt deine Datei umständlich zu beschreiben, solltest du sie besser posten, das bringt wesentlich mehr, da ein VBA-Code nun mal massgeschneidert auf eine bestimmte Datei/Blatt geschrieben wurde und ohne sie mehr oder weniger nichtssagend ist.
AW: Zellbezug ändert sich bei Kopieren
22.03.2022 08:14:06
Sabine
Ich habe die Datei nun stark eingekürzt.
In Wirklichkeit handelt es sich natürlich um wesentlich mehr Zeilen und auch Spalten (hinten dran noch 109 Spalten).
https://www.herber.de/bbs/user/151949.xlsm
Vllt bringt das was zum Verständnis.
LG
Sabi
AW: Zellbezug ändert sich bei Kopieren
22.03.2022 09:33:37
Rudi
Hallo,

Sub Formeln()
Dim lngD As Long, lngF As Long, lngC As Long
lngD = Cells(Rows.Count, 1).End(xlUp).Row
lngF = Cells(Rows.Count, 11).End(xlUp).Row
lngC = Cells(1, Columns.Count).End(xlToLeft).Column
If lngD 
Was soll Wert(Wochentag)...)) ? Wochentag ergibt doch ohnehin eine Zahl.
Gruß
Rudi
Anzeige
AW: Zellbezug ändert sich bei Kopieren
22.03.2022 12:02:03
Sabine
Hallo Rudi,
vielen Dank.
Der Code hat jetzt funktioniert, das war bei meinem allerdings auch so.
Kommende Woche, wenn ich die Datei aktualisiere, probiere ich es noch einmal und dann wird es spannend. Dann tritt der Fehler bei mir nämlich auf.
Ich hoffe mit deinem funktioniert es dann.
Ich hatte in der Formel immer wieder Fehler, weil irgendwo die Formate nicht passten. Also habe ich es idiotensicher gemacht und überall ganz klar Wert gesagt. Damit die Vergleiche auch passen. Safety first.
LG
Sabi
AW: Zellbezug ändert sich bei Kopieren
22.03.2022 12:41:16
Rudi

gehören die Formeln nicht mehr zur Tabelle, da sonst die Dateigröße explodiert und die Datei unglaublich langsam wird.
kein Wunder bei massenhaft Formeln mit mehr als 3800 Zeichen.
Anzeige
AW: Zellbezug ändert sich bei Kopieren
22.03.2022 13:42:19
Sabine
Ja die Formel ist echt riesig. Habe es aber nicht kleiner hinbekommen.
Grundsätzlich habe ich bisher alles in Excel lösen können, da ich aber kein Profi bin, führt das dann auch mal dazu, dass die Formeln lang sind und die Rechenleistung leidet bzw die Datei sehr groß wird.
Deshalb lese ich hier oft mit und lerne auch dazu.
Bei der Anwendung dann komme ich aber natürlich nicht auf die kurzen Formeln und neuen Funktionen.
Das ist schade, aber nur Übung macht den Meiser.
Und wie das so ist in Unternehmen, muss es schnell gehen und am besten schon gestern fertig sein. Da habe ich dann nicht die Zeit noch lange zu überlegen. Da wird dann das angewendet, was ich kenne. Quick and dirty. In the end it works...slowly. :D
LG
Sabi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige