29.08.2018, 13:16
Liebe clever-Excel Forum Mitglieder!
Hab mal wieder eine Frage - seit dem letzten Mal hat sich einiges getan und und bin schon etwas flotter mit VBA. Habe nun ein Makro mit dem ich Formeln kopieren kann, ohne dass sich die Zellbezüge ändern.
Allerdings funktioniert das nicht mit Arrayformeln. Was müsste ich da an dem Makro ändern/inwiefern müsste das angepasst werden damit ich auch Arrayformeln kopieren kann?
Das ist der Makrocode
Da gibt es ja auch
Danke schonmal für eure Hilfe und lg!
Crosspost: http://www.herber.de/forum/archiv/1640to...tm#1642135
Hab mal wieder eine Frage - seit dem letzten Mal hat sich einiges getan und und bin schon etwas flotter mit VBA. Habe nun ein Makro mit dem ich Formeln kopieren kann, ohne dass sich die Zellbezüge ändern.
Allerdings funktioniert das nicht mit Arrayformeln. Was müsste ich da an dem Makro ändern/inwiefern müsste das angepasst werden damit ich auch Arrayformeln kopieren kann?
Das ist der Makrocode
Code:
Sub FormelnKopieren()
Dim rngQuellbereich As Range
Dim rngZielbereich As Range
Set rngQuellbereich = Selection
If Selection.Count = 1 Then
MsgBox "Bitte markieren Sie die Zellen, aus " & _
"denen Formeln kopiert werden sollen!", _
vbCritical + vbOKOnly, "
Exit Sub
End If
If Selection.Areas.Count > 1 Then
MsgBox "Eine Mehrfachauswahl kann nicht " & _
"kopiert werden!", vbCritical + vbOKOnly, _
Exit Sub
End If
If IsNull(rngQuellbereich.HasArray) Then
MsgBox "Arrayformeln koennen nicht kopiert werden!", _
vbCritical + vbOKOnly,
Exit Sub
End If
Set rngZielbereich = Application.InputBox( _
"Bitte markieren Sie den Bereich, " & _
"in den Sie die Formeln kopieren moechten:", Type:=8)
If rngZielbereich.Parent.ProtectContents Then
MsgBox "Der Zielbereich ist geschuetzt.", _
vbCritical + vbOKOnly,
Exit Sub
End If
If rngQuellbereich.Count <> rngZielbereich.Count Or _
rngQuellbereich.Rows.Count <> _
rngZielbereich.Rows.Count Or _
rngQuellbereich.Columns.Count <> _
rngZielbereich.Columns.Count Then
MsgBox "Der Zielbereich muss genauso gross sein, " & _
"wie der markierte Quellbereich!", _
vbCritical + vbOKOnly,
Exit Sub
End If
rngZielbereich.FormulaLocal = _
rngQuellbereich.FormulaLocal
End Sub
Da gibt es ja auch
Code:
If IsNull(rngQuellbereich.HasArray) Then
MsgBox "Arrayformeln koennen nicht kopiert werden!", _
vbCritical + vbOKOnly,
Exit Sub
End If
Danke schonmal für eure Hilfe und lg!
Crosspost: http://www.herber.de/forum/archiv/1640to...tm#1642135