Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1088to1092
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
Inhaltsverzeichnis

Formeln in Werte umwandeln

Formeln in Werte umwandeln
alias2k
Hallo Leute,
ich habe folgendes Problem.
Ich habe eine Tabelle mit Formeln erstellt. Die Formel (in der Tabelle 1) zieht sich die Werte aus der Tabelle 2.
Da die Tabelle von dritten benutzt wird, die sich nicht mit Excel auskennen, habe ich die Formeln für die komplette Tabelle übernommen und ein Makro erstellt das die Formeln in Werte umwandelt, wenn die Tabelle gespeichert wird.
Jetzt ist es aber so, dass das Makro alle Formeln berechnet, auch die, die keine Werte haben.
Da die berechnung zu lange dauert, bitte ich euch um ein Ratschlag, wie ich ein Befehl schreiben kann damit er nur Formeln berechnet die auch ein Wert haben.
Oder jemand eine Idee hat, wie ich es etwas anders machen kann!
Es muss aufjeden Fall so sein, dass die Formel für die ganze Tabelle gespeichert wird, da sie laufend erweitert wird und das die Formeln die ein Wert haben auch als Werte abgespeichert werden.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Rückfragen
20.07.2009 00:30:04
Erich
Hallo Vorname, ( zu Vornamen und Nicknames schau bitte mal in die Forums-FAQ )
"habe ich die Formeln für die komplette Tabelle übernommen"
Was bedeutet das konkret? Die "komplette Tabelle" hat seeeeehr viele Zellen...

"ein Makro erstellt das die Formeln in Werte umwandelt, wenn die Tabelle gespeichert wird"

Ist das vielleicht ein BeforeSave-Makro? Zeigst du uns das?
"dass das Makro alle Formeln berechnet, auch die, die keine Werte haben"
JEDE Formel hat einen Wert. Auch z. B. "" oder 0 oder #DIV/0! sind Werte.
Es gibt also keine Formeln ohne Wert, die man von der Berechnung ausschließen könnte.
Wenn berechnet wird, dann alle Formeln eines Tabellenblatts.
Und: Nicht das Makro berechnet die Werte, sondern Excel. Ein Makro kann die Berechnung anstoßen.
"Es muss auf jeden Fall so sein, dass die Formel für die ganze Tabelle gespeichert wird"
Das glaube ich nicht. Das Gewünschte ließe sich sehr wahrscheinlich einfacher erreichen.
Kannst du uns dein Problem hiernach etwas genauer beschreiben?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort (so ein Gruß am Ende schadet nicht)
Anzeige
AW: Rückfragen
20.07.2009 02:33:14
alias2k
Hallo Erich.
Also ich weiß, dass Excel viele Zellen hat.
Ich habe die Formel für drei komplette Spalten übernommen. Bis es nicht mehr geht.
Es ist ein BevoreSave. Hier:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim zell As Range
With Tabelle1
On Error GoTo ENDE
For Each zell In .UsedRange.SpecialCells(xlCellTypeFormulas)
If Trim(zell.Text)  "" Then zell.Value = zell.Value
Next
End With
ENDE:
If Err.Number  0 Then _
MsgBox "Fehler: " & Err.Number & " " & _
Err.Description, , "Formeln?"
End Sub
______________________
Das Problem:
Tabelle 1 ist eine Liste die immer fortgeführt wird. Da werden z.b. Lieferantennamen, Datum, Warenwert, usw. eingetragen. Um wiederkehrende Informationen nicht jedesmal erneut schreiben zu müssen habe ich den SVERWEIS aus der Tabelle 2 gemacht, wo alle Lieferanten mit den Namen, Zahlungbedingungen usw. ausgefährt sind. Damit, falls jemand was aus der Tabelle 2 löscht oder ändert, nicht alles in der Tabelle 1 ändert, wollte ich, dass die Formeln in Werte umgeschrieben werden.
Doch ist es zu aufwändig immer die Zellen zu makieren und dann als Werte wieder einzufügen.
Deswegen habe ich dann den Makro geschrieben.
Jetzt berechnet aber Excel alle Formeln die ich geschrieben habe.
Und da ich ja schon erwähnt habe, dass ich drei Spalten Komplett mit Formeln habe.
Dauert der Vorgang sehr, sehr lange.
Gruß
alias2k
Anzeige
AW: Rückfragen
20.07.2009 02:34:59
alias2k
Hallo Erich.
Also ich weiß, dass Excel viele Zellen hat.
Ich habe die Formel für drei komplette Spalten übernommen. Bis es nicht mehr geht.
Es ist ein BevoreSave. Hier:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim zell As Range
With Tabelle1
On Error GoTo ENDE
For Each zell In .UsedRange.SpecialCells(xlCellTypeFormulas)
If Trim(zell.Text)  "" Then zell.Value = zell.Value
Next
End With
ENDE:
If Err.Number  0 Then _
MsgBox "Fehler: " & Err.Number & " " & _
Err.Description, , "Formeln?"
End Sub
______________________
Das Problem:
Tabelle 1 ist eine Liste die immer fortgeführt wird. Da werden z.b. Lieferantennamen, Datum, Warenwert, usw. eingetragen. Um wiederkehrende Informationen nicht jedesmal erneut schreiben zu müssen habe ich den SVERWEIS aus der Tabelle 2 gemacht, wo alle Lieferanten mit den Namen, Zahlungbedingungen usw. ausgefährt sind. Damit, falls jemand was aus der Tabelle 2 löscht oder ändert, nicht alles in der Tabelle 1 ändert, wollte ich, dass die Formeln in Werte umgeschrieben werden.
Doch ist es zu aufwändig immer die Zellen zu makieren und dann als Werte wieder einzufügen.
Deswegen habe ich dann den Makro geschrieben.
Jetzt berechnet aber Excel alle Formeln die ich geschrieben habe.
Und da ich ja schon erwähnt habe, dass ich drei Spalten Komplett mit Formeln habe.
Dauert der Vorgang sehr, sehr lange.
Gruß
alias2k
Anzeige
AW: Rückfragen
20.07.2009 02:40:30
alias2k
Hallo Erich.
Also ich weiß, dass Excel viele Zellen hat.
Ich habe die Formel für drei komplette Spalten übernommen. Bis es nicht mehr geht.
Es ist ein BevoreSave. Hier:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim zell As Range
With Tabelle1
On Error GoTo ENDE
For Each zell In .UsedRange.SpecialCells(xlCellTypeFormulas)
If Trim(zell.Text)  "" Then zell.Value = zell.Value
Next
End With
ENDE:
If Err.Number  0 Then _
MsgBox "Fehler: " & Err.Number & " " & _
Err.Description, , "Formeln?"
End Sub
______________________
Das Problem:
Tabelle 1 ist eine Liste die immer fortgeführt wird. Da werden z.b. Lieferantennamen, Datum, Warenwert, usw. eingetragen. Um wiederkehrende Informationen nicht jedesmal erneut schreiben zu müssen habe ich den SVERWEIS aus der Tabelle 2 gemacht, wo alle Lieferanten mit den Namen, Zahlungbedingungen usw. ausgefährt sind. Damit, falls jemand was aus der Tabelle 2 löscht oder ändert, nicht alles in der Tabelle 1 ändert, wollte ich, dass die Formeln in Werte umgeschrieben werden.
Doch ist es zu aufwändig immer die Zellen zu makieren und dann als Werte wieder einzufügen.
Deswegen habe ich dann den Makro geschrieben.
Jetzt berechnet aber Excel alle Formeln die ich geschrieben habe.
Und da ich ja schon erwähnt habe, dass ich drei Spalten Komplett mit Formeln habe.
Dauert der Vorgang sehr, sehr lange.
Gruß
alias2k
Anzeige
AW: Rückfragen
20.07.2009 07:40:04
Erich
Hallo Vorname, ( in die Forums-FAQ hast du wohl noch nicht geschaut...)
diese Beispielmappe kommt ganz ohne Formeln aus: https://www.herber.de/bbs/user/63291.xls
Wäre das nicht eine einfachere Lösung?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Rückfragen
20.07.2009 11:32:13
Klaus
Hallo Erich.
Also ich habe auch eine Beispielmappe erstellt. https://www.herber.de/bbs/user/63294.xlsx
Es sollte einfach so sein, dass beim eingeben der Kundennummer in der Tabelle 1 der Name, zahlungsbedingungen und Land auftauchen sollten.
Gruß
Klaus
Anzeige
Bitte kein xlsx oder xlsm
20.07.2009 11:58:22
Erich
Hi Klaus,
würdest du bitte die Mappe noch mal als .xls (also nicht im Excel2007-Format) hochladen?
Dann könnte auch ich sie öffnen.
Wie hast du denn diese Mappe mit Version 11 - Office 2003 erstellt?
Nicht nur nebenbei:
Was sagst du denn zu dem Beispiel, das ich für dich hochgeladen habe?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Bitte kein xlsx oder xlsm
20.07.2009 21:26:04
Klaus
Oh tut mir leid. hier nochmal https://www.herber.de/bbs/user/63306.xls
Ja ich habe auf der Arbeit Excel 2003. Zu hause habe ich Version 11.
Das Beispiel war ganz gut, danke! Aber wie hast du es gemacht? Also ohne Formeln?
Gruß
Klaus
Anzeige
Beispielmappe mit Code zurück
21.07.2009 00:32:56
Erich
Hi Klaus,
hier der Code, der deine Beispielmappe (hoffentlich) zum Laufen bringt:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngLief As Range, rngB As Range, rngC As Range
Set rngB = Intersect(Target, Cells(2, 3).Resize(Rows.Count - 1))
If Not rngB Is Nothing Then
With Sheets("Tabelle2")
Set rngLief = .Range("A2:D" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With
For Each rngC In rngB
If IsEmpty(rngC) Then
Cells(rngC.Row, 4).ClearContents
Cells(rngC.Row, 14).ClearContents
Cells(rngC.Row, 18).ClearContents
Else
Cells(rngC.Row, 4) = Application.VLookup(rngC, rngLief, 2, 0)
Cells(rngC.Row, 14) = Application.VLookup(rngC, rngLief, 4, 0)
Cells(rngC.Row, 18) = Application.VLookup(rngC, rngLief, 3, 0)
End If
Next rngC
End If
End Sub
In der Tabelle stehen in den Spalten D, N und R keine Formeln.
Der Zellwert wird in VBA aber durch einen Formelaufruf (VLookup = SVERWEIS) ermittelt.
Nachträgliche Änderungen in Tabelle2 wirken sich so NICHT auf die Werte in Tabelle1 aus.
Sie werden erst bei der nächtens Änderung in Tabelle1, Spalte B wirksam.
Probiers halt mal aus: https://www.herber.de/bbs/user/63308.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Beispielmappe mit Code zurück
21.07.2009 12:07:49
Klaus
Hey Erich,
Hat alles wunderbar geklappt!
Danke.
Gruß
Klaus

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige