VBA Werte kopieren statt Formeln in Excel
Schritt-für-Schritt-Anleitung
Um Werte in Excel mithilfe von VBA zu kopieren, anstatt die Formeln zu übertragen, kannst du das folgende Makro verwenden. Dieses Beispiel basiert auf dem Austausch zwischen Raphael und Werner im Forum:
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (dein Arbeitsbuch)", dann "Einfügen" > "Modul".
- Kopiere den folgenden Code in das Modul:
Sub Kopieren()
Dim a As Long
Application.ScreenUpdating = False
With Worksheets("Übersicht2019")
a = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 ' a ist die erste leere Zelle in Spalte B
If .Range("B1") = "" Then b = 1
Worksheets("Mitarbeiter").Range("H5").Copy
.Range("B" & a).PasteSpecial Paste:=xlPasteValues ' Nur den Wert einfügen
End With
Application.CutCopyMode = False ' Kopierspeicher leeren
End Sub
- Schließe den VBA-Editor und führe das Makro aus, um den Wert aus der Zelle H5 im "Mitarbeiter"-Sheet in das nächste freie Feld in der Spalte B des "Übersicht2019"-Sheets zu kopieren.
Häufige Fehler und Lösungen
-
Fehler: Method 'Range' of object '_Worksheet' failed
- Lösung: Stelle sicher, dass der Arbeitsblattname korrekt geschrieben ist und existiert.
-
Fehler: Werte werden nicht richtig eingefügt
- Lösung: Stelle sicher, dass du
.PasteSpecial Paste:=xlPasteValues
verwendest, um nur die Werte zu kopieren.
-
Fehler: Makro läuft nicht
- Lösung: Überprüfe die Makrosicherheitseinstellungen in Excel. Gehe zu "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" und aktiviere die Makros.
Alternative Methoden
Wenn du keine Makros verwenden möchtest, kannst du auch die Formeln in der Zelle manuell in Werte umwandeln:
- Kopiere die Zelle mit der Formel.
- Klicke mit der rechten Maustaste auf die Zielzelle.
- Wähle "Inhalte einfügen" und dann "Werte".
Diese Methode ist zwar zeitaufwändiger, erfordert jedoch keine Programmierkenntnisse.
Praktische Beispiele
Angenommen, du hast eine Liste von Mitarbeiterdaten in "Mitarbeiter" und möchtest nur die Werte in "Übersicht2019" übertragen. Mit dem oben beschriebenen Makro kopierst du die Werte aus Zelle H5 in die nächste freie Zelle in Spalte B. Du kannst das Makro anpassen, um weitere Zellen oder Spalten zu übertragen.
Worksheets("Mitarbeiter").Range("H6").Copy
.Range("B" & a + 1).PasteSpecial Paste:=xlPasteValues ' Beispiel für weitere Zelle
Tipps für Profis
- Verwende
Application.ScreenUpdating = False
, um die Leistung zu verbessern, wenn du mit großen Datenmengen arbeitest.
- Du kannst das Makro erweitern, um mehrere Zellen gleichzeitig zu kopieren, indem du eine Schleife verwendest.
- Achte darauf, dass du den Code regelmäßig testest, um sicherzustellen, dass alles wie gewünscht funktioniert.
FAQ: Häufige Fragen
1. Wie kann ich den Wert aus mehreren Zellen kopieren?
Du kannst eine Schleife verwenden, um durch die Zellen zu iterieren und die Werte nacheinander zu kopieren.
2. Kann ich das Makro für andere Arbeitsblätter verwenden?
Ja, du musst nur die Namen der Arbeitsblätter im Code entsprechend anpassen.
3. Was muss ich tun, wenn ich eine Fehlermeldung erhalte?
Überprüfe die Zeile, die den Fehler verursacht, und stelle sicher, dass alle Referenzen korrekt sind und die Arbeitsblätter existieren.