#WERT bei selbst erstellter Formel

17/12/2009 - 07:45 von Thomas Unruh | Report spam
Moin Leute!

Ich hàtte da gern mal ein Problem ;-)

Ich habe ein Tabelle in der ich die Stunden und die dem
entsprechenden Dienste "meiner" Leute führe.
Das ist alles so weit gut und lüpt.

Nun habe ich, da sich die Anzahl der Leute(Spalten) und die Anzahl
der Dienste (Reihen) àndert ein Makro gebastelt welches halt noch
Spalten/Zeilen zufügt. Da durch gehen aber manche Formeln nicht :-(
z.B. =SUMME(AN7:AN23) - da es nun eine Reihe 24 gibt.

Zur Lösung habe ich folgende Funktion geschrieben:


Function ZusammenZàhlenBereich(SpalteAlsZiffer As Integer)

ErsteReihe = Range("startKopfzeilen" & Year(Range("D7").Value))
LetzteReihe = Range("WievieleReihen" & Year(Range("D7").Value))

ZusammenZàhlenBereich =
WorksheetFunction.Sum(Range(Cells(ErsteReihe, SpalteAlsZiffer), _
Cells(LetzteReihe, SpalteAlsZiffer)))
End Function


Die Funktioniert auch soweit.

Aber :-( irgendwie nicht immer.

Manchmal, ich konnte nicht genau raus finden wann, hab aber das
Gefühl das es meistens nach öffnen der Mappe ist, kommt als Fehler #WERT:

Wenn ich dann in die Zelle der Formel gehen - dann einfach Enter
drück ohne was zu àndern - rechnet er sie aus.
Oft auch in allen Zellen :-(

Wie bekomme ich es hin, dass Excel den Quatsch mit dem Wert nicht
macht und das Ganze immer schön brav berechnet? Denn ich möchte die
Mappe gerne weitergeben, aber ich finde es nicht zumutbar immer in
"allen" Zellen zu klicken.

Manchmal hilft auch F9 - automatisches Berechnen ist aber an

Ich kann auch in den "Eingabebereich" gehen und eine Anzahl
eintragen, dann rechnet er mir das auch mal :-)

Ursprünglich habe ich die Mappe mal unter 2003 geschrieben, arbeite
aber schon lange mit der Mappe in Excel 2007 und habe sie als .xlsm
abgespeichert.

Für sachdienliche Hinweis wenden Sie sich an mich ;-)

Gruß
Thomas

;-) www.juh-bremerhaven.de
 

Lesen sie die antworten

#1 Andreas Killer
17/12/2009 - 12:09 | Warnen spam
On 17 Dez., 07:45, Thomas Unruh wrote:

Function ZusammenZàhlenBereich(SpalteAlsZiffer As Integer)
     ErsteReihe = Range("startKopfzeilen" & Year(Range("D7").Value))


...
Die Funktioniert auch soweit.
Aber :-( irgendwie nicht immer.

Manchmal, ich konnte nicht genau raus finden wann, hab aber das
Gefühl das es meistens nach öffnen der Mappe ist, kommt als Fehler #WERT:


Das liegt daran das Du im Code einen Bereiche benutzt die Du im Kopf
nicht übergibst.

Hier kann Excel nicht erkennen wann diese Function berechnet werden
muss und liefert dann einfach #WERT.

Man könnte nun Application.Volatile in den Code schreiben, was bewirkt
das sie immer (!!) berechnet wird sobald sich irgendwo irgendwas
àndert, ist aber zu 99% nicht sinnvoll weil es aus einem schnellen
Excel ein lahmes Excel macht.

Andreas.

Ähnliche fragen