Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel bis bestimmte Zeile kopieren (vba)

Formel bis bestimmte Zeile kopieren (vba)
19.02.2015 15:17:25
Dieter
Hallo!
Ich würde gerne eine Formel (z.B. =Summe(E8:P8)) per VBA nach unten kopieren - die Ergebnisse sollen in Spalte D sein, die Werte aber in E-P. Spalte D ist bis dato LEER.
Folgendes Problem: Wenn man es mit dem Makro Recorder aufnimmt, dann hat man immer eine vordefinierte Länge. Ich würde es aber gerne so oft nach unten kopiert haben, bis in z.B. in E555 kein Wert mehr steht. Habe es bisher leider nur geschafft, eine Formel von 8 bis 10485876 zu kopieren, was für die Dateigröße und Arbeitsgeschwindigkeit natürlich suboptimal ist.
Warum VBA?
Der Code soll in ein anderes Makro integriert werden, dass die Spalten E bis P ausfüllt (variable Anzahl der Zeilen, deshalb benötige ich eine dynamische Anzahl an Kopien der Formeln).
MfG,
Dieter

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Formel bis bestimmte Zeile kopieren (vba)
19.02.2015 15:32:33
Michael
Hallo Dieter!
Hier mein Vorschlag. Dieser Code trägt Dir die Summenformel in D1 ein, bestimmt die letzte Zelle (Zeilennummer) der Spalte E, und füllt die Zellen der Spalte D mit der Formel aus D1 über AutoAusfüllen bis zur identifizierten Zeilennummer in E. Wenn die Formel nicht in D1 beginnt, musst Du anpassen:
Sub FormelBisLetzteZelle()
Dim Letzte As Long 'Bestimmt Ende von Spalte E
Letzte = Tabelle1.Cells(1048576, 5).End(xlUp).Row
Tabelle1.Cells(1, 4).FormulaLocal = "=Summe(E1:P1)"
Tabelle1.Cells(1, 4).AutoFill Destination:=Range("D1:D" & Letzte)
End Sub
Passt?
Michael

Anzeige
AW: Formel bis bestimmte Zeile kopieren (vba)
19.02.2015 15:43:36
Dieter
Hallo,
bekomme bei Tabelle1 leider einen Fehler.
Denke dass dies für den Tabellennamen steht, der bei mir anders ist. Kann man dies ganz allgemein für das Aktive Worksheet formulieren?
Danke schon mal!
MfG,
Dieter

AW: Formel bis bestimmte Zeile kopieren (vba)
19.02.2015 15:52:00
Michael
Hallo Dieter!
So ist es, und man kann:
Sub FormelBisSpaltenende()
Dim Letzte As Long
Letzte = ActiveSheet.Cells(1048576, 5).End(xlUp).Row
ActiveSheet.Cells(1, 4).FormulaLocal = "=Summe(E1:P1)"
ActiveSheet.Cells(1, 4).AutoFill Destination:=Range("D1:D" & Letzte)
End Sub
Klappt?
LG
Michael

Anzeige
AW: Formel bis bestimmte Zeile kopieren (vba)
20.02.2015 09:01:27
Dieter
Einwandfrei, vielen lieben dank!!
MfG,
Dieter

Gern! Danke owT AW: Formel bis bestimmte Zeile kop
20.02.2015 09:28:39
Michael
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Formel bis zu einer bestimmten Zeile kopieren mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul:

    • Klicke auf Einfügen > Modul.
  3. Füge den folgenden VBA-Code ein:

    Sub FormelBisSpaltenende()
       Dim Letzte As Long
       Letzte = ActiveSheet.Cells(1048576, 5).End(xlUp).Row
       ActiveSheet.Cells(1, 4).FormulaLocal = "=Summe(E1:P1)"
       ActiveSheet.Cells(1, 4).AutoFill Destination:=Range("D1:D" & Letzte)
    End Sub

    Dieser Code kopiert die Formel von D1 bis zur letzten Zeile in Spalte D, basierend auf den Werten in Spalte E.

  4. Starte das Makro:

    • Schließe den VBA-Editor und gehe zurück zu Excel.
    • Drücke ALT + F8, wähle FormelBisSpaltenende und klicke auf Ausführen.
  5. Überprüfe die Ergebnisse in Spalte D.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Ursache: Der Tabellennamen in deinem VBA-Code stimmt nicht mit dem Namen des Arbeitsblatts überein.
    Lösung: Verwende ActiveSheet, um den Fehler zu vermeiden.

  • Die Formel wird nicht kopiert
    Ursache: Die Zielzelle oder der Zielbereich ist nicht richtig definiert.
    Lösung: Stelle sicher, dass die Zelle D1 richtig referenziert wird.


Alternative Methoden

  • Drag & Drop: Du kannst die Formel manuell ziehen, indem du den kleinen Punkt in der unteren rechten Ecke der Zelle D1 greifst und nach unten ziehst, bis zur gewünschten Zeile.

  • Excel-Funktionen: Anstatt VBA zu verwenden, kannst du auch die Funktion =SUMME(E1:P1) in D1 eingeben und die Zelle nach unten ziehen, jedoch ist diese Methode weniger effizient, wenn du viele Zeilen hast.


Praktische Beispiele

Wenn du beispielsweise eine Formel in D1 hast, die die Werte in den Zellen E1 bis P1 summiert, kannst du die oben gezeigte VBA-Methode verwenden, um die Formel bis zur letzten Zelle in Spalte E automatisch zu kopieren.

Nehmen wir an, die letzte Zeile mit Werten in Spalte E ist 555. Der VBA-Code stellt sicher, dass die Formel in D1 bis D555 kopiert wird, ohne dass du manuell eingreifen musst.


Tipps für Profis

  • Verwende Variablen: Um deine Codes flexibler zu gestalten, kannst du Variablen für Zeilen und Spalten definieren, die du später im Code wiederverwenden kannst.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinen VBA-Skripten, um unerwartete Fehler zu vermeiden und den Code robuster zu machen.

  • Performance: Wenn du mit sehr großen Datenmengen arbeitest, solltest du die Bildschirmaktualisierung und die Berechnung vorübergehend deaktivieren, um die Ausführungsgeschwindigkeit zu erhöhen:

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    ' Dein Code hier
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich die Formel bis zu einer bestimmten Zelle kopieren?
Du kannst den Zielbereich in der AutoFill-Methode anpassen, um die Formel nur bis zu der gewünschten Zelle zu kopieren.

2. Funktioniert dieser VBA-Code in allen Excel-Versionen?
Ja, der Code ist mit den meisten modernen Excel-Versionen kompatibel, solange du VBA verwenden kannst.

3. Kann ich eine andere Formel als SUMME verwenden?
Ja, du kannst jede Excel-Formel verwenden, die du benötigst. Ändere einfach die Formel in der Zeile FormulaLocal.

4. Wie kann ich die Formel kopieren, wenn ich mehrere Spalten habe?
Du kannst den Bereich in der AutoFill-Methode entsprechend anpassen, um mehrere Spalten zu berücksichtigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige