Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: in VBA nach rechts kopieren

in VBA nach rechts kopieren
15.12.2004 12:00:13
Stefan
Hallo,
hab ne dumme Frage - ich möchte in Excel eine Tabelle automatisch auffüllen. Den Code zum automatischen nach unten Kopieren der Formel bis in eine bestimmte Zelle hab ich problemlos hinbekommen. Beim nach rechts kopieren haperts allerdings, weil die Zellen in Buchstaben angegeben sind (was ist B + i Zellen nach rechts, wenn i variabel sein soll)?
Das ist mein bisheriges Programm:
Range("A7").Select
ActiveCell.FormulaR1C1 = "=R[-6]C[3]"
Range("A8").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+R1C8"
Range("A8").Select
Selection.AutoFill Destination:=Range("A8:A" & 8 + P1up - 2), Type:=xlFillDefault
Range("A8:A" & 8 + P1up - 2).Select
bis hierhin klappt alles prima
Range("B6").Select
ActiveCell.FormulaR1C1 = "=R[-4]C[2]"
Range("C6").Select
ActiveCell.FormulaR1C1 = "=RC[-1]+R2C8"
Range("C6").Select
Ab hier weiss ich nicht mehr weiter
Selection.AutoFill Destination:=Range("C6:G6"), Type:=xlFillDefault
Range("C6:G6").Select
Dieser Befehl kopiert mir bis nach G6 nach rechts, ich will das aber variabel bennen (so wie oben bis nach 8 + P1up - 2 nach unten kopiert wurde). Hmm? Hat das jemand verstanden?
Wäre für jede Hilfe sehr dankbar.
Stefan
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: in VBA nach rechts kopieren
Jan
Hi Stefan,
Schau Dir mal die CELLS-Eigenschaft an.
Jan
AW: in VBA nach rechts kopieren
15.12.2004 12:11:38
Stefan
D.h. anstatt Range Cells verwenden?
AW: in VBA nach rechts kopieren
u_
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

In VBA nach rechts kopieren


Schritt-für-Schritt-Anleitung

Um in Excel VBA Formeln nach rechts zu kopieren und dabei eine variable Anzahl von Zellen zu berücksichtigen, kannst du die Cells-Eigenschaft nutzen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Starte den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“ und wähle „Einfügen“ > „Modul“.
  3. Gib den folgenden Code ein:
Sub KopiereNachRechts()
    Dim P1up As Integer
    P1up = 5 ' Beispielwert, passe ihn nach Bedarf an

    ' Formeln in der ersten Zeile einfügen
    Cells(6, 1).FormulaR1C1 = "=R[-4]C[2]"  ' A6
    Cells(6, 2).FormulaR1C1 = "=RC[-1]+R2C8" ' B6

    ' Formeln nach rechts kopieren
    Range(Cells(6, 2), Cells(6, 2 + P1up - 1)).FillRight
End Sub
  1. Ändere den Wert von P1up: Setze P1up auf die Anzahl der Zellen, die du nach rechts kopieren möchtest.
  2. Führe das Makro aus: Drücke F5, um das Makro auszuführen.

Mit diesem Code kannst du die Formeln in der Zeile 6 nach rechts kopieren und dabei die Anzahl der Zellen variabel gestalten.


Häufige Fehler und Lösungen

  • Fehler: „Typenkonflikt“
    Ursache: Der Wert von P1up könnte nicht korrekt gesetzt sein. Stelle sicher, dass P1up eine positive ganze Zahl ist.

  • Fehler: „Methode 'Range' für Objekt '_Global' fehlgeschlagen“
    Ursache: Überprüfe, ob der Zellbereich korrekt definiert ist. Achte darauf, dass keine Zellen außerhalb des gültigen Bereichs angesprochen werden.


Alternative Methoden

Eine alternative Methode, um Formeln nach rechts zu kopieren, ist die Verwendung der AutoFill-Methode:

Range("B6").AutoFill Destination:=Range("B6:G6"), Type:=xlFillDefault

In diesem Fall kannst du den Zielbereich dynamisch anpassen, indem du Cells verwendest.


Praktische Beispiele

Hier sind einige praktische Beispiele, die du anpassen kannst:

  1. Einfaches Beispiel: Um eine Formel in der Zeile 10 von Spalte A nach Spalte D zu kopieren:

    Cells(10, 1).FormulaR1C1 = "=R[-1]C+1"
    Range(Cells(10, 1), Cells(10, 4)).FillRight
  2. Mit variablen Zellen: Wenn du die Anzahl der zu kopierenden Zellen basierend auf einer Berechnung festlegen möchtest:

    Dim Anzahl As Integer
    Anzahl = 3 ' Anzahl der Zellen nach rechts
    Range(Cells(10, 1), Cells(10, Anzahl)).FillRight

Tipps für Profis

  • Nutze Option Explicit: Füge oben in deinem Modul Option Explicit ein, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
  • Debugging: Verwende die Debug.Print-Anweisung, um die Werte von Variablen während der Ausführung des Codes anzuzeigen.
  • Verwende With-Anweisungen: Dies kann den Code übersichtlicher und effizienter machen.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der Zellen dynamisch bestimmen?
Du kannst die Anzahl der Zellen, die du kopieren möchtest, basierend auf anderen Zellwerten berechnen. Zum Beispiel:

Dim P1up As Integer
P1up = Range("E1").Value ' E1 enthält die Anzahl

2. Funktioniert das auch in älteren Excel-Versionen?
Ja, dieser Code sollte in den meisten Excel-Versionen ab Excel 2007 funktionieren, solange du VBA nutzen kannst.

3. Was ist der Unterschied zwischen Range und Cells?
Range verwendet die Zellbezeichnung (z.B. "A1"), während Cells die Zeilen- und Spaltennummer verwendet (z.B. Cells(1, 1) für A1).

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