Automatisch Formeln in Werte umwandeln mit VBA
Schritt-für-Schritt-Anleitung
-
Öffne Excel und gehe zu dem Arbeitsblatt, in dem Du die Formeln in Werte umwandeln möchtest.
-
Drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu: Klicke auf Einfügen
> Modul
.
-
Kopiere den folgenden VBA-Code in das neue Modul:
Sub Umwandeln()
Dim iCol As Integer
Dim AktDat As Date
Application.ScreenUpdating = False ' Bildschirmflackern verhindern
AktDat = Range("C5") ' Datum übergeben
For iCol = 4 To 51 ' Spalte D bis AY
If Cells(8, iCol) < AktDat Then ' Wenn das Datum kleiner ist
Range(Cells(9, iCol), Cells(23, iCol)).Copy ' Dann kopiere die Formeln
Range(Cells(9, iCol), Cells(23, iCol)).PasteSpecial _
Paste:=xlPasteValues ' und füge sie mit "Inhalte einfügen" wieder ein
End If
Next iCol ' Spalte D bis AY
With Application
.CutCopyMode = False ' Die gestrichelte Linie vom Kopieren abschalten
.ScreenUpdating = True ' Bildschirmaktualisierung anschalten
End With
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Führe das Makro aus: Drücke ALT + F8
, wähle Umwandeln
und klicke auf Ausführen
.
Häufige Fehler und Lösungen
Alternative Methoden
Falls Du die Formeln in Werte umwandeln möchtest, ohne VBA zu verwenden, kannst Du die folgenden Methoden nutzen:
-
Kopieren und Einfügen:
- Markiere die Zellen mit den Formeln.
- Kopiere sie (
CTRL + C
).
- Rechtsklicke auf die Zielzellen und wähle
Inhalte einfügen
> Werte
.
-
Verwenden von Tastenkombinationen:
- Wähle die Zellen mit den Formeln aus.
- Drücke
CTRL + C
, dann ALT + E
, S
, V
und ENTER
, um die Formeln in Werte umzuwandeln.
Praktische Beispiele
Nehmen wir an, Du hast in Zeile 8 Datumsangaben in den Zellen D8 bis AY8 und möchtest die Formeln in den Zeilen 9 bis 23 umwandeln, wenn das Datum in Zeile 8 in der Vergangenheit liegt. Mit dem obigen VBA-Skript wird dies automatisch durchgeführt.
Beispielcode:
For Each rng In Sheets("DeinTabellenblatt").Range("D8:AY8")
If rng < AktDat Then
rng.Offset(1, 0).Resize(15, 1).Copy
rng.Offset(1, 0).Resize(15, 1).PasteSpecial Paste:=xlPasteValues
End If
Next
Tipps für Profis
- Optimierung des Codes: Du kannst den Code optimieren, indem Du nur die Spalten durchläufst, die tatsächlich Werte enthalten, um die Ausführung zu beschleunigen.
- Fehlermeldungen ausblenden: Um störende Fehlermeldungen während der Ausführung des Makros zu vermeiden, kannst Du
On Error Resume Next
verwenden.
FAQ: Häufige Fragen
1. Wie kann ich die Excel-Formel automatisch in einen Wert umwandeln, ohne VBA zu verwenden?
Du kannst die Formeln einfach kopieren und dann über Inhalte einfügen
die Werte einfügen.
2. Was ist der Unterschied zwischen Paste
und PasteSpecial
?
Paste
fügt die gesamte Formatierung und Formeln ein, während PasteSpecial
es ermöglicht, nur die Werte oder spezifische Formate einzufügen.
3. Kann ich den VBA-Code anpassen, um nur bestimmte Formeln umzuwandeln?
Ja, Du kannst Bedingungen in den Code einfügen, um nur bestimmte Formeln zu erkennen und diese in Werte umzuwandeln.