Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
476to480
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
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Function gibt nicht den aktuellen Wert

Function gibt nicht den aktuellen Wert
30.08.2004 10:41:21
Hermann
Hallo Excelfreunde,
ich bitte um eure Hilfe.
In VBA habe ich eine kleine "

Function Werkzeug() As String" geschrieben (s.unten). Diese Funktion rufe ich innerhalb einer Datei, jedoch in 3 Tabellenblättern gleichzeitig auf. Theoretisch sollte jeder Aufruf einen anderen Wert ausgeben, da die Blätter unterschiedliche Daten enthalten.
Markiere ich alle 3 Blätter gleichzeitig und löse die Zelle mit der Funktion aus, so steht überall der gleiche Wert. Löse ich jede Zelle einzeln aus, so steht überall der richtige Wert drinn.
Was mache ich falsch? Und woher weiß die 

Function aus welchem Blatt sie die Werte holen muß?
Vielen Dank für die Hilfe
Gruß Hermann
Hier der Code

Function Werkzeug() As String
Dim koststplatz As String, wkz As String
' Alle Fremdarbeitsgänge in den String "Werkzeug"
Werkzeug = ""
For a = 4 To 100
If is_kostst(Cells(a, 1).Value) Then
koststplatz = Cells(a, 1).Value
If platz(koststplatz) = 0 And is_kostst(Cells(a, 1).Value) And Cells(a, 9).Value > 0 Then
wkz = Cells(a, 2).Value
If InStr(wkz, "Stempel") > 0 Then wkz = Left$(wkz, InStr(wkz, "Stempel") - 1)
Werkzeug = Werkzeug + " + " + wkz
End If
End If
If Cells(a, 1).Value = "Summe Einmalkosten" Then a = 100
Next a
End Function

und die Unterfunktionen (sind aber unwichtig):

Function is_kostst(wert As String) As Boolean
is_kostst = False
If InStr(wert, "/") > 0 And Right$(wert, 1) <> "/" Then is_kostst = True
End Function


Function kostst(wert As String) As String
If InStr(wert, "/") > 0 Then
kostst = Left$(wert, InStr(wert, "/") - 1)
Else
kostst = wert
End If
End Function


Function platz(wert As String) As String
If InStr(wert, "/") > 0 Then
platz = Mid$(wert, InStr(wert, "/") + 1)
Else
platz = 0
End If
End Function

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Function gibt nicht den aktuellen Wert
Hans
Deine Funktion hat keine Argumente, wird also nie neu berechnet, da nur Änderungen der Eingangswerte die Neuberechnung der Funktion auslösen.

Function Werkzeug(Bereich as range) As String
Dim koststplatz As String, wkz As String
' Alle Fremdarbeitsgänge in den String "Werkzeug"
Werkzeug = ""
For i=1 To Bereich.Count
If If is_kostst(Bereich(i)) then

Gruß HW
AW: Function gibt nicht den aktuellen Wert
30.08.2004 13:52:30
Hermann
Vielen dank Hans,
hat super geklappt. Und wieder was gelernt :-)
Gruß Hermann
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige