1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel Gültigkeitsprüfung Datum

Discussion in 'Office-Programme' started by C2C4, Apr 13, 2009.

Thread Status:
Not open for further replies.
  1. C2C4

    C2C4 Byte

    ? Habe ein wenig den Faden verloren :bahnhof:
    Ich verstehe zwar in etwa, was das bedeuten soll, aber ich weiß nicht so recht, ob ich das wollte? Oder?

    Ich gehe bis morgen nochmal in mich und prüfe.

    Ich freue mich, dass die Datei Freude bereitet hat.
    Nunmehr habe ich nächtelang - ich wollte doch auch mal was zur Lösung beitragen :) - an meiner "Ur"-Version gebastelt. Aber keine Sorge, die UserForm werde ich nicht mehr missen wollen!!!

    Aber mal zur Sache: Bei der "normalen" Gültigkeitsprüfung konnte ich ja schon das Anfangsdatum bestimmen. Probleme gab es ja mit dem Enddatum. Nun habe ich getestet und glaube, auch hier etwas "gefunden" zu haben.

    Dazu definiere ich z.B. A1=heute() , A2=heute (aber als Zahlenformat) , B1=Enddatum (hier 31.12.2008) und B2=Enddatum (aber als Zahlenformat)

    Nun nur noch die Formel eintragen:

    =WENN(A2<B2+1;A1;B1)

    Nicht falsch verstehen - nur für einen anderen Lösungsansatz - wenn es überhaupt funktioniert!

    So, für heute ist vorerst Schluss - morgen funktionieren meine "Zellen" wieder. (Akku leer!)

    @Urs2 + Hascheff
    LG und Danke
     
  2. C2C4

    C2C4 Byte

    So, hatte mir doch keine Ruhe gelassen und habe nochmals getestet:

    Ich benutze zwar diese Datei alleine, aber eure Arbeiten kann ich vll später mal weiter verwenden! Deshalb versuche ich nochmal zu erläutern, was ich meine:

    Wenn ich eintausend EUR ausgebe und dabei einen Tausendertrennzeichen (Punkt) verwende, dann habe ich in der Datenbank nur einen EUR ausgegeben, da egal ob Punkt oder Komma diese Zeichen als nur Komma gewertet werden.

    Wenn man vorher abprüft, ob sich in diesem Feld überhaupt ein Punkt befindet, geht es gar nicht weiter.

    Sollten sich eure Beschreibungen vorher mit meiner erneuten Frage decken, dann streiche ich einfach diese Frage wieder - denn nunmehr ist die Datei super und ich möchte nicht nach weiteren Eingabefehlern suchen. Ihr habt mir so schon genug geholfen :bet:

    Gute Nacht...
    c2c4
     
  3. Urs2

    Urs2 Megabyte

    Na so was... und ich dachte Excel sei so schlau... und VBA natürlich auch...

    Mit VBA Int(), auch mit (Fix(), hatte ich schon solchen Aerger, hatte es dann umgangen und den Fehler auf das Wetter geschoben. Aber eine prinzipieller Fehlmanipulation war mir nicht bekannt.

    In Deinen Spalten I und J hatte ich Ganzzahl() entfernt, dann zeigt es richtig 1.000 und 2.000 an.
    Die ganze Formel zerpflückt in einzelne Zellen > Resultat Richtig
    Dieses Resultat als Ganzzahl > Resultat Falsch

    Kennst Du aus Deinen Kreisen eine Webseite, die diese Excel-Rechenprobleme (vielleicht ja auch noch andere...) ausführlich behandelt? Darf ruhig etwas kompliziert sein, oder englisch. Würde mich sehr interessieren.


    Zur Auflockerung: Ich hatte letzthin einen seltsamen Code gefunden, absolut harmlos.
    Führe ihn aus... erstaunlich...
    Code:
    Sub HowDidHeDoThat()
        For x = 0 To 5
            x1 = x1 & Chr(x * (x * (x * (x * (-0.75 * x + 7.2917) - 22.5) + 16.708) + 28.25) + 72)
        Next x
        For x = 0 To 6
            x2 = x2 & Chr(x * (x * (x * (x * (x * (0.425 * x - 6.8667) + 40.833) - 109.58) + 122.24) - 23.05) + 87)
        Next x
        MsgBox x1 & x2
    End Sub
    
    Da muss jemand aber sehr viel Totschlag-Zeit gehabt haben.

    Gruss Urs
     
  4. Urs2

    Urs2 Megabyte

    Es geht um die Zeile die prüft, ob 3 Nachkommastellen eingegeben wurden, was ja ein Tippfehler sein müsste.

    Beim Prüfen mit dem Betrag 9,20 bin ich offenbar auf einen Rechenfehler von Excel gestossen. Die angebotene Ersatzzeile umgeht diesen Rechenfehler.
    Möglich wäre natürlich, dass Excel2007 diesen Fehler nicht mehr macht...


    Gültigkeitsprüfung >
    Du brauchst die Zellen A1 und B1 nicht in Zeile2 noch als Zahl formatieren, die Formel funktioniert auch mit Format Datum (Excel rechnet immer mit diesen Zahlwerten, die Anzeige ist nur die Uebersetzung für Menschen...).

    Und diese Resultatzelle willst Du dann in der Gültigkeit als Maximal-Datum verwenden? Müsste funktionieren...


    Tausendertrenner >
    Du lässt diese auf dem Blatt immer anzeigen? Ich nie!
    Und bei der Eingabe ins Userform, werden diese auch automatisch gesetzt? Das würde mich aber wundern, das ist doch ein Anzeige-Format für die Zellen, oder das ganze Blatt... Du darfst diesen Tausender-Punkt natürlich nicht eintippen, das macht Excel von alleine am richtigen Ort...

    So wie das Format mit Euro-Zeichen auf den Zahlenwert keinen Einfluss hat, werden die Tausendertrenner zum Rechnen nicht verwendet.
    Dieser Punkt (CH = Apostroph) ist übrigens eine Windows- und keine Office-Einstellung.

    Ein Problem könnte sein, dass, wegen dem Dezimal-Komma, VBA die Zahl aus der Zelle als String importiert, und erst nachher zu Double wandelt. Zusätzliche Punkte könnten dann für endgültige Verwirrung sorgen.

    Vielleicht für betroffene Zellen explizit das Format ohne Trenner wählen (Haken wegmachen).

    Gruss Urs
     
  5. Hascheff

    Hascheff Moderator

    Hallo,
    welchen Sinn soll es haben, den Tausenderpunkt einzugeben?
    Wie Urs schon sagte, brauchst du nicht zwischen formatiertem und unformatiertem Datum unterscheiden. Die Formel
    =WENN(A1>B1;A1;B1)
    ist gleichwertig. Beachte die Umkehr des Vergleichs, sie macht + 1 unnötig. Ob man < oder > wählt, hängt immer davon ab, wo man die Gleichheit haben will.
    Jetzt schau ich mir mal den Zeit-Totschlag-Code an.

    Gruß Hascheff
     
  6. Urs2

    Urs2 Megabyte

    ...wenn der Vergleich gekehrt wird, dann aber auch die Dann-/Sonst-Werte kehren >

    =WENN(A1>B1;B1;A1)

    Gruss Urs
     
  7. C2C4

    C2C4 Byte


    Jupp, da hat der Urs2 recht :)

    Bin leider erst jetzt dazu gekommen, alles zu lesen.
    Werde heute abends oder spätestens Donnerstag berichten.

    Ist bei mir im Moment schlimm zu Hause :(

    Zum Wochenende gebe ich alle Daten von 2008 in die neue Datei ein. Wenn also irgendein Fehler, was ich nicht glaube, da ist, dann fällt er bei über 500 Buchungen wohl auf!

    Dankt euch... den "Code" werde ich mir dann auch anschauen.

    LG c2c4
     
  8. Urs2

    Urs2 Megabyte

    :eek: ........ Du willst alle 500 Datens&#228;tze aus 2008 von Hand eintippen?

    - Importiere diese Daten in eine leere Excel-Mappe
    - verschiebe die Spalten so, dass sie der Anordnung in der neuen Mappe entsprechen
    - Kopiere diese korrigierten Daten in die neue Mappe ins Blatt "Daten"
    ...wenn ich nicht etwas &#252;bersehen haben sollte... m&#252;sste dann alles perfekt sein...

    Mich w&#252;rde eher interessieren, was passiert, wenn Du den bei mir als "Problembetrag" aufgetretenen Betrag von 9,20 EUR ins UserForm eingibst...

    Gruss Urs
     
  9. C2C4

    C2C4 Byte

    hi Urs2,

    so, nachdem ich mir Excel und die Dateien zerschossen hatte, im beruflichen mir der Kopf sonst wo steht und zu Hause im privaten Leben meine "Stütze" so langsam abbricht, bin ich nun voll und ganz wieder up to date.

    Ich will eigentlich die Daten nochmals eingeben, da ich mich vorher nicht an Bezeichnungen gehalten habe. Furchtbar ist auch, dass ein "Fehler" bei der MwSt-Berechnung vorlag. Falls es zu lange dauert, werde ich wohl doch kopieren! ... Ich berichte!

    Nun zu dem angesprochenen Problem: Wie immer hast du recht!
    Ich habe versucht, mit einem Komma die Beträge einzugeben - aber nur eine Nachkomma-Stelle verwendet! Bsp.: 9,2 oder 8,2 ...

    Ich erhalte die Fehlermeldung: ... Betrag enthält Zentel-Cent.
    Das ist genau das, was du vorhergesehen hast. :mad:

    Das mit dem Tausender-Trennzeichen ist Schnee von gestern - ihr habt ja recht, den gibt nun wirklich keiner ein.

    Andere Beträge (z.B. 7,2 oder 7,4) schluckt Excel wieder :aua:
    Jetzt weiß ich auch nicht mehr weiter.

    LG und mal Ruhe am Wochenende...

    c2c4
     
  10. C2C4

    C2C4 Byte

    welche? die aus Beitrag #39?

    Da ich Änderungen vorgenommen habe, weiß ich nicht mehr so richtig, an welcher stelle "wir" stehen. Kannst du mir bitte nochmals den Code posten.

    LG c2c4
     
    Last edited: May 2, 2009
  11. C2C4

    C2C4 Byte

    Wo soll ich was hinkopieren und wann wird es aufgerufen!

    Ich sehe nur "Hello world":confused:

    LG c2c4
     
  12. Urs2

    Urs2 Megabyte

    @C2C4 ........... so einen Nick mit Hi, Grüss Gott, oder Hallo anzusprechen, widerstrebt mir...

    Da Du Dich für Hintergründe interessierst >>>
    Was speichert Office-VBA >>> es kennt mindestens drei "Dateien" >>>

    1. Wenn Du den Editor öffnest, wird eine lesbare "Text-Datei" angezeigt.
    Diese wird nirgends gespeichert, sie wird jedes Mal aus deren binär gespeicherten Daten umgewandelt und angezeigt.
    Beim Eintippen in diese Anzeige, wird, nach jedem <Enter>, die getippte Zeile sofort binär gespeichert.

    2. Diese binäre "Datei" siehst Du nie, sie wird aber immer gespeichert !
    Sie ist für alle Excel-Versionen, auch für den Mac, der gültige Source-Code.

    3. Wenn Du diesen Source-Code kompilierst, oder wenn Du einfach den Code zum ersten Mal ausführst, wird diese Source automatisch in eine für die VB-Engine lesbare Form gewandelt (im Prinzip ist das VB6)
    Diese Daten werden auch gespeichert, sind aber von Deiner individuellen Umgebung abhängig (Excel-Version, System).
    Diese "Datei" siehst Du auch nie.

    Der Source- und der kompilierte Code sind bei VBA also in der gleichen XLS.


    Der Problem-Betrag 9.20 EUR >>>
    Rein zufällig bin ich auf diesen Betrag gestossen.
    Offenbar bestehen prinzipielle Umwandlungs-Probleme von "Text" zu Binär (Hascheff dixit... er weiss mehr...).
    Mit meiner Anpassungs-Zeile an dieses Problem, war es bei mir erschlagen...


    Gültige Code-Version >>> Was Du bei Dir angepasst hattest, weiss ich nicht, interessiert hier auch auch kaum...
    Die von mir aus gültige Version ist der Gesamt-Code in #31.... aber...
    Erst nachher hatte ich das "9.20"-Problem entdeckt >>>
    die zu ersetzende Code-Zeile in #39 umgeht vorgenannten Excel-Fehler, zumindest bei mir...


    Der Zeit-Totschlag-Code >>>
    Mein Beitrag war eigentlich an Hascheff gerichtet... Asche aufs Haupt... als Antwort auf seinen Beitrag...
    Da ich oft einen Beitrag beginne... und ihn dann erst Stunden später fertigstelle... hatte ich übersehen, dass Du, mitten in der Nacht, noch dazwischen "gebeitraget" hattest...

    Zur Formel > Jeder findet das interessant... was er für interessant findet.
    Dass die Formel nur "Hello World" anzeigt ist deren Zweck. Ich wollte den Umkehrvorgang kennen > wie kommt man aus der Vorgabe "Hello World" zu dieser Formel?
    Probieren? Da reicht mir meine Restlebenszeit wohl nicht....
    Eine Umkehr-Formel? Kenne ich bis jetzt nicht...

    Ansonsten... viel Glück bei den vielen anderen Problemen!

    Gruss Urs
     
  13. Hascheff

    Hascheff Moderator

    Nein, da hast du mich falsch verstanden.
    Wie Excel Tabellen und VBA speichert, wei&#223; ich nicht, ich glaub auch nicht, dass uns das interessieren muss. Mit "bin&#228;r" (Habe ich "bin&#228;r" geschrieben?) meinte ich die Dualzahlen, in die alle Zahlen in Prozessoren umgewandelt werden, mit denen also auch gerechnet wird. So, wie bei Dezimalzahlen alle Bruchteile au&#223;er Halbe und F&#252;nftel zu periodischen Dezimalbr&#252;chen werden, so sind es bei Dualzahlen alle au&#223;er Halben. 0,2 ist z.B. dual 0,0011 Periode 0011. Und periodische Br&#252;che werden nat&#252;rlich gerundet.
    Ach so! Lustig!
     
  14. Urs2

    Urs2 Megabyte

    Nein, hattest Du nicht! Das war leider meine vorher gültige Interpretation der "Dual-Zahlen"...
    Dank Deiner Erklärung wusste ich jetzt aber, nach welchem "Fehler" ich suchen sollte... nach IEEE754...

    Dein Kollege Descartes würde sich im Grab umdrehen >>> Von den kleinen Bits zum Grossen >>> und nicht umgekehrt!
    Wie sich meine Ignoranz auf meine vorhandenen Berechnungen ausgewirkt haben könnte, muss ich jetzt zuerst erforschen... diesbezügliche Probleme hatte ich ja schon einige... und diese jedes Mal auf das Wetter geschoben...

    Immerhin weiss ich jetzt schon, dass ich die Zeilen "If A = B Then..." (oder auch A <> B) meiden werde...
    ... solange A oder B einen Dezimalbruch als Vorfahren haben sollten...

    Gruss Urs
     
  15. C2C4

    C2C4 Byte

    @Urs

    sry, wenn ich hier was falsch gemacht habe? ich weiß allerdings nicht was :( Meinst du die "2"?

    so, nachdem ich nun wieder luft habe und alles an die richtige stelle kopiert habe, sind alle daten ohne schwierigkeiten übernommen worden.
    nunmehr ist alles so, wie ich es haben wollte - und noch viel mehr.:bussi:

    ich habe noch den fehler der mwst-berechnung angepasst: hier wurde trotz änderung des gültigen mwst-satzes noch immer mit festen 19% gerechnet. also berichtigen, wenn ihr das auch nutzen wollt.

    da es meine 2. frage hier im forum war, habe ich mich vll nicht so verhalten wie es "allgemein" üblich ist - ich bitte sehr um nachsicht.

    ich freue mich, dass ich noch hintergrundwissen erfahren habe.

    an jeden, der mir geholfen hat oder es tun wollte danke ich also.

    ich hoffe, dass andere probleme ebenfalls so gut gelöst werden. ich stelle gerne wieder fragen. habt dank dafür!

    gruß c2c4
     
  16. Hascheff

    Hascheff Moderator

    Hallo C2C4,
    du hast nichts falsch gemacht. Wenn ich Urs richtig verstanden habe, hat er das Gefühl, C2C4 passt eher zu einem Roboter als zu einem Menschen. (Gab es nicht mal einen Film "C5 lebt noch" oder so ähnlich über einen Roboter?)
    @ Urs: Einfach mit der Maus drüber und kopieren. Ich hätte ein Problem, vor Urs "Grüß Gott" einzutippen, was bin ich froh, nicht in Bayern zu leben.

    @ C2C4: Wir werden dir auch gern wieder helfen. Ich hoffe, dich haben unsere theoretischen Abschweifungen nicht zu sehr gestört.

    Gruß Hascheff
     
  17. Urs2

    Urs2 Megabyte

    ...musst Du auch nicht, das sagt hier niemand. Ich passe mich flexibel dem Empfänger an, sofern irdisch.


    @C2C4
    Du hattest nichts falsch gemacht... vergiss mein Geschwätz von letzter Woche...
    Im Gegenteil, manch Ratsuchender dürfte bei Dir ruhig einen Lehrgang in Sachen "Klare Fragestellung" machen!

    Die Hauptsache > das Ding funktioniert, das freut auch die Helfer.

    Gruss Urs
     
  18. C2C4

    C2C4 Byte

    Hier nochmal c2c4 :)

    ...nur zur Aufkl&#228;rung: c2c4 kommt vom Schach und leitet die englische Variante ein. Mir kam es aber nur auf den Buchstaben "c" an ;)

    @Hascheff: "Nummer5 lebt" hie&#223; der Film - glaube ich.

    @ Urs: Ich stelle bestimmt bald wieder Fragen - ich melde mich dann bei Euch. ... das Ding funktioniert wirklich!!!

    GN8 c2c4
     
Thread Status:
Not open for further replies.

Share This Page