[gelöst] ZellAdressierungs Problem

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: ZellAdressierungs Problem

Beitrag von clag »

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
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: ZellAdressierungs Problem

Beitrag von clag »

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
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: ZellAdressierungs Problem

Beitrag von TrueColor »

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.
System:
LibO 6 + LibO 7
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: ZellAdressierungs Problem

Beitrag von balu »

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
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: ZellAdressierungs Problem

Beitrag von clag »

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 ....
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: [gelöst] ZellAdressierungs Problem

Beitrag von TrueColor »

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?
System:
LibO 6 + LibO 7
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: [gelöst] ZellAdressierungs Problem

Beitrag von clag »

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
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7531
Registriert: Mo, 02.01.2006 19:48

Re: [gelöst] ZellAdressierungs Problem

Beitrag von Karolus »

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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: [gelöst] ZellAdressierungs Problem

Beitrag von clag »

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
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: [gelöst] ZellAdressierungs Problem

Beitrag von TrueColor »

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 :-)
System:
LibO 6 + LibO 7
Antworten