Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Vor dem Speichern Formeln durch Ergebnis ersetzen
zurück: Worksheet Change weiter: Formel mit variablen Datei- und Blattnamen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
03. Jun 2007, 14:06
Rufname:
Wohnort: Leipzig

Vor dem Speichern Formeln durch Ergebnis ersetzen - Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Hallo zusammen,

da ich mit Excel wirklich erst ganz am Anfang stehe, bitte ich schon um Nachsicht für die Frage (sonst mach ich halt alles in Word oder VBA).

Ich habe ein Template (*.xlt) erstellt und gespeichert. Darin sind natürlich Formeln, z.B. =TEXT(HEUTE();"MMMM"). Ich möchte Folgendes erreichen:
  1. Wenn ich aus dem Template eine neue Mappe erstelle, zeigt dieses Feld den aktuellen Monat an. Das passt schon.
  2. Wenn ich die neu erstellte Mappe als *.xls speichere, sollen vor dem Speichern die Felder durch ihre Ergebnisse ersetzt werden, damit die so erstellte xls-Datei beim nächsten Öffnen nicht den aktuellen Monat anzeigt, sondern denjenigen, an dem sie gespeichert wurde. Das Template soll natürlich nicht geändert werden.
    An Punkt 2 bin ich noch. Ich habe versucht, im Template das Workbook_BeforeSave-Ereignis von DieseArbeitsmappe zu verwenden. Das ist aber eine ganz schlechte Wahl, denn dann werden beim Speichern des Templates dessen Formeln gelöscht. Twisted Evil
  3. Bis jetzt ersetze ich jeweils den Range einer Zelle durch sein Ergebnis:
    Code:
        Dim Tmp As String
       
        Tmp = Range("B18").Text
        Range("B18").Value = Tmp

    Geht das auch einfacher?

Nun ist es doch ein ganz schön langer Beitrag geworden. An sich ist Punkt 2 das Wichtigste. Wie macht man das in Excel?

Herzlichen Dank schon mal für Eure Geduld,
liebe Grüße
Lisa
Thomas Ramel
Microsoft Excel-MVP


Verfasst am:
03. Jun 2007, 14:14
Rufname: Thom
Wohnort: Glashütten - CH


AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Grüezi Lisa Smile

Eine aus einem Template erzeugte Mappe hat eine Eigenschaft, die Du hier ausnutzen kannst: sie hat noch keinen Pfadnamen, da sie noch nicht gespeichert worden ist.

Knüpfe also das Ablaufen des BeforeSave() an diese Prüfung, dann wird der Code nur dann ausgeführt, wenn die neu erstellte Mappe das erste Mal gespeichert wird.

Das Ersetzen von Formeln durch ihre Werte kannst Du auch wie unten dargestellt vornehmen - eine Scharnier-Variable ist da nicht notwendig.


Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   If ThisWorkbook.Path = "" Then

      Dim Ws        As Worksheet
      Set Ws = ActiveSheet

      With Ws.Cells.SpecialCells(xlCellTypeFormulas)
         .Value = .Value
      End With

   'Hier dein weiterer Code

   End If
End Sub

_________________
Mit freundlichen Grüssen

Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
03. Jun 2007, 14:19
Rufname:
Wohnort: Leipzig

AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Lieber Thomas,

das ging ja superschnell! Herzlichen Dank!

Und wenn ich die Lösung lese, ist es wieder interessant festzustellen, wie man den Wald vor Bäumen nicht sieht. Auf die gleiche Weise prüfe ich ja auch in Word, ob eine Datei bereits gespeichert ist. Kaum "wagt" man sich auf neues Terrain, meint man, hier sei alles ganz anders und schwieriger.

Ach, das ist ja wunderbar, dann kriege ich das heute noch fertig.

Ganz lieben Dank und noch einen schönen Sonntagnachmittag,

liebe Grüße
Lisa
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
03. Jun 2007, 14:58
Rufname:
Wohnort: Leipzig

AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Hallo Thomas,

da komm ich doch nochmal. Es leuchtet mir alles ein. Leider wird das Ereignis Workbook_BeforeSave des Templates beim Speichern einer daraus erstellten Datei gar nicht ausgelöst. Was kann man da noch falsch machen? Ich habe jetzt mal bloß eine MsgBox reingeschrieben, das Ereignis springt definitiv nicht an.

Interessant ist auch: Wenn ich in der neu erstellten Datei in den VBA-Editor gehe, ist das Template gar nicht geladen! Im Projekt-Fenster ist nur das Projekt (Mappe1) zu sehen.

Muss man da noch irgendwas im Template "einstellen"? Das Template habe ich erzeugt, indem ich es im Vorlagenverzeichnis mit Endung *.xlt abgespeichert habe.

Gruß, Lisa
Thomas Ramel
Microsoft Excel-MVP


Verfasst am:
03. Jun 2007, 15:09
Rufname: Thom
Wohnort: Glashütten - CH


AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Grüezi Lisa

Hast Du die Makros denn beim Erstellen der Mappe aus dem Template auch aktiviert?
Ohne aktivierte Makros kann das Ganze nicht klappen.

Ev. ist die MakroSicherheit auf 'Hoch' eingestellt?
Dann erfolgt die Nachfrage nicht und es wird auch kein Ereignis anspringen können.

Wie erstellst Du denn eine neue Mappe aus dem Template?
Welchen Namen träge es?
Nach dem Erstellen müsstest Du eine aktive Mappe haben, die den Namen des Templates im Rahmen des Programm-Fensters trägt.
Prüfe mal im VBA-Edirot im Projekt-Explorer ob eine solche mappe vorhanden ist und ob 'Diese Arbeitsmappe' in der Mappe den im Template gespeicherten Code denn auch enthält.
NB: Schliesse auch jeweils die Vorlagen-Datei wenn Du, basierend darauf, einen neue Mappe erzeugst.


Zu Templates und Excel im Allgemeinen.
Im Gegensatz zu Word besteht nach dem Erstellen einer Mappe basierend auf einer Vorlage keine Verbindung mehr zur Vorlage. Die neue Mappe ist im Prinzip eine 1:1-Kopie der Vorlagendatei - einfach ohne die Endung .xlt.
Jeglicher Code der in der Vorlage enthalten war ist auch in der neuen Mappe mit drin.

_________________
Mit freundlichen Grüssen

Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
03. Jun 2007, 15:29
Rufname:
Wohnort: Leipzig

AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Hallo Thomas,

ja, ich merke schon, es ist doch alles nicht so einfach, ich versuch's mal schrittweise:
  • Makrosicherheit steht auf Niedrig. Unter "Vertrauenswürdige Quellen" habe ich "Allen installierten Vorlagen und AddIns vertrauen" aktiviert. Der Punkt scheint es nicht zu sein.
  • Dann nähern wir uns: Ich erstelle eine neue Mappe aus dem Template: Datei - Neu - Allgemeine Vorlagen (im Arbeitsbereich). Im dann sich öffnenden Dialogfeld wähle ich das Template "MusterA.xlt" aus.
    Die neue Mappe heißt "Mappe5" in der Application.Caption.
    Im VBA-Editor gibt es im Project Explorer nur VBA Project (Mappe5). Von "MusterA" ist nichts zu sehen.
    • Die neue Mappe enthält ein jungfräuliches Modul DieseArbeitsmappe (aha!), komplett leer.
    • Weiter enthält sie im Modul Tabelle1 (2) den gleichen Code wie das Template (das hat geklappt).
      Edit:
    • Sie enthält ein weiteres Modules Tabelle 2 (Tabelle (1)) (das im Template nicht enthalten war!).
    • Ein Modul1 (normales Modul, das im Template vorhanden ist) ist gar nicht da.

  • Die Vorlage habe ich natürlich geschlossen, ehe ich eine neue Datei daraus erzeuge.

Daran scheint es zu liegen. Wie bringe ich das Template dazu, das Modul DieseArbeitsmappe "zu vererben" und natürlich auch Modul1? Bis jetzt erbt die Datei offenbar nur den Code in den Modulen Tabelle.

Gruß
Lisa
Thomas Ramel
Microsoft Excel-MVP


Verfasst am:
03. Jun 2007, 16:03
Rufname: Thom
Wohnort: Glashütten - CH

AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Grüezi Lisa

...dann würde ich mal frech behaupten, dass der Code nicht in der Vorlagen-Datei drin war als diese gespeichert worden ist.

Auch das Erstellen der neuen Mappe scheint mir nicht korrekt abzulaufen - diese müsste nämlich den Namen der Vorlage, gefolgt von einer Ziffer tragen.

Öffne daher nochmal die Vorlage zur Bearbeitung und prüfe im VBA-Editor, dass aller Code den Du benötigst dort auch wirklich vorhanden ist. Speichere sie dann erneut als Vorlage - zur Kontrolle mit einem neuen Namen.

Beende Excel und starte neu.

Erstelle dann über Datei/Neu .... die neue Mappe, die nun den Namen des Templates gefolgt 1 tragen muss.

Wenn dies geklappt hat, ist die Mappe mit allen Modulen und dem Code auch im VBA-Editor enthalten. ...und dann läuft auch der Code im BeforeSave().

_________________
Mit freundlichen Grüssen

Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
03. Jun 2007, 16:26
Rufname:
Wohnort: Leipzig

AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Lieber Thomas,

es ist wie verhext. Gleiches Ergebnis. Ich beschreibe nochmal genau meine Vorgehensweise:
  • Ich öffne meine Vorlage, die allen benötigten Code enthält. Sie enthält ein Tabellenblatt (Tabelle1) und im Editor 3 Module: DieseArbeitsmappe, Tabelle1 und Modul1 (normales Modul). In allen drei Modulen steht jetzt nur Testcode.
  • Ich speichere die Vorlage: Datei - Speichern unter - Dateityp *.xlt. Vorlagenverzeichnis wird automatisch ausgewählt. Ich vergebe einen neuen Namen "Versuch2.xlt"
  • Ich kontrolliere Versuch2.xlt, enthält die drei genannten Module wie oben und 1 Tabellenblatt (Tabelle1).
  • Ich schließe Excel und starte neu. Excel wird mit einer leeren Mappe geöffnet, trägt in der Caption: Mappe1.
  • Mit Datei - Neu - Versuch2.xlt erstelle ich eine neue Mappe. Sie enthält mein Tabellenblatt aus der Vorlage, es heißt allerdings: "Tabelle1(2)". Die Mappe trägt den Namen "Mappe1". Sie enthält ein weiteres Tabellenblatt namens "Tabelle1". (Hier scheint irgendwie die Ursache zu liegen. Dieses Verhalten weisen übrigens alle meine Templates auf).
    Sie enthält ein leeres Modul DieseArbeitsmappe.
    Das Modul1 (aus dem Template) ist gar nicht da.
    Sie enthält das Modul "Tabelle1 (Tabelle1(2)", das den Test-Code aus dem Template mitgebracht hat, und ein weiteres leeres Modul "Tabelle2 (Tabelle1)".
    (Woher diese zweite Tabelle 1) kommt, ist mir überhaupt nicht klar.)
  • Es wurde also nur das Modul Tabelle1 aus der Vorlage geerbt, der Rest nicht. Mir scheinen die anderen Module (also das leere Modul DieseArbeitsmappe und das leere neue Modul Tabelle1) irgendwoandersher zu stammen?

Sorry, dass ich so hilflos bin. Das Ganze ist mir völlig rätselhaft. Das Verzeichnis
C:\Programme\Microsoft Office\Office10\XLStart habe ich bereits komplett geleert.

Danke für Deine Geduld,
Lisa

Edit: Lieber Thomas,

gerade habe ich probeweise die Personl.xls aus dem Verzeichnis C:\Dokumente und Einstellungen\Administrator\Anwendungsdaten\Microsoft\Excel\XLStart auch noch gelöscht! Und hurra!! Jetzt wird die Mappe richtig erstellt. Alle Module sind richtig geerbt und kein zusätzliches leeres Tabellenblatt vorhanden. Also genau so, wie es sein soll. Das Ereignis springt brav an. Very Happy

Aber wie komme ich denn jetzt an meinen Code, der in der Personl.xls liegt? Crying or Very sad
War die am falschen Standort?

Liebe Grüße
Lisa
Thomas Ramel
Microsoft Excel-MVP


Verfasst am:
03. Jun 2007, 16:43
Rufname: Thom
Wohnort: Glashütten - CH

AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Grüezi Lisa

Für unsere Geduld mit den Besuchern des Forums sind wir ja bekannt- warum also nicht gegenüber einem Mit-Mod Wink


Das geschilderte Verhalten ist in der Tat eigenartig - Du bist wirklich sicher, dass der Code und das Modul in deinem Template enthalten waren und nicht etwa in einer anderen geöffneten Mappe oder der personl.xls?


Was passiert wenn Du ohne Excel zu öffnen einen Doppelklick auf die .xlt-Datei machst?
Zum testen kannst Du sie auch mal auf den Desktop legen - der Ordner spielt nicht wirklich eine Rolle.
Zitat:

Mit Datei - Neu - Versuch2.xlt erstelle ich eine neue Mappe. Sie enthält mein Tabellenblatt aus der Vorlage, es heißt allerdings: "Tabelle1(2)". Die Mappe trägt den Namen "Mappe1". Sie enthält ein weiteres Tabellenblatt namens "Tabelle1". (Hier scheint irgendwie die Ursache zu liegen. Dieses Verhalten weisen übrigens alle meine Templates auf).
Sie enthält ein leeres Modul DieseArbeitsmappe.
Das Modul1 (aus dem Template) ist gar nicht da.
Sie enthält das Modul "Tabelle1 (Tabelle1(2)", das den Test-Code aus dem Template mitgebracht hat, und ein weiteres leeres Modul "Tabelle2 (Tabelle1)".
(Woher diese zweite Tabelle 1) kommt, ist mir überhaupt nicht klar.)


Diese Beschreibung klingt danach als ob Du ein neues Tabellenblatt in die aktive Mappe einfügst und nicht eine neue Mappe erzeugst.


Daher teste mal mit dem Doppelklick.

_________________
Mit freundlichen Grüssen

Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
03. Jun 2007, 16:57
Rufname:
Wohnort: Leipzig

AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Lieber Thomas,

gerade habe ich probeweise die Personl.xls aus dem Verzeichnis C:\Dokumente und Einstellungen\Administrator\Anwendungsdaten\Microsoft\Excel\XLStart auch noch gelöscht! Und hurra!! Jetzt wird die Mappe richtig erstellt. Alle Module sind richtig geerbt und kein zusätzliches leeres Tabellenblatt vorhanden. Also genau so, wie es sein soll. Das Ereignis springt brav an. Very Happy

Nur wie komme ich jetzt an meinen Code aus Personl.xls? Es ist doch wirklich wie verhext.

Liebe Grüße
Lisa
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
03. Jun 2007, 17:34
Rufname:
Wohnort: Leipzig

AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Lieber Thomas,

bei dem ganzen Hin- und Herkopieren in den Ordnern war ich wohl vorhin schon etwas genervt. Mittlerweile geht es, aber erst, nachdem ich die personl.xls aus dem Vorlagenordner gelöscht hatte. Vorher war nichts zu machen. Danach habe ich sie wieder hineinkopiert. Und bis jetzt geht es.

Hab nochmal ganz herzlichen Dank für den geopferten Nachmittag und Deine Geduld!

Liebe Grüße
Lisa
Thomas Ramel
Microsoft Excel-MVP


Verfasst am:
03. Jun 2007, 18:13
Rufname: Thom
Wohnort: Glashütten - CH


AW: Vor dem Speichern Formeln durch Ergebnis ersetzen - AW: Vor dem Speichern Formeln durch Ergebnis ersetzen

Nach oben
       Version: Office XP (2002)

Grüezi Lisa

Fein, dass es nun klappt Smile


BTW: die Personl.xls hat im Vorlagen-Ordner eigentlich nichts zu suchen - sie gehört wie du richtig gesagt hast in den Ordner XLSTART.

_________________
Mit freundlichen Grüssen

Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Formeln verkürzen 4 HajoPei 2462 23. Apr 2012, 10:07
HermannZ Formeln verkürzen
Keine neuen Beiträge Excel Formeln: Mehrere Formeln in einer Zelle 20 loui 41463 01. Jul 2011, 14:42
Gast Mehrere Formeln in einer Zelle
Keine neuen Beiträge Excel Formeln: bei positivem ergebnis ein + zeichen vor dem wert 4 Julio 1335 16. März 2005, 12:55
Julio bei positivem ergebnis ein + zeichen vor dem wert
Keine neuen Beiträge Excel Formeln: Formeln verschieben ohne das sich die Bezüge ändern. 2 Demandred21 854 18. Feb 2005, 13:04
Demandred21 Formeln verschieben ohne das sich die Bezüge ändern.
Keine neuen Beiträge Excel Formeln: Formel erweitern, so dass das Ergebnis eingeschränkt wird 6 Richyf 598 12. Feb 2005, 20:34
AnBo Formel erweitern, so dass das Ergebnis eingeschränkt wird
Keine neuen Beiträge Excel Formeln: Einzelne Wörter löschen (ersetzen/formel) 2 Michi_wien 4587 29. Jan 2005, 12:33
Gast Einzelne Wörter löschen (ersetzen/formel)
Keine neuen Beiträge Excel Formeln: Fortlaufende Rechnungsnummer wie speichern? 2 MrBackslash 5519 21. Jan 2005, 09:17
Gast Fortlaufende Rechnungsnummer wie speichern?
Keine neuen Beiträge Excel Formeln: keine 0 als Ergebnis obwohl 0 das Ergebnis 1 acki-bm 400 03. Jan 2005, 16:17
acki-bm keine 0 als Ergebnis obwohl 0 das Ergebnis
Keine neuen Beiträge Excel Formeln: Formeln anzeigen und Formeln mit Bezug kopieren 3 birgitrb 2270 01. Okt 2004, 16:22
Gast Formeln anzeigen und Formeln mit Bezug kopieren
Keine neuen Beiträge Excel Formeln: Farben in Formeln anwendbar? 6 ossi1981 1857 24. Sep 2004, 09:06
ossi1981 Farben in Formeln anwendbar?
Keine neuen Beiträge Excel Formeln: Text bzw. Wert ersetzen durch ein Symbol 2 nici 2386 25. Aug 2004, 12:03
NICI Text bzw. Wert ersetzen durch ein Symbol
Keine neuen Beiträge Excel Formeln: probleme mit formeln im excel 2 andrea25ew 926 06. Jul 2004, 18:20
freakbrother probleme mit formeln im excel
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Word Serienbriefe