Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Excel nur mit Werten als neue Datei speichern

VBA: Excel nur mit Werten als neue Datei speichern
11.08.2016 08:30:21
Dieter
Hallo zusammen,
ich möchte folgendes tun:
1) Aus einer Excel-Datei ein Sheet als neue Datei in einem bestimmten Pfad ablegen.
2) Der Dateiname kommt aus einem Zelleninhalt.
3) Es sollen nur Werte gespeichert werden, keine Formeln, keine Links.
Die ersten beiden Punkte klappen gut, bei Punkt 3) habe ich schon einiges versucht, aber alles erfolglos. Es kommt ständig der Laufzeitfehler 1004, der mir nicht weiterhilft.
Der Code sieht wie folgt aus:

Sub Speichern()
Dim Pfad As String, Dateiname As String
ChDir "\"
Pfad = ""
Dateiname = Range("B2")
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=Pfad & Dateiname
ActiveWorkbook.Close
End Sub

Dummerweise beziehen sich einige Zellen der generierten Excel-Datei immer noch auf Zellen der Ursprungsdatei, da dort eben auch nicht nur direkte Werte stehen.
Ich habe einiges gefunden im Netz und auch versucht, aber es kommt immer die Fehlermeldung, da ich die korrekte Syntax nicht hinkriege.
Wie muss ich meinen Code erweitern, damit nur Werte übertragen werden?
Gruß
Dieter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Excel nur mit Werten als neue Datei speichern
11.08.2016 08:39:41
Bastian
Guck mal ob das so geht
Gruß Basti
Sub Speichern()
Dim Pfad As String, Dateiname As String
ChDir "\"
Pfad = ""
Dateiname = Range("B2")
ActiveSheet.Cells.Copy
Set WSNew = Workbooks.Add
WSNew.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,  _
SkipBlanks _
:=False, Transpose:=False
WSNew.SaveAs Filename:=Pfad & Dateiname
WSNew.Close
End Sub

Anzeige
AW: VBA: Excel nur mit Werten als neue Datei speichern
11.08.2016 09:00:19
Dieter
Hallo Basti,
einfach, aber genial. Funktioniert wunderbar. Danke vielmals.
Gruß
Dieter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel: Tabellenblatt nur mit Werten als neue Datei speichern


Schritt-für-Schritt-Anleitung

Um ein Excel-Tabellenblatt als neue Datei zu speichern und dabei nur die Werte zu übertragen, kannst Du den folgenden VBA-Code verwenden. Dieser Code erstellt eine neue Excel-Datei, kopiert die Inhalte des aktiven Blatts und speichert nur die Werte, ohne Formeln oder Links.

  1. Öffne den VBA-Editor: Drücke ALT + F11.
  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub Speichern()
    Dim Pfad As String, Dateiname As String
    ChDir "\"
    Pfad = "<dein_pfad>"
    Dateiname = Range("B2").Value
    ActiveSheet.Cells.Copy
    Set WSNew = Workbooks.Add
    WSNew.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    WSNew.SaveAs Filename:=Pfad & Dateiname
    WSNew.Close
End Sub
  1. Passe den Pfad an: Ersetze <dein_pfad> durch den gewünschten Speicherort.
  2. Führe das Makro aus: Drücke F5 oder wähle das Makro aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn der Pfad oder der Dateiname ungültig ist. Stelle sicher, dass der Pfad korrekt ist und dass Du Schreibberechtigungen für diesen Ordner hast.

  • Zellen werden nicht richtig kopiert: Wenn Du die Werte nicht korrekt überträgst, überprüfe, ob Du PasteSpecial richtig benutzt hast. Stelle sicher, dass Paste:=xlPasteValues korrekt angegeben ist.


Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch die Speichern unter-Funktion von Excel nutzen:

  1. Kopiere die Zellen: Markiere die Zellen, die Du exportieren möchtest und kopiere sie (STRG + C).
  2. Füge sie in ein neues Blatt ein: Öffne ein neues Arbeitsblatt und füge die Zellen mit Rechtsklick > Inhalte einfügen > Werte ein.
  3. Speichere die Datei: Gehe zu Datei > Speichern unter und wähle den gewünschten Speicherort.

Praktische Beispiele

Beispiel 1: Speichern eines einzelnen Tabellenblatts

Wenn Du nur ein spezifisches Tabellenblatt speichern möchtest, kannst Du den Namen des Arbeitsblatts anpassen:

ActiveWorkbook.Worksheets("MeinTabelle").Cells.Copy

Beispiel 2: Speichern unter einem bestimmten Dateiformat

Möchtest Du die Datei im CSV-Format speichern, kannst Du die SaveAs-Funktion wie folgt anpassen:

WSNew.SaveAs Filename:=Pfad & Dateiname, FileFormat:=xlCSV

Tipps für Profis

  • Automatisiere den Prozess: Du kannst das Makro anpassen, um es automatisch bei bestimmten Ereignissen (z.B. beim Schließen der Datei) auszuführen.

  • Nutze Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um besser mit Laufzeitfehlern umzugehen:

On Error GoTo ErrorHandler
' Dein Code hier
Exit Sub
ErrorHandler:
MsgBox "Fehler: " & Err.Description

FAQ: Häufige Fragen

1. Kann ich mehrere Tabellenblätter gleichzeitig speichern?
Ja, Du kannst eine Schleife verwenden, um alle gewünschten Blätter zu durchlaufen und jeweils eine neue Datei zu speichern.

2. Was mache ich, wenn ich nur bestimmte Zellen speichern möchte?
Du kannst den Bereich anpassen, den Du kopierst. Statt ActiveSheet.Cells.Copy könntest Du z.B. ActiveSheet.Range("A1:C10").Copy verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige