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