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
Inhaltsverzeichnis

Formeln nach rechts ziehen via VBA

Forumthread: Formeln nach rechts ziehen via VBA

Formeln nach rechts ziehen via VBA
23.01.2015 10:21:58
NoPa

Hallo,
in meiner Tabelle möchte ich immer die gleichen Formeln via VBA Button einmal „nach rechts ziehen“ und dass in mehreren Tabellen.
Da sich diese Formeln nicht immer in der selben Spalte befinden, tue ich mich schwer, die passenden Variablen zu finden um die jeweiligen dynamischen Zellen richtig anzusprechen!?
Hier meine Tabelle mit meinem statischen Code der die Formeln mit „Autofill Destination“ „nach rechts ziehen soll!
https://www.herber.de/bbs/user/95195.xlsm
Kann mir da bitte Jemand weiter helfen!?
Danke
Gruß
Norbert

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formeln nach rechts ziehen via VBA
23.01.2015 15:39:48
fcs
Hallo Norbert,
hier eine Lösung ohne Userform.
Damit der fette Rahmen rechts nicht umformatiert wird ist es ggf. besser hier mit PasteSpecial zu arbeiten und nur die Formeln zu kopieren.
Gruß
Franz
Private Sub Formeln_Click()
'vor Start des Makros Zelle in Spalte wählen ab der nach rechts kopierte werden soll
Dim wks As Worksheet
Dim Spalte_1 As Long, Spalte_L As Long, Zeile As Long
Dim rngZelle As Range, rngZiehen As Range
Dim strSpa_1 As String, strSpa_L As String
Set wks = ActiveSheet
Spalte_1 = ActiveCell.Column
With wks
'letzte Spalte mit Daten in Zeile 6 = letzte Spalte in die Formeln gezogen werden
Spalte_L = .Cells(6, .Columns.Count).End(xlToLeft).Column
'Infos für MsgBox zusammenstellen
strSpa_1 = .Columns(Spalte_1).Address(False, False, xlA1)
strSpa_1 = Left(strSpa_1, InStr(1, strSpa_1, ":") - 1)
strSpa_L = .Columns(Spalte_L).Address(False, False, xlA1)
strSpa_L = Left(strSpa_L, InStr(1, strSpa_L, ":") - 1)
If MsgBox("Spalten von Spalte " & strSpa_1 & " nach " & strSpa_L & " ziehen?", _
vbQuestion + vbOKCancel, "Kopieren per Ziehen") = vbOK Then
For Zeile = 16 To 51
Select Case Zeile
Case 16, 22, 23, 26, 39, 45, 46, 49
Set rngZelle = .Cells(Zeile, Spalte_1)
Set rngZiehen = .Range(.Cells(Zeile, Spalte_1 + 1), .Cells(Zeile, Spalte_L))
'            rngZiehen.FillRight 'Achtung: überschreibt fetten Rahmen rechts
'oder
'nur Formeln kopieren
rngZelle.Copy
rngZiehen.PasteSpecial Paste:=xlPasteFormulas
Case Else
End Select
Next
Application.CutCopyMode = False
End If
End With
'Formel.Show
End Sub

Anzeige
AW: Formeln nach rechts ziehen via VBA
26.01.2015 08:46:08
NoPa
Hi,
super danke.
Gruß
Norbert

;
Anzeige

Infobox / Tutorial

Formeln nach rechts ziehen mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um Formeln in Excel nach rechts zu ziehen, kannst du VBA verwenden. Hier ist eine einfache Anleitung, wie du dies umsetzen kannst:

  1. Öffne deine Excel-Datei und gehe in den VBA-Editor (drücke ALT + F11).

  2. Füge ein neues Modul hinzu. Klicke mit der rechten Maustaste auf "VBAProject (deinDateiname)" > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub Formeln_Click()
       Dim wks As Worksheet
       Dim Spalte_1 As Long, Spalte_L As Long, Zeile As Long
       Dim rngZelle As Range, rngZiehen As Range
       Dim strSpa_1 As String, strSpa_L As String
       Set wks = ActiveSheet
       Spalte_1 = ActiveCell.Column
       With wks
           Spalte_L = .Cells(6, .Columns.Count).End(xlToLeft).Column
           strSpa_1 = .Columns(Spalte_1).Address(False, False, xlA1)
           strSpa_L = .Columns(Spalte_L).Address(False, False, xlA1)
           If MsgBox("Spalten von Spalte " & strSpa_1 & " nach " & strSpa_L & " ziehen?", _
           vbQuestion + vbOKCancel, "Kopieren per Ziehen") = vbOK Then
               For Zeile = 16 To 51
                   Select Case Zeile
                       Case 16, 22, 23, 26, 39, 45, 46, 49
                           Set rngZelle = .Cells(Zeile, Spalte_1)
                           Set rngZiehen = .Range(.Cells(Zeile, Spalte_1 + 1), .Cells(Zeile, Spalte_L))
                           rngZelle.Copy
                           rngZiehen.PasteSpecial Paste:=xlPasteFormulas
                       Case Else
                   End Select
               Next
               Application.CutCopyMode = False
           End If
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Erstelle einen Button, um das Makro auszuführen. Gehe zu Entwicklertools > Einfügen > Button und ziehe ihn auf das Arbeitsblatt.

  6. Weise das Makro Formeln_Click dem Button zu.

Jetzt kannst du den Button klicken, um die Formeln nach rechts zu ziehen!


Häufige Fehler und Lösungen

  • Fehler: "Der Bereich ist ungültig."

    • Lösung: Stelle sicher, dass die Startzelle (ActiveCell) tatsächlich Formeln enthält und dass die Zielzellen nicht gesperrt sind.
  • Fehler: "Das Makro kann nicht ausgeführt werden."

    • Lösung: Überprüfe, ob die Makros in Excel aktiviert sind. Du findest diese Einstellung unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center.

Alternative Methoden

Falls du keine VBA verwenden möchtest, kannst du auch die Funktion "Ausfüllen" in Excel nutzen:

  1. Markiere die Zelle mit der Formel.
  2. Ziehe den kleinen Anfasser (das kleine Quadrat in der unteren rechten Ecke der Zelle) nach rechts, um die Formel zu kopieren.

Diese Methode ist schneller, wenn es nur um wenige Zellen geht, aber weniger flexibel als VBA.


Praktische Beispiele

Angenommen, du hast in Zelle A1 die Formel =B1+C1, und du möchtest diese Formel in die Zellen B1 und C1 kopieren:

  1. Wähle die Zelle A1 aus und klicke auf den Anfasser.
  2. Ziehe nach rechts bis zur Zelle C1.
  3. Die Formeln werden entsprechend angepasst: =C1+D1 in B1 und =D1+E1 in C1.

Tipps für Profis

  • Nutze PasteSpecial statt einfaches Kopieren, um nur die Formeln ohne Formatierungen zu übernehmen. Dies verhindert unerwünschte Änderungen an Zellformaten.
  • Verwende Relative und Absolute Zellbezüge gezielt, um sicherzustellen, dass deine Formeln korrekt angepasst werden, wenn du sie ziehst oder kopierst.

FAQ: Häufige Fragen

1. Wie kann ich das VBA-Makro anpassen, um nur bestimmte Zeilen zu ziehen? Du kannst die Zeilen im For Zeile = 16 To 51-Block anpassen, um bestimmte Zeilen auszuwählen.

2. Funktioniert dieses Makro in jeder Excel-Version? Ja, das VBA-Makro sollte in den meisten modernen Excel-Versionen (ab Excel 2007) ohne Probleme funktionieren.

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