Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ab einem Datum Formeln in Werte umwandeln

Ab einem Datum Formeln in Werte umwandeln
30.05.2006 17:32:41
Fritz
Hallo Excelfreunde,
ich benötige die Hilfe von allen VBA-Experten:
In meiner Exceldatei sollen alle Formeln in allen Tabellen kopiert und als Werte eingefügt werden, wenn in der Tabelle "Daten" in der Zelle A1 ein Datum eingetragen ist und dieses Datum älter als das Systemdatum zum Zeitpunkt des Öffnens der Exceldatei ist.
Allen Helfern bereits an dieser Stelle vielen Dank.
Gruß
Fritz

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ab einem Datum Formeln in Werte umwandeln
30.05.2006 19:28:02
Franz
Hallo Fritz,
eines der folgenden beiden Makros tuts.
Variante 1:
Kopiert alle Daten und fügt die Werte in die Zellen

Private Sub Workbook_Open()
' wandelt alle Formeln in Werte um wenn Datum in A1 kleiner als Heute ist.
Dim Datum As Range, wks As Worksheet
Set Datum = ThisWorkbook.Sheets("Daten").Range("A1")
If Not IsEmpty(Datum) And Datum.Value < Date Then
For Each wks In ThisWorkbook.Worksheets
With wks
.UsedRange.Copy
.Cells(.UsedRange.Row, .UsedRange.Column).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
.Activate
.Range("A1").Select
End With
Next wks
ThisWorkbook.Sheets("Daten").Activate
End If
End Sub

Variante 2:
sucht alle Zellen, deren Formel-Inhalte mit einem Gleichheitszeichen beginnen.
Kleines Problem: Zellen, deren Inhalt mit Hochkomme und Gleichheitszeichen beginnen ('=). Hier wird der Text-Inhalt in eine Formel verwandelt.

Private Sub Workbook_Open()
' wandelt alle Formeln in Werte um wenn Datum in A1 kleiner als Heute ist.
Dim Datum As Range, wks As Worksheet, Zelle As Range
Set Datum = ThisWorkbook.Sheets("Daten").Range("A1")
If Not IsEmpty(Datum) And Datum.Value < Date Then
For Each wks In ThisWorkbook.Worksheets
For Each Zelle In wks.UsedRange
If Not IsEmpty(Zelle) And Left(Zelle.Formula, 1) = "=" Then
Zelle.Value = Zelle.Value
End If
Next Zelle
Next wks
End If
End Sub

Gruß
Franz
Anzeige
AW: Ab einem Datum Formeln in Werte umwandeln
30.05.2006 19:59:28
Fritz
Hallo Franz,
gleich zwei Lösungsvorschläge, super!
Beim Test zeigte sich ein Problem aus der Tatsache, dass sämtliche Tabellenblätter geschützt sind. Die Tabelle "Auswertung" mit dem Kennwort "Test", alle anderen Tabellen mit dem Kennwort "Fritz". Ich würde das gerne so belassen. Daher meine Frage: Kannst Du mir das Makro 1 entsprechend ändern oder ist Dir das zu umständlich? (Nur)Unter der Voraussetzung, dass eine Abänderung des Makros bei einem gleichen Passwort in aller Tabellen erheblich leichter zu bewerkstelligen ist, würde ich bei allen Tabellen das Passwort "Fritz" verwenden.
Vielen Dank für Deine Unterstütung
Gruß
Fritz
Anzeige
AW: Ab einem Datum Formeln in Werte umwandeln
30.05.2006 22:23:40
Franz
Hallo Fritz,
hier die Ergänzung für den Passwort-Schutz

Private Sub Workbook_Open()
' wandelt alle Formeln in Werte um wenn Datum in A1 kleiner als Heute ist.
Dim Datum As Range, wks As Worksheet
Set Datum = ThisWorkbook.Sheets("Daten").Range("A1")
If Not IsEmpty(Datum) And Datum.Value < Date Then
For Each wks In ThisWorkbook.Worksheets
Select Case wks.Name
Case "Auswertung"
wks.Unprotect Password:="Test"
Case Else
wks.Unprotect Password:="Fritz"
End Select
With wks
.UsedRange.Copy
.Cells(.UsedRange.Row, .UsedRange.Column).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
.Activate
.Range("A1").Select
End With
Select Case wks.Name
Case "Auswertung"
wks.Protect Password:="Test", DrawingObjects:=True, Contents:=True, Scenarios:=True
Case Else
wks.Protect Password:="Fritz", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Select
Next wks
ThisWorkbook.Sheets("Daten").Activate
End If
End Sub

mfg
Franz
Anzeige
AW: Ab einem Datum Formeln in Werte umwandeln
31.05.2006 12:18:41
Fritz
Hallo Franz,
vielen Dank für Deine immense Arbeit.
Habe getestet und eine Fehlermeldung bekommen, weil wohl nicht alle (Formel-)Zellen die gleiche Größe haben.
Ich hoffe, Du hast auch dafür eine Lösung parat. Allerdings möchte ich auch nicht, dass Du Dir zu viel Arbeit machst. Ist mir inzwischen auch schon etwas peinlich.
Viele Grüße
F. Jakob
AW: Ab einem Datum Formeln in Werte umwandeln
31.05.2006 14:48:53
Franz
Hallo Fritz,
wahrscheinlich hast du in den Tabellen verbundene Zellen. Das führt bei Kopieraktionen dann zu Problemen.
Probiere mal die Variante 2, da sollte es dieses Problem evtl. nicht geben, bin mir aber nicht 100% sicher.
Tipp:
Verbinden von Zellen in Excel möglichst vermeiden. Zum Zentrieren über mehrere Spalten kann man das horizontale Zellformat "Zentriert über Spalten" verwenden. Sieht optisch ähnlich aus, bereitet aber weniger Probleme.
Gruß
Franz
Anzeige
AW: Ab einem Datum Formeln in Werte umwandeln
31.05.2006 16:21:15
Fritz
Hallo Franz,
ich werds probieren. Falls Probleme auftreten, melde ich mich.
Vielen Dank für die Unterstützung.
Gruß
Fritz

346 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige