A | B | C | D | |
---|---|---|---|---|
1 | Formelspalte | Wertespalten | Weitere Spalten | |
2 | =ZS2*2 | 1 | ||
3 | =ZS2*2 | 2 | ||
4 | 3 | |||
5 | 4 | |||
6 |
A | B | C | D | |
---|---|---|---|---|
1 | Formelspalte | Wertespalten | Weitere Spalten | |
2 | =ZS2*2 | 1 | ||
3 | =ZS2*2 | 2 | ||
4 | =ZS2*2 | 3 | ||
5 | =ZS2*2 | 4 | ||
6 |
Option Explicit
' ****************************************************************
' Autor/en und Original-Quelltext unter:
' https://www.online-vba.de/vba_formelnvervoll.php
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von https://www.online-vba.de
' ****************************************************************
Public Sub OVBAde_FormelnInTabelleAutomatischVervollstaendigen()
Dim z As Long
Dim s As Long
Dim lPruefSpalte As Long
lPruefSpalte = 1 'Wenn in dieser Spalte etwas steht wird die Formel vervollständigt
With ActiveSheet
For z = .UsedRange.Row To .UsedRange.Row + .UsedRange.Rows.Count - 1
'Die erste Zeile wird als Vorlage verwendet,
'bei vorhandenen überschriften in der Tabelle die Zweite (+1)!
If z > .UsedRange.Row + 1 And Trim(CStr(.Cells(z, lPruefSpalte).Value)) <> "" Then
For s = .UsedRange.Column To .UsedRange.Column + .UsedRange.Columns.Count - 1
'Wenn eine Formel in der Zelle drüber steht und in der aktuellen Zelle nicht,
'wird die Formel kopiert
If .Cells(z - 1, s).HasFormula = True And .Cells(z, s).HasFormula = False Then
.Cells(z, s).FormulaR1C1 = .Cells(z - 1, s).FormulaR1C1
End If
Next s
End If
Next z
End With
MsgBox "Fertig!"
End Sub