[gelöst] ZellAdressierungs Problem

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] ZellAdressierungs Problem

Re: [gelöst] ZellAdressierungs Problem

von TrueColor » Mi, 30.04.2014 08:35

clag hat geschrieben:Naja nun habe ich etwas das bei Bedarf auch mehr wie 36 Werte handeln
Also hast immer, neben der Fingerübung, noch einen guten Mehrwert bekommen :-)

Re: [gelöst] ZellAdressierungs Problem

von clag » Di, 29.04.2014 17:11

Hi Karolus

ja genau die Funktion BASIS() kann bis 36

mein DIY DEZ2ID kann ich ja noch auf 42 oder mehr Zeichen erweitern was ANSI noch so hergibt ;)
ich hatte schon 0-9@A-Z#$%&+ aber das macht möglicherweise an anderer Stelle Probleme zB bei Dateinamen
mein DIY kann auch mit einer beliebigen Wertigkeit der Zeichen umgehen zB "A-Z 0-9" oder total vermischt
also nur rückwandelbar wenn man die Wertigkeit/Reihenfolge der Zeichen kennt
aber das ist mehr Spielerei ;)

wie gesagt diese Überlegungen sind entstanden als mir die Funktion BASIS() noch nicht so genau bekannt war
:D

Re: [gelöst] ZellAdressierungs Problem

von Karolus » Di, 29.04.2014 16:51

Hallo
Naja nun habe ich etwas das bei Bedarf auch mehr wie 36 Werte handeln kann
Wenn du damit die Funktion BASIS meinst ? ->
OOo-hilfe hat geschrieben:BASIS
Wandelt eine positive Ganzzahl in einen Text aus dem Zahlensystem zur angegebenen Basis. Dabei werden die Ziffern 0-9 und die Buchstaben A-Z verwendet.
Syntax
BASIS(Zahl; Zahlenbasis; [Mindestlänge])
Zahl ist die positive Ganzzahl, die umgewandelt werden soll.
Zahlenbasis zeigt die Basis des Zahlensystems an. Es kann sich dabei um eine positive Ganzzahl zwischen 2 und 36 handeln.
Mindestlänge (optional) bestimmt die Mindestlänge der erstellten Zeichenfolge. Wenn der Text kürzer als die angegebene Mindestlänge ist, werden links neben der Zeichenfolge Nullen hinzugefügt.
Karolus

Re: [gelöst] ZellAdressierungs Problem

von clag » Di, 29.04.2014 15:52

Hallo TrueColor

ja jetzt habe ich keine Differenzen mehr zu BASIS()

wenn ich auf dem Schirm gehabt hatte das BASIS() genau das tut was ich suchte
hätte ich ja meine DIY Funktion DEZ2ID36() überhaupt nicht basteln müssen

Naja nun habe ich etwas das bei Bedarf auch mehr wie 36 Werte handeln kann
und weiß wie wichtig die genaue deklaration von Variablen ist ;)

warum der zweite bei "Überlauf" gleich dem ersten Wert ausgegeben wurde ist jetzt auch klar
es war einfach der Wert aus der vorhergehenden Berechnung der wegen Überlauf nicht neu geschrieben wurde
aber die Funktion hat den Alten Wert dennoch ausgegeben.

Na hinterher ist man immer etwas klüger :)

nochmals danke allen Antwortern

Re: [gelöst] ZellAdressierungs Problem

von TrueColor » Di, 29.04.2014 08:12

Hehe, so " einfach" löst sich das Problem. Ich war leider die letzten Tage noch nicht dazugekommen, mir das weiter anzuschauen. Aber freut mich, wenn's jetzt geht. Stimmen jetzt die Ergebnisse auch mit der BASIS-Funktion überein?

Re: ZellAdressierungs Problem

von clag » Do, 24.04.2014 19:52

Hallo Balu
balu hat geschrieben:Also habe ich in deinem Code nur ein einziges Wort getauscht, und schwupp-di-wupp läuft alles.
also das ist ja komisch
wenn ich das bei mir so abändere wie du vorschlägst funktioniert es bei mir jetzt auch einwandfrei :shock:

kaum macht man es richtig schon funktioniert es :D

besten Dank

heye ... TC kannst aufhören mit Fehler suchen ....

Re: ZellAdressierungs Problem

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 :wink:

Code: Alles auswählen

    FUNCTION DEZ2ID36(mValue As Long)

Viel Spaß auch noch :) .



Gruß
balu

Re: ZellAdressierungs Problem

von TrueColor » Do, 24.04.2014 10:51

Ich werde nochmal etwas testen.

Noch ein Vorschlag, der möglicherweise den Fehler weiter eingrenzen könnte: das Ganze mal auf MS Excel portieren, sowohl deine VBA-Lösung als auch die Formel? Ich hab leider kein Excel.

Re: ZellAdressierungs Problem

von clag » Sa, 19.04.2014 11:43

Hallo TrueColor,

du hattest dich ja etwas intensiver mit meinem Problem befasst
heute wollte ich mich auch noch einmal mit dem Problem beschäftigen um herauszufinden wodurch der Fehler entsteht
denn ich ich hatte deine Meldung "Überlauf" auf dem Schirm
Soweit ich es sehe scheinen es Fehler zu sein, die in der Rechengenauigkeit liegen

Der Hammer ist heute bekomme ich mit anderen Zahlen/ Zeiten das Problem
und die "Zeit" die vorher das Problem verursachte wird jetzt korrekt verarbeitet.

Ich bin echt verwirrt :?

Falls du du etwas Zeit und die BspDatei noch hast wäre mein Bitte an dich
kannst du das einmal Gegenprüfen

Re: ZellAdressierungs Problem

von clag » Di, 15.04.2014 16:04

hi TC,

die 864000 war schon Vorsatz weil ich ggf auch 1/10 oder 1/100 Sekunden erfassen wollte

das sollte aber eigentlich kein Grund sein mit 4 digit sollten sich locker 1/10 Sek zählen lassen
bin leider noch nicht zum weiteren Arbeiten an der Tabelle gekommen
kann noch keine weiteren Infos geben

Re: ZellAdressierungs Problem

von TrueColor » Di, 15.04.2014 12:35

So, 1 Fehler hab ich gefunden:

Die Zeitwerte für DEZ2ID36 und BASIS 36 sind unterschiedlich. Das kommt daher, dass der Tag nur 86.400 und nicht 864.000 Sekunden hat. (korrigiert in Zeile 995)

Wo ich noch nicht dahinter gestiegen bin:

Die Genauigkeit von BASIS 36 ist um eine Potenz höher als von DEZ2ID36.

Das Macro meckert immer noch.
Dateianhänge
test_fehler_20140415_2.ods
(90.66 KiB) 27-mal heruntergeladen

Re: ZellAdressierungs Problem

von clag » Di, 15.04.2014 11:30

@ TC
ah ok

also ein Ereignis das in der 42 begründet ist hmmm so so so interessant :lol:

aber mal ernsthaft habt ihr jetzt einen Fehler entdeckt?
kann doch nicht sein das eine Formel 1000 mal richtig funktioniert und einmal nicht
das passt nicht zusammen

Re: ZellAdressierungs Problem

von TrueColor » Di, 15.04.2014 11:14

clag hat geschrieben:
TrueColor hat geschrieben:42!

*SCNR*
den verstehe ich jetzt nicht :-?
http://de.wikipedia.org/wiki/42_(Antwort)

Re: ZellAdressierungs Problem

von clag » Di, 15.04.2014 11:14

Also eure Vorschläge muss ich jetzt natürlich erst einmal abarbeiten

sowohl die "pythonisch" als auch "Basis" LösungsVariante

Re: ZellAdressierungs Problem

von clag » Di, 15.04.2014 11:11

TrueColor hat geschrieben:42!

*SCNR*
den verstehe ich jetzt nicht :-?

Nach oben