[Excel] [2007] Benötige VBA-Code/Makro - Alle Formeln in ges. Arbeitsmappe löschen

Hallo zusammen,

ich hoffe mir kann jemand von euch weiterhelfen.

Ich habe eine Excel Arbeitsmappe die sozusagen die "Endanzeigemappe" des gesamten Projekts darstellt.
Sie zieht sich aus mehreren anderen Dateien die Ergebnisse der aktuellen Kalenderwoche, bereitet diese in einer automatisch formatierten Jahresliste auf und Färbt die Werte je nach Änderung im Vergleich zur letzen Woche ein.

Diese End-Datei besteht praktisch also rein aus Formeln, und wird am Ende der Bearbeitung nur geöffnet und unter dem Anhang des aktuellen Tages gespeichert ([Dateiname]_[heutiger Tag]).
Dann müssen noch "kurz" auf allen Tabellenblättern die Formeln Entfernt (bzw. durch Werte ersetzt) werden, und nochmal speichern - Fertig.

Genau diesen letzten Schritt würde ich den Benutzer der Datei aber gerne per Makro lösen lassen...

Wer kann mir da helfen?

Über die Suche habe ich nur Makros gefunden, die einen Bereits vorher Definierten Bereich in Werte umwandeln, oder ein bestimmtes Tabellenblatt:
Code:
Option Explicit

Sub Formeln loeschen
          With UsedRange
                .Value = .Value
          End With
End Sub

Diese bringen mir jedoch nichts, bzw. weiß ich nicht wie ich das Makro umbauen müsste.

Was müsste man daraus machen um ein Makro zu erhalten, welches die gesamte Datei in Werte umwandelt?
(hierbei sei noch zu erwähnen, dass es in Zukunft neue Tabellenblätter geben wird, deren Name ich heute nicht kenne. Die Namen lassen sich aber schon erschließen, denn sie werden immer "Beispiel_[Jahreszahl]" lauten.)

Gibt es so ein Makro?


Oder kann ich evtl. eine besondere Speicherungsart wählen?
(Allerdings müssten in diesem Fall dann aber auch alle bedingten Formatierungen als fest übernommen werden)

Wer weiß Hilfe?


Danke,
Mfg, Frank
 
Zuletzt bearbeitet:
Dein Problem lässt sich relativ einfach lösen

Visual Basic:
Dim Spalte as Long
Dim Zeile as Long
Dim Dummy as Variant  'Variable zum aufnehmen eines Zellenwertes

For Spalte=1 to LastColumn   'Mir fällt jetzt gerade nicht ein, wie man die letzte Spalte ermittelt

   For Zeile=1 to LastRow    'Siehe oben
     
           Dummy=Sheets("MeinTabellenName").Cells(Spalte,Zeile).Value   'Speicher den Zellenwert
           Sheets("MeinTabellenName").Cells(Spalte,Zeile).ClearContents   'Lösche Formel aus Zelle
           Sheets("MeinTabellenName").Cells(Spalte,Zeile).Value=Dummy   'Weise Wert der Zelle zu

   Next

Next

Mal so als Ansatz....
 
Es gibt verschiedene Möglichkeiten denke ich. Aber ich würde es so versuchen:
Visual Basic:
    For Each ws In ThisWorkbook.Worksheets
        With ws.Cells
            .Copy
            .PasteSpecial Paste:=xlPasteValues
        End With
    Next ws
 
Grüezi zusammen

Oder noch direkter ohne Pasten:


Code:
For Each ws In ThisWorkbook.Worksheets
    ws.UsedRange.Value = ws.UsedRange.Value
Next ws
 

Neue Beiträge

Zurück