von balu » Do, 24.04.2014 16:16
Tach clag,
in einer Formel steht zB "=G949+blabla " es wird aber der Wert aus F949 verwendet
Blödsinn! Denn wenn Du die Formel in D949
Code: Alles auswählen
=RECHTS(DEZ2ID36(F949);4) & RECHTS(DEZ2ID36(G949/(1/864000));4)
auf zwei Zellen aufgeteilt hättest, so hättest Du gesehen das deine Behauptung einfach falsch war. Das ist jetzt aber auch egal, da dies nicht dein Problem löst, denn das ist ein ganz anderes.
Du kennst die einschlägigen Hilfe-Quellen (Dannenhöfer, Andrew)! Also befasse dich auch bitte schön damit. Dir ist nämlich auch ein typischer Fehler unterlaufen, ich sag nur eins: "Variablen deklaration".
Dannenhöfer hat geschrieben:
Variant
Der Datentyp Variant wird in Starbasic automatisch erstellt wenn eine Variable ohne Typenzuordnung deklariert wird.
Variable = 1
Eine derartige Varibale kann dann auch verschiedene Typen nacheinnander aufnehmen.
sub varianttest
var1 = "Test"
msgbox var1
var1 = 1
msgbox var1
end sub
In diesem Beispiel bekommt Var1 erst eine Zeichenfolge und dann eine ganze Zahl. Der Typ Variant macht sich die Variable bei der Weiterverarbeitung passend. Wenn man zum Beispiel zwei Variantvariablen addiert und die eine hat einen String und die andere eine Zahl, wird das richtige Ergebnis berechnet wenn der String eine Zahl ist. Ansonsten kommt keine Fehlermeldung, aber ein falsches Ergebnis.
Daher ist der Einsatz von Variantvariablen mit Vorsicht zu geniessen. Man kann sich damit "schöne" Fallen in seinen Code schreiben.
Tipp: Alle Variablen ordentlich deklarienen und auf den Typ Variant möglichst verzichten.
Also habe ich in deinem Code nur ein einziges Wort getauscht, und schwupp-di-wupp läuft alles.
Hier die betroffene Zeile, und das ausgetauschte Wort müsste dir selber auffallen
Viel Spaß auch noch

.
Gruß
balu
Tach clag,
[quote]
in einer Formel steht zB "=[color=#008000][b]G[/b]949[/color]+blabla " es wird aber der Wert aus [color=#BF0080][b]F[/b]949[/color] verwendet
[/quote]
Blödsinn! Denn wenn Du die Formel in D949
[code]
=RECHTS(DEZ2ID36(F949);4) & RECHTS(DEZ2ID36(G949/(1/864000));4)
[/code]
auf zwei Zellen aufgeteilt hättest, so hättest Du gesehen das deine Behauptung einfach falsch war. Das ist jetzt aber auch egal, da dies nicht dein Problem löst, denn das ist ein ganz anderes.
Du kennst die einschlägigen Hilfe-Quellen (Dannenhöfer, Andrew)! Also befasse dich auch bitte schön damit. Dir ist nämlich auch ein typischer Fehler unterlaufen, ich sag nur eins: "Variablen deklaration".
[quote="[url=http://www.dannenhoefer.de/faqstarbasic/WelcheVariablentypengibtes.html#Zweig82]Dannenhöfer[/url]"]
[size=150][b]Variant[/b][/size]
Der Datentyp Variant wird in Starbasic automatisch erstellt wenn eine Variable ohne Typenzuordnung deklariert wird.
Variable = 1
Eine derartige Varibale kann dann auch verschiedene Typen nacheinnander aufnehmen.
sub varianttest
var1 = "Test"
msgbox var1
var1 = 1
msgbox var1
end sub
In diesem Beispiel bekommt Var1 erst eine Zeichenfolge und dann eine ganze Zahl. Der Typ Variant macht sich die Variable bei der Weiterverarbeitung passend. Wenn man zum Beispiel zwei Variantvariablen addiert und die eine hat einen String und die andere eine Zahl, wird das richtige Ergebnis berechnet wenn der String eine Zahl ist. Ansonsten kommt keine Fehlermeldung, aber ein falsches Ergebnis. [u]Daher ist der Einsatz von Variantvariablen mit Vorsicht zu geniessen. Man kann sich damit "schöne" Fallen in seinen Code schreiben.[/u]
Tipp: Alle Variablen ordentlich deklarienen und auf den Typ Variant möglichst verzichten.
[/quote]
Also habe ich in deinem Code nur ein einziges Wort getauscht, und schwupp-di-wupp läuft alles.
Hier die betroffene Zeile, und das ausgetauschte Wort müsste dir selber auffallen :wink:
[code]
FUNCTION DEZ2ID36(mValue As Long)
[/code]
Viel Spaß auch noch :) .
Gruß
balu