Fehlermeldung #WERT! bei Funktion

Hallo zusammen,

ich möchte in Zelle A3 prüfen, ob sich z.B. in Zelle A2
eine Formel befindet.

Wenn ja, bleibt die Zelle leer, wenn nein soll ein „!“ drin stehen.

Dazu habe ich in ein Modul den folgenden Code geschrieben:

Public Function form(wert)
If wert.HasFormula = True Then
form = „“
Else
form = „!“
End If
End Function

In A3 schreibe ich nun =form(a2) und es steht ein „!“ drin oder nicht.

Funktioniert bei mir wieder prima - aber nicht auf
allen Rechnern.

Bei einigen Kollegen kommt in dem Feld, wo =form(A2) drin steht,
die Fehlermeldung #WERT!

Geschrieben auf Excel 2000, Fehlermeldung versionsunabhängig.

Weiss vielleicht jemand, woran es liegen könnte?

Gruß und Danke
Rolf

Public Function form(wert)
If wert.HasFormula = True Then
form = „“
Else
form = „!“
End If
End Function
Bei einigen Kollegen kommt in dem Feld, wo =form(A2) drin
steht,
die Fehlermeldung #WERT!

Hallo Rolf,

sorry, dein Code klappt auch mit XL97, m.E. müßte er bis 2003 problemlos laufen, ich kann da nichts erkennen.

Deine Kollegen mit dem Fehler solten mal vor die Zeile
If wert.hasformula…
einen Haltepunkt setzen, dann in A3 gehen, F2, Enter.
Der Debugger steht nun in dieser Zeile, nun mit F8 die Zeilen weiter durchlaufen, wann, nach welcher Zeile, steigt der Debugger aus?

Davon völlig unabhängig, schreibe doch den Code so:

Public Function form(wert As Range) As String
form = IIf(wert.HasFormula = True, „“, „!“)
End Function

Gruß
Reinhard

Hallo Reinhard,

danke für Deine Hilfe.

Public Function form(wert)
If wert.HasFormula = True Then
form = „“
Else
form = „!“
End If
End Function
Bei einigen Kollegen kommt in dem Feld, wo =form(A2) drin
steht, die Fehlermeldung #WERT!

sorry, dein Code klappt auch mit XL97, m.E. müßte er bis 2003 :stuck_out_tongue:roblemlos laufen, ich kann da nichts erkennen.

Deine Kollegen mit dem Fehler solten mal vor die Zeile
If wert.hasformula…
einen Haltepunkt setzen, dann in A3 gehen, F2, Enter.
Der Debugger steht nun in dieser Zeile, nun mit F8 die Zeilen weiter :durchlaufen, wann, nach welcher Zeile, steigt der Debugger aus?

Er steigt nicht aus. Was der Kollege mir nicht gesagt hatte ist,
dass die Meldungen #WERT! erst kommen, wenn er mit dem nachfolgenden
Code die nicht benötigten Zeilen ausblendet: (Aber wieso nur bei einigen Rechnern?)

Sub Ausblenden()
' Makro blendet alle Zeilen mit 0 aus
' Sheets("Tabelle1").Activate
Range("A1").Activate
Application.ScreenUpdating = False
For Each rngCell In Range("A1:A1020")
 If rngCell.Value = 0 Then rngCell.EntireRow.Hidden = True
Next rngCell
Range("A1").Activate
Application.ScreenUpdating = True

Hast Du noch eine Idee?

Davon völlig unabhängig, schreibe doch den Code so:

Public Function form(wert As Range) As String
form = IIf(wert.HasFormula = True, „“, „!“)
End Function

Habe ich gemacht.

Gruß
Rolf

Er steigt nicht aus. Was der Kollege mir nicht gesagt hatte
ist,
dass die Meldungen #WERT! erst kommen, wenn er mit dem
nachfolgenden
Code die nicht benötigten Zeilen ausblendet: (Aber wieso nur
bei einigen Rechnern?)

Hallo Rolf,

was ist das für eine Datei? Eine Vorlage wo jeder unterschiedliche Daten haben?
In dem Moment wo die Fehler da sind soll er die Mappe lokal speichern und dir schicken.
Dann blende alle Zeilen wierder ein per Excel und per Makro aus.
Fehler noch da? Ggfs. zwischendurch F9 drücken, ggfs, in eine Formelzelle mit F2 dann Enter.

Gruß
Reinhard

Hallo Reinhard,

danke für Deine Mühe, ich werd’s Montag testen
und mich wieder melden.

Bis dahin allen ein sonniges Wochenende.

Gruß
Rolf

Moin Reinhard,

was ist das für eine Datei? Eine Vorlage wo jeder
unterschiedliche Daten haben?

Ja, genau.

Das scheint doch an Excel2003 zu liegen.

Formelzelle mit F2 dann Enter.

… und #WERT! ist weg.
Datei speichern, öffnen, ausblenden, #WERT! ist wieder da.
Ich schmeiß die Formel jetzt raus (Mehrere dutzend) und
dann ist hoffentlich Ruhe.

Danke bis hierher.
Gruß Rolf