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

    Hallo,

    habe zwar in Excel die Möglichkeit, eine Gültigkeitsprüfung zu erstellen, jedoch brauche ich eine spezielle Prüfung für eine Datumsabfrage.

    Genauer:
    1. Ein Haushaltsbuch beginnt am 01.01.2009 (Anfangsdatum)
    2. Das max. Datum ist jedoch abhängig...
    a) es darf nie größer sein als das aktuelle Datum (also <heute() )
    b) es darf nie größer sein als das Ende des Jahres 2009 (31.12.2009)


    Zwar habe ich mal eine Wenn-Funktion
    =WENN(B19<B20;"f";WENN(B19>B22;"f";WENN(B3>B21;"f";"w")))
    als Abfragemodul zum testen erstellt, aber ich möchte diese Prüfung wegen eines Makrostartes lieber in der Gültigkeitsprüfung in Excel direkt erstellen.

    Ich danke euch für die Tipps und Lösungen.

    P.S.: B19=Datumsfeldeingabe, B20=01.01.2009, B21=31.12.2009, B22=heute() ---- habe dafür die Zahl des Datums immer genommen.
    Ich hoffe, ich habe das eindeutig und vollständig formuliert.
     
  2. Urs2

    Urs2 Megabyte

    Das Makro startet wenn das Datum eingegeben oder verändert wird ?
    Warum lässt Du dann das eingegebene Datum (= xDate) nicht gleich zuerst von diesem Makro prüfen ? >>>

    If Year(xDate) <> 2009 Or xDate > Date Then
    ......Datum in Zelle löschen + schimpfende MessageBox...


    Mit Gültigkeitsprüfung >>>

    Zulassen / Daten / Anfangsdatum / Enddatum müssen sein >
    Datum
    zwischen
    1.1.09
    =HEUTE()

    Deine Bedingung 2.b musst Du Dir so halt sparen >>>
    - 2010 wird wohl ein neues Haushaltsbuch geführt werden, und
    - derjenige der die Abschlussbuchungen im Januar 2010 machen wird, wird wohl wissen, dass der 31.12.09 das Stichdatum ist.

    Gruss Urs
     
  3. C2C4

    C2C4 Byte

    hi Urs2,

    dank dir f&#252;r deine rasche L&#246;sung.
    Ich konnte es zwar noch nicht ausprobieren, aber hier noch eine Verdeutlichung, was mein Makro macht:
    Nachdem die Zelle (mein Eingabedatum) mit einem g&#252;ltigen Wert gef&#252;llt worden ist, m&#252;ssen noch eine Ausgabeart und ein Betrag zwingend eingegeben werden. Das Makro pr&#252;ft nur, ob alle 3 Werte wirklich eingegeben worden sind.

    Genauer:

    If Target = Range("b3") Then
    If IsEmpty([b3]) Then MsgBox "Die Zelle B3 ist ein Pflichtfeld"
    Else
    If Target = Range("b4") Then
    If IsEmpty([b4]) Then MsgBox "Die Zelle B4 ist ein Pflichtfeld"
    Else
    If Target = Range("b5") Then
    If IsEmpty([b5]) Then MsgBox "Die Zelle B5 ist ein Pflichtfeld"
    Else
    Call Daten&#252;bergabe
    End If
    End If
    End If
    End Sub

    Ich war schon froh, dass ich das geschafft habe :)

    Ich wollte deshalb die G&#252;ltigkeitspr&#252;fung benutzen, damit man erst gar nicht zur Eingabe der Kostenart oder des Betrages kommt.

    Nat&#252;rlich hast du ja recht, wenn man das Enddatum mit =heute() definiert UND aufpasst, dass man in 2010 nicht das Buch weiterf&#252;hrt, ist alles O.K.. Wir kennen aber Benutzer ;) ... und ich kenne mich, ich will mir diese M&#246;glichkeit eben im Voraus schon nehmen.

    vll hast du ja noch einen Trick auf Lager oder mein Makro muss nochmals umgeschrieben werden.

    Lieben Dank im Voraus...

    P.S.: Die verwendeten Zelladressen in der Fragestellung (ganz oben!) waren nur Testzellen. Hier nun im Makro ist B3=Datum, B4=Kostenart und B5=Betrag.
     
    Last edited: Apr 14, 2009
  4. Urs2

    Urs2 Megabyte

    Ich verwende Excel2003 und Du?

    Die Prüfung der Eingaben ist das A und O einer funktionierenden Anwendung.
    Sie umfasst nicht nur "leer" oder "nicht leer", sondern auch
    - Datenart > Datum, Integer, Double, Text...
    - Grenzwerte nach oben und/oder unten
    - Textauswahl aus vorgegebenen Möglichkeiten oder freier Text
    ...aus Versehen kann man ja viel Mist eintippen...

    Das Sub "Datenübergabe" wird die gültigen Daten dann irgendwo eintragen ?
    Dann wären die drei Eingabe-Zellen ohne direkten Bezug zu Zellen in der Mappe, nur indirekt über das Sub ?

    Das wäre die ideale Aufgabe für ein UserForm >
    Irgendwo ein Button auf dem Blatt > Click darauf > Userform erscheint > Eingabe der drei Daten > UserForm prüft Gültigkeit > meckert oder führt "Datenübertragung" aus > fertig.

    - Datum könnte man aus dem Excel-eigenen Calendar-Picker wählen (dann hat es schon einmal eine gültige Datums-Form)
    - Kostenart wird wohl eine von vorgegebenen Möglichkeiten sein, also Wahl aus DropDown.
    - Betrag dann halt noch freie Eingabe...

    Es werden nur Ausgaben gelistet, keine Einnahmen ?

    Gruss Urs
     
  5. Hascheff

    Hascheff Moderator

    Hallo,
    warum nimmst du nicht Access?
    Du kannst für jedes Feld festlegen, ob eine Eingabe erforderlich ist und kannst die Gültigkeit von Eingaben prüfen.
     
  6. C2C4

    C2C4 Byte

    @Hascheff:

    Dein Vorschlag mit Access ist sehr nett. Allerdings hat 1. MS einen Riegel vorgeschoben, weil im "normalen" Office kein Access dabei ist. 2. ist Access deutlich m&#228;chtiger bei Datenbanken, nur schw&#228;chelt es erheblich bei Tabellenkalkulationen, denn die Hauptarbeit sind nunmal Diagramme und sonstige Berechnungen, die wiederum in Access schwieriger zu meistern sind. Letztens ist das Programm Access wohl schwieriger als Excel anzuwenden.

    Ich danke dir also f&#252;r deinen Vorschlag - ich habe mich jedoch ganz bewusst f&#252;r Excel entschieden.
     
  7. C2C4

    C2C4 Byte

    @Urs:

    Ich verwende 2007, habe jedoch einschl. Office 95 alle Versionen.

    Jawohl, wie schon von Euch bemerkt werden die eingegebenen Daten samt weiterer Daten, die bereits durch die 3 Eingaben errechnet wurden (MwSt, brutto, netto ...) in eine Datenbank in Excel aufsteigend &#252;bertragen. Eine Ausgaben-Buchung darf jedoch in der Vergangenheit liegen. (einschl. 01.01.2009). Einnahmen werden hier nicht eingetragen, da das Finanzamt ja bei Einnahmen... (muss ich ja nicht erl&#228;utern) :)

    Hinter den Daten, die die Datenbank nunmehr verwaltet, ist ein Wirtschaftsplan samt div. Diagramme, Durchschnittsberechnungen, DB-Summen und entsprechender selbstprogrammierter "Pivot"-Anwendungen (spez. Sachbearbeitung Steuerberater) mit Einzelausdruck-Funktionen in Abh&#228;ngigkeit von Monat bzw. Ausgabensparte.

    Klar sto&#223;e ich hin und wieder an meine und auch Excel-Grenzen, deshalb bitte ich ja flehend um Hilfe :)

    Die Kostenarten werden wirklich &#252;ber ein Drop-Down-Feld eingef&#252;gt, was die Dateng&#252;ltigkeit hier eindeutig beschreibt.

    Es ist noch angedacht, die Ausgaben abzupr&#252;fen... mir schwebt da ein Makro vor, welches bei einer Summe >100 EUR nochmals eine Best&#228;tigung des Users (also von mir) voraussetzt.

    Calendar-Picker ist mir bislang noch kein Begriff - werde ich mal googlen ;)
    Aber kann da denn garantiert werden, dass meine Vorgaben beim Datum auch erf&#252;llt sind - oder geht es nur um ein Format und eine bessere Eingabe?

    "Dann w&#228;ren die drei Eingabe-Zellen ohne direkten Bezug zu Zellen in der Mappe, nur indirekt &#252;ber das Sub ?" Verstehe ich nicht, wie du das meinst?

    Abschlie&#223;end kenne ich auch keine User-Form :(
    Ich vermute aber, das dies nicht klappt, da andere Zelle ja noch berechnet werden, bevor es in die Datenbank geht.

    Sry, f&#252;r so viel Text...

    Freue mich auf Antworten!
     
  8. Hascheff

    Hascheff Moderator

    Im VBA-Editor Menü "Einfügen", danach schaltest du mit <F7> bzw. <Shift>+<F7> zwischen Form und Code um.
    Im VBA-Code hast du auch Zugriff auf die Werte der Tabellenzellen.
    Hab ich bei mir (Excel2000) auch noch nicht gesehen, aber schau mal nach dem Erstellen einer UserForm in die Werkzeugsammlung.

    Gruß
    Hascheff
     
  9. Urs2

    Urs2 Megabyte

    ...den hatte ich möglicherweise selbst so getauft... weil man das Datum herauspickt... (also kein 30.2.09 möglich! )
    Offiziell heisst der "Microsoft Calendar Control" und ist die Datei mscal.ocx

    Ich habe ein Form von mir abgespeckt und an Dein Ziel angepasst.
    Alle nötigen Erklärungen sind in der XLS oder im Code.

    Jetzt tut es noch nichts, ausser Eingaben prüfen. Das Sub Datenübergabe kann direkt im Code des Forms angehängt werden, oder das Form übergibt an das Sub.

    Schau es an. Es ist nur eine Basis und kann beliebig erweitert werden, mit weiteren Eingaben, Prüfungen, Zwischenrufen, Berechnungen usw. (ich habe ein Form mit 1000 Zeilen). Auch Deine Bestätigung hoher Beträge wäre kein Problem.

    Die Datei ist eine echte XLS, nur die TXT-Endung wegmachen (das Forum akzeptiert keine XLS)

    Gruss Urs
     

    Attached Files:

  10. C2C4

    C2C4 Byte

    hi Urs,

    das ist ja wirklich sehr nett von dir. Sitze gerade bei meiner Mutter beim Geburtstag und kann es noch nicht ausprobieren... aber morgen komme ich dazu und melde mich dann wieder. Vorab schon einmal vielen Dank.

    LG c2c4
     
  11. Urs2

    Urs2 Megabyte

    ...was sein muss, muss sein... Glückwünsche vom Forum!

    Ich habe gleich noch die Bestätigungsfrage ab einem gewissen Betrag eingebaut.
    Das ist jetzt die gültige XLS.

    Gruss Urs
     

    Attached Files:

  12. C2C4

    C2C4 Byte

    hi Urs,

    die Gl&#252;ckw&#252;nsche sind angekommen :)

    So, nun hatte ich Zeit, deine gro&#223;e M&#252;he zu bewundern. Ich habe bereits ein schlechtes Gewissen, da ich "wenig" von Makros verstehe, du Dir so viel arbeit gemacht hast und ich es nicht schaffe, deine Datei "ordnungsgem&#228;&#223;" zu &#246;ffnen. :(

    Bei "klick" auf deinen Button kommt die Fehlermeldun: Ein Objekt konnte nicht geladen werden...". Danach ab ins Makro zum Punkt "Calender1 = Date -1"

    Wahrscheinlich dein angesprochenes Problem mit dem Fehlen des Calenders.

    Davon mal abgesehen habe ich nunmehr allg. Fragen:

    1. Wie kann ich denn eine Datei "hochladen"?
    2. Habe noch nicht "zitiert". Werde das mal gleich ausprobieren, wie das klappt! ...Werde wohl mal die faqs lesen!

    Ich m&#246;chts mich schon einmal Vorab f&#252;r deine vielen M&#252;hen bedanken. Deine gesamten Beschreibungen und Programmierungen haben sehr viel Arbeit in Anspruch genommen.

    Ich werde mich jetzt versuchen, genauer "durchzusteigen". Vll bist du ja schneller mit einer Antwort. Ansonsten nochmals vielen Dank!

    Gru&#223; c2c4

    P.S.: W&#252;rde dir ansonsten mal meine Tabelle schicken (per mail?), damit du alles nachvollziehen kannst.
     
  13. C2C4

    C2C4 Byte

    Mal sehen, ob das jetzt mit dem Zitieren geklappt hat.

    @ Urs:
    Des Weiteren habe ich wirklich nicht diese Calendar-Datei (habe gegooglet, um das Problem zu lösen, jedoch für 2007 gibt es keine spezielle Version. Kann ich da die von 2003 nehmen?).

    Ich bastele an anderen "Bausteinen" in meiner Datei erstmal weiter, da ich zur Zeit an den vorliegenden Lösung leider verzweifle. Bin aber abrufbereit, sollte es neue Lösungen geben.

    LG an alle
     
  14. Urs2

    Urs2 Megabyte

    Office &#252;berrascht immer wieder...

    Ich habe jetzt einmal geschaut, welches CalendarControl in meinem Excel2003 verwendet wird > es ist v9 f&#252;r Office2000.
    Seri&#246;s wie ich bin, hatte ich nun v11 f&#252;r Office2003 installiert... da wird mir aber der Dienstag als erster Wochentag angezeigt !

    Schimpfen und googeln > http://support.microsoft.com/kb/826761/de
    >>> "Ist ein Fehler im Modul ab v10, Sie k&#246;nnen viel Code schreiben oder v9 verwenden"... also alles wieder zur&#252;ck.

    Fazit:
    Lade Dir hier >>> http://www.fontstuff.com/mailbag/qvba01.htm die ZIP mit v9 f&#252;r Office2000 herunter >>>
    - die OCX und die HLP nach \windows\system32\ expandieren,
    - dann in Start\Ausf&#252;hren registrieren mit "regsvr32 c:\windows\system32\mscal.ocx"
    - und dann im VB-Editor > Extras\Verweise suchen und aktivieren

    Man k&#246;nnte nat&#252;rlich auch ohne diesen vorgefertigten Kalender auskommen >
    Im Form (genau wie in der Zelle) das Datum direkt eintippen, und dann im Code zuerst pr&#252;fen, ob es &#252;berhaupt ein Datum ist.
    ...das Modul ist aber sch&#246;ner, wirkt professioneller und kleine Spielereien m&#252;ssen im Leben sein...

    Ganz ohne Form w&#252;sste ich nicht, wie man im Blatt alle drei Zellen zusammen vern&#252;nftig pr&#252;fen k&#246;nnte.


    Hier im Forum hochladen >
    Im erweiterten Editor > unterhalb Texteingabe >> Button "Anh&#228;nge verwalten"
    Max 100kB, keine XLS, nur TXT oder ZIP (bei ZIP habe ich schon oft festgestellt, dass die verschiedenen Tools sich nicht m&#246;gen und die Datei sich dann nicht &#246;ffnen l&#228;sst...)
    Wenn > 100kB > hier als XLS hochladen >>> http://www.file-upload.net/
    und den Download-Link hier ins Forum setzen.

    Aber entferne zuerst alle Daten und Bezeichnungen, die die Welt nichts angehen...

    Gruss Urs


    Uebrigens > Wenn Du ein altes Acces2000 haben solltest > dort m&#252;sste die richtige mscal.ocx dabei sein...
     
    Last edited: Apr 19, 2009
  15. C2C4

    C2C4 Byte

    hi Urs,

    oje, und schon wieder Mühen für mich... und die dann noch vergebens.

    Aber ich habe deinen Rat befolgt und alles so gemacht, wie du beschrieben hast. Hatte mich bei den Verweisen ein wenig angestellt, aber es hat dann gefunzt :)

    ... sieht wirklich sehr gut und elegant aus!

    Nun folgen - wie sollte es auch anders sein - weitere Probleme.

    Kurzum: Ich schicke mal die Datei, so wie sie zur Zeit ist.

    Sehr gerne würde ich jetzt, wo ich den "Cal" nun kenne, selbigen benutzen. Ist elegant und einfach!

    Aber in deiner Form könnten nunmehr andere Funktionen eben nicht erfüllt werden.

    Vll siehst du ja eine Lösung "nur" mit dem "Cal" in meiner Datei - oder noch besser :)

    Danke dir im Voraus... habe ein paar Testdaten gelassen ;)

    Grüße aus Berlin
     

    Attached Files:

  16. Urs2

    Urs2 Megabyte

    Mache Dir keine Sorgen um mich, wenn ich keine Lust mehr haben sollte, werde ich das schon mitteilen...
    Deine Datei habe ich in meinem Excel2003 eben geöffnet, also funktioniert schon einmal mein Konvertierungs-Tool... zum ersten Mal benutzt...

    Dass da noch mehr drin sein müsste, als nur die drei Zellen, hatte ich mir schon vorgestellt. Da hattest Du ja schon schwer gearbeitet, ich muss jetzt zuerst deine Makros nachvollziehen können.

    Erste Frage >
    Wenn man die Prüfung der Eingaben vorerst weg lässt > Funktionieren Deine Makros so wie Du willst?

    Ich werde mir das heute Nacht einmal genau ansehen.
    So schnell überflogen, sehe ich keinen Grund, dass wir das nicht zum Laufen bringen sollten.

    Gruss Urs
     
  17. Urs2

    Urs2 Megabyte

    Auf meinem Excel2003 funktioniert das Ding jetzt so, wie ich verstanden hatte, dass es sein sollte.
    In eine XLS konvertieren und bearbeiten hat also geklappt.
    Jetzt soll mir Microsoft nur keinen Kummer machen, und beim Speichern als XLSM falsch zurück konvertiert haben...

    Die Datei hat etwas zugelegt... und sprengt jetzt das Forumslimit >>>
    http://www.file-upload.net/download-1594780/Haushaltsbuch2009pc-forum-v3.xlsm.html

    Die nötigen Erklärungen sind in der Datei oder im Code.

    Teste das einmal mit echten Daten... und mit echten Usern.

    Gruss Urs


    Das fängt ja gut an >
    Jetzt wollte ich meine Datei nochmals öffnen... geht nur schreibgeschützt...
    ...mein Konvertierungstool zum Schreiben soll neuer sein, als das gleiche Tool zum Lesen... Brrrhh
    Möge Dein Excel2007 schlauer sein !


    PS 2
    Ich habe jetzt meine eigene schreibgeschützte XLSM als XLS gespeichert, und diese normal öffnen können.
    Meine 2 neuen Buttons im Blatt Eingabe waren aber deaktiviert, d.h. von Buttons aus der Steuerelement-Toolbox in normale Buttons umgewandelt worden.
    Die Umwandlung von Active-X-Dingern scheint Mühe zu bereiten.

    Wenn Du auch Probleme haben solltest, kann ich die Buttons ersetzen, und Dir die XLS geben.
     
    Last edited: Apr 20, 2009
  18. Urs2

    Urs2 Megabyte

  19. C2C4

    C2C4 Byte

    hi Urs,

    Bis auf eines ja, denn den Fehler habe ich heute erst bemerkt, als ich etwas ausdrucken musste. Es handelt sichum das Makro zum Button "B&#252;ro - Material" auf dem Eingabe-Tabellenblatt. Da steht im Makro "SparteB&#252;ro-Material" noch die "alte" Ziel-Zelle zum Kopieren drin (muss jetzt anstatt "L2" nun "O2" hei&#223;en)!!!

    Habe mir bislang die "letzte" Version von dir heruntergelanden - aber nichts zu sehen :(

    Ich versuche es mal mit der davor!

    Lieben Dank f&#252;r "... da hast du schon ein wenig Zeit mit verbracht..."
    Ging runter wie &#214;l, denn ich habe mit meinen begrenzten Excel-Kenntnissen wirklich eine kleine Ewigkeit daf&#252;r ben&#246;tigt.

    Deine Arbeit macht das aber erst zu einer richtigen Anwendung. :bet:

    Mal sehen, was deine Vor-Version mir zeigt. Ich melde mich wieder und wie immer schon mal thx...

    c2c4

    P.S.: Die eher unwichtig erscheinenden Buttons sind f&#252;r mich nur Eingabe-Erleichterungen, wenn eine Ausgabe eben mal nicht in bar-form oder von mir direkt ausgegeben wurde. Die MwSt-S&#228;tze sind eben wichtig wegen Porto (=0&#37;) oder Essen (=7%) sowie die Angabe, ob es sich f&#252;r meinen Privathaushalt oder gewerblich sich auswirkt.

    Direkte Verkn&#252;pfungen sind nicht zu einer anderen Datei vorgesehen, jedoch benutze ich diese Daten und Ergebnisse f&#252;r meine Wirtschaftsplanung. Naja, man h&#228;tte auch was kaufen k&#246;nnen (Lexware hatte ich schon), aber in Excel kann ich es eben besser anpassen :)

    LG c2c4
     
    Last edited: Apr 20, 2009
  20. C2C4

    C2C4 Byte


    nee, entweder ich bin zu ..., oder ich muss noch was reaktivieren!?

    Ich sehe jedenfalls nichts, kann aber beide Dateien problemlos öffnen:confused:


    ... du arbeitest wohl auch noch mitten in der Nacht...

    LG c2c4
     
Thread Status:
Not open for further replies.

Share This Page