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

Forumthread: Arbeitsmappe ohne Formeln und Makros speichern

Arbeitsmappe ohne Formeln und Makros speichern
24.05.2009 19:08:20
Mark
Hallo zusammen,
gibt es in Excel eine einfache Möglichkeit eine komplette Excel Arbeitsmappe die Makros und Formeln enthält abzuspeichern bei der nur die Werte gespeichert werden und Makros und Formeln verloren gehen?
Ich könnte zwar ein Marko aufzeichnen, bei dem alle Tabellenblätter in Werte umgewandelt werden, aber da es sich um ca. 20 Blätter handelt ist das etwas umständlich.
Vielen Dank!
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsmappe ohne Formeln und Makros speichern
24.05.2009 19:31:46
Mark
Hallo Hajo,
Danke für die Datei - mein Problem ist jedoch noch dass in meiner Arbeitsmappe Pivottabellen und Diagramme enthalten sind die durch das Makro ebenfalls gelöscht werden. Kann ich das irgendwie umgehen.
Also dass er die Datei wie in Deinem Beispiel abspeichert aber Pivots und Diagramme erhalten bleiben?
Anzeige
AW: Makro-Lösung
24.05.2009 20:03:20
Daniel
Hi
hier mal ein Makro, das von der aktiven Datei eine Kopie ohne Makros anlegt, die alte Datei löscht und die neue Datei unter dem alten Dateinamen speichert (dieser Teil ist aber erstmal auskommentiert)

Sub DateiKopierenNurWerte()
Dim wbNeu As Workbook
Dim wbAlt As Workbook
Dim sh As Worksheet
Dim i As Long
Dim DatName As String
Set wbAlt = ActiveWorkbook
Set wbNeu = Workbooks.Add(wbAlt.Worksheets.Count)
'--- Daten kopieren nur Werte
For i = 1 To wbAlt.Worksheets.Count
wbAlt.Sheets(i).Cells.Copy
wbNeu.Sheets(i).Cells(1, 1).PasteSpecial xlPasteValues
wbNeu.Sheets(i).Cells(1, 1).PasteSpecial xlPasteFormats
wbNeu.Sheets(i).Name = wbAlt.Sheets(i).Name
Next
'--- altes Datei löschen, neue Datei unter gleichem Namen Speichern
'--- (diesen Teil solltest du lieber erstmal auskommentiert lassen)
'DatName = wbAlt.FullName
'wbAlt.Saved = True
'wbAlt.Close 'alte Datei schließen
'Kill DatName 'alte Datei löschen
'wbNeu.SaveAs DatName 'neue Datei unter alten Namen speichern
End Sub


genauer gesagt, legt dieses Marko eine neue Datei an und kopiert Werte, Formate und Blattnamen der aktiven Datei in eine neue Datei. Dabei gehen Makros und Seiteneinstellungen (Druckbereiche) allerdings verloren (für Makros war das ja von dir gewünscht)
im 2. Teil, den ich vorerst deaktiviert habe, wird dann die alte Datei gelöscht und die neue unter dem alten Namen gespreichert.
Dh. dieses Makro solltest du in einer 3. unabhängigen Datei anlegen.
Gruß, Daniel

Anzeige
AW: Makro-Lösung
24.05.2009 20:14:04
Mark
erhalte Fehlermeldung bei folgender Zeile:
Set wbNeu = Workbooks.Add(wbAlt.Worksheets.Count)
AW: Makro-Lösung
24.05.2009 20:23:26
Daniel
Hi
ich erhalte keine Fehlermeldung, bei mir ist alles in Ordnung.
um ne Ferndiagnose stellen zu können, ist deine Fehlerbeschreibung allerdings etwas dürftig.
Gruß, Daniel
AW: Makro-Lösung
24.05.2009 20:45:54
Mark
ja sorry, war evtl. ein wenig zu dürftig die Aussage von mir.
Ich erhalten einen Laufzeitfehler und die Meldung "Die Methode 'Add' für das Objekt 'Workbooks' ist fehlgeschlagen"
Anzeige
AW: neuer Versuch
24.05.2009 22:31:18
Daniel
HI
ich glaube ich hab meinen Fehler gefunden.
probier mal das hier:

Sub DateiKopierenNurWerte()
Dim wbNeu As Workbook
Dim wbAlt As Workbook
Dim sh As Worksheet
Dim i As Long
Dim Anz As Long
Dim DatName As String
Set wbAlt = ActiveWorkbook
Anz = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = wbAlt.Sheets.Count
Set wbNeu = Workbooks.Add
Application.SheetsInNewWorkbook = Anz
'--- Daten kopieren nur Werte
For i = 1 To wbAlt.Worksheets.Count
wbAlt.Sheets(i).Cells.Copy
wbNeu.Sheets(i).Cells(1, 1).PasteSpecial xlPasteValues
wbNeu.Sheets(i).Cells(1, 1).PasteSpecial xlPasteFormats
wbNeu.Sheets(i).Name = wbAlt.Sheets(i).Name
Next
'--- altes Datei löschen, neue Datei unter gleichem Namen Speichern
'--- (diesen Teil solltest du lieber erstmal auskommentiert lassen)
'DatName = wbAlt.FullName
'wbAlt.Saved = True
'wbAlt.Close 'alte Datei schließen
'Kill DatName 'alte Datei löschen
'wbNeu.SaveAs DatName 'neue Datei unter alten Namen speichern
End Sub


Gruß, Daniel

Anzeige
AW: neuer Versuch
24.05.2009 22:40:41
Mark
Hallo Daniel,
funktioniert nun - leider ist es wie bei Hajo vorher dass meine Pivot-Tabellen und Diagramme verloren gehen bzw. nicht in die neue Arbeitsmappe mit übernommen werden.
Gruß,
Mark
AW: neuer Versuch
24.05.2009 22:48:14
Josef
Hallo Mark,
das sollte eigentlich reichen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub DateiFix()
  Dim objWS As Worksheet
  
  With ThisWorkbook
    For Each objWS In .Worksheets
      objWS.UsedRange = objWS.UsedRange.Value
    Next
    
    deleteAllCodeAndModules .Name
    
    .Save
  End With
  
End Sub


Sub deleteAllCodeAndModules(ByVal WBook As String)
  Dim objVBComp As Object
  With Workbooks(WBook).VBProject
    For Each objVBComp In .vbcomponents
      If objVBComp.Type = 100 Then
        With .vbcomponents(objVBComp.Name).CodeModule
          .DeleteLines 1, .CountOfLines
        End With
      Else
        .vbcomponents.Remove objVBComp
      End If
    Next
  End With
End Sub

Gruß Sepp

Anzeige
AW: neuer Versuch
25.05.2009 18:40:22
Mark
Hallo Sepp,
vielen Dank! Lösung funktioniert!
Leider erhalte ich wegen der Pivottabelle noch folgenden Fehler:
"Laufzeitfehler 1004
Ein Nullwert kann nicht als Element oder Feldname in einen PivotTable-Bericht aufgenommen werden"
Die Pivot kann ich jedoch in der Ursprungsdatei aktualisieren ohne dass ein Fehler kommt.
Nur beim Ausführen des VBA Makros erhalte ich die Meldung und das Makro wird unterbrochen.
Anzeige
AW: neuer Versuch
25.05.2009 22:56:18
Josef
Hallo Mark,
dann versuch's mal so.
Sub DateiFix()
  Dim objWS As Worksheet
  
  With ThisWorkbook
    For Each objWS In .Worksheets
      If objWS.PivotTables.Count = 0 Then objWS.UsedRange = objWS.UsedRange.Value
    Next
    
    deleteAllCodeAndModules .Name
    
    .Save
  End With
  
End Sub

Gruß Sepp

Anzeige
AW: neuer Versuch
26.05.2009 17:41:52
Mark
1000 Dank! funktioniert einwadfrei!
;

Forumthreads zu verwandten Themen

Anzeige
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

Arbeitsmappe ohne Formeln und Makros speichern


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei ohne Formeln oder Makros zu speichern, kannst du ein VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub DateiKopierenNurWerte()
       Dim wbNeu As Workbook
       Dim wbAlt As Workbook
       Dim i As Long
       Dim Anz As Long
       Set wbAlt = ActiveWorkbook
       Anz = Application.SheetsInNewWorkbook
       Application.SheetsInNewWorkbook = wbAlt.Sheets.Count
       Set wbNeu = Workbooks.Add
       Application.SheetsInNewWorkbook = Anz
    
       '--- Daten kopieren nur Werte
       For i = 1 To wbAlt.Worksheets.Count
           wbAlt.Sheets(i).Cells.Copy
           wbNeu.Sheets(i).Cells(1, 1).PasteSpecial xlPasteValues
           wbNeu.Sheets(i).Cells(1, 1).PasteSpecial xlPasteFormats
           wbNeu.Sheets(i).Name = wbAlt.Sheets(i).Name
       Next
    
       '--- altes Datei löschen, neue Datei unter gleichem Namen speichern
       '--- (diesen Teil solltest du lieber erstmal auskommentiert lassen)
       'Dim DatName As String
       'DatName = wbAlt.FullName
       'wbAlt.Saved = True
       'wbAlt.Close 'alte Datei schließen
       'Kill DatName 'alte Datei löschen
       'wbNeu.SaveAs DatName 'neue Datei unter alten Namen speichern
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um die Excel-Datei ohne Formeln zu speichern.


Häufige Fehler und Lösungen

  • Laufzeitfehler bei Workbooks.Add: Wenn du einen Laufzeitfehler erhältst, stelle sicher, dass die Anzahl der Arbeitsblätter korrekt ist. Setze die Anzahl der neuen Blätter mit Application.SheetsInNewWorkbook richtig.

  • Pivot-Tabellen und Diagramme verloren: Wenn du die Pivottabellen und Diagramme in deiner Excel-Datei nicht verlieren möchtest, verwende ein modifiziertes Makro, das nur die Blätter ohne Pivot-Tabellen verarbeitet:

    If objWS.PivotTables.Count = 0 Then
       objWS.UsedRange = objWS.UsedRange.Value
    End If

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch manuell eine Excel-Datei ohne Formeln speichern:

  1. Markiere die Zellen, die du speichern möchtest.
  2. Kopiere die Zellen (CTRL + C).
  3. Klicke mit der rechten Maustaste auf die Zielzelle und wähle Inhalte einfügen.
  4. Wähle Werte aus dem Kontextmenü, um nur die Werte zu speichern.

Praktische Beispiele

  1. Beispiel: Mehrere Blätter speichern: Verwende das oben genannte VBA-Makro, um eine Excel-Datei ohne Formeln zu speichern, die mehrere Blätter enthält.

  2. Beispiel: Excel Tabelle ohne Formeln speichern: Wenn du nur eine Arbeitsmappe speichern möchtest, kannst du das Makro anpassen, um nur bestimmte Blätter zu wählen.


Tipps für Profis

  • Verwende den xlPasteValues-Option, um sicherzustellen, dass nur die Werte und nicht die Formeln gespeichert werden.
  • Wenn du oft Excel-Dateien ohne Formeln speicherst, speichere das Makro in deiner persönlichen Makroarbeitsmappe, um schnellen Zugriff zu haben.
  • Achte darauf, vor dem Speichern eine Sicherungskopie deiner Datei zu erstellen, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich eine Excel-Datei ohne Makros speichern?
Verwende das VBA-Makro, um die Datei zu speichern und dabei alle Makros zu entfernen.

2. Gehen meine Formatierungen verloren, wenn ich nur Werte speichere?
Mit dem richtigen Makro kannst du sowohl die Werte als auch die Formatierungen beibehalten, jedoch keine Formeln oder Makros.

3. Kann ich Excel auch ohne Pivottabellen speichern?
Ja, passe das Makro so an, dass es nur die Blätter ohne Pivottabellen bearbeitet.

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