Office: (Office 2013) Excel VBA: Probleme MS Datepicker in Userform nutzen

Helfe beim Thema Excel VBA: Probleme MS Datepicker in Userform nutzen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Leute, ich sitze seit einer Woche vor meinem Rechner und verzweifle. Ich muss eine Tabelle erstellen die zur Abfrage wichtiger... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von uwe222222, 21. August 2014.

  1. Excel VBA: Probleme MS Datepicker in Userform nutzen


    Hallo liebe Leute,

    ich sitze seit einer Woche vor meinem Rechner und verzweifle.
    Ich muss eine Tabelle erstellen die zur Abfrage wichtiger Informationen täglich genutzt werden soll. Die erfassten Werte werden in eine Tabelle übertragen und diese wir mit Pivot ausgewertet.

    Nun habe ich vor 3 Tagen die Userform entdeckt und darin die optimale Lösung gefunden um das erfassen der Daten nutzerfreunlich zu gestallten.

    Problem: Es müssen drei Daten erfasst werden, die ich mit einem Textfeld in der Userform erfassen wollte. Die dann in die Tabelle übertragenen Werte sind falsch formatiert. Und Excel kann diese Daten in den Pivot Tabellen nicht zusammenfassen oder gruppieren sowie ienige Formeln funktionieren nicht.

    Die Lösnug habe ich im Datepicker gefunden. allerdings habe ich wirklich überhaupt keine Ahnung von VBA und den Bisherigen Quellcode nur aus einem Buch kopiert und angepasst.

    Kann mir bitte jemand helfen den Quellcode anzupassen damit die im MS Datepicker in die Tabelle übertragen werden?
    (Das Formular zeigt auch Daten anderer Zeilen an wenn diese Ausgewählt werden, lädt also auch Daten ins Formular)

    Wenn mir jemand helfen kann?! Ich habe einfach mal den Quellcode der des Formulars zur Erfassung angehängt!

    Die mit DTP_Felder machen mir diese Probleme, da ich gar nicht weiß was ich mit denen machen soll.
    In den Makros habe ich nichts außer Makro zum laden des Formulars...

    Herzlichen
    *sos

    Option Explicit


    Private Sub cmdAbbruch_Click()

    'schließt das Formular frmBuchungen ohne zu speichern
    Unload frmBuchungen


    End Sub



    Private Sub cmd_Leeren_Click()

    DTP_Abreisedatum = ""
    DTP_AnreiseDatum = ""
    txtAnzahlNächte = ""
    txtAnzahlPersonen = ""
    DTP_DatumReservierung = ""
    txtGastname = ""
    txtWertgesamt = ""
    txtMitarbeiterKürzel = ""
    cmbEGSGTG = ""
    cmbgekommenueber = ""
    cmbKURMMFÜR = ""
    CmbKurtaxeBezahlt = ""
    cmbLand = ""
    cmbvorherigeAngebote = ""
    cmbWellnessBeratung = ""
    cmbZielgruppe = ""
    cmbZimmerkategorie = ""

    End Sub

    Private Sub cmd_EingabefelderLeeren_Click()

    ' Eingabefelder leeren

    DTP_Abreisedatum = ""
    DTP_AnreiseDatum = ""
    txtAnzahlNächte = ""
    txtAnzPersonen = ""
    DTP_DatumReservierung = ""
    txtGastname = ""
    txtWertgesamt = ""
    txt_MitarbeiterKürzel = ""
    cmbEGSGTG = ""
    cmbgekommenueber = ""
    cmbKURMMFÜR = ""
    CmbKurtaxeBezahlt = ""
    cmbLand = ""
    cmbvorherigeAngebote = ""
    cmbWellnessBeratung = ""
    cmbZielgruppe = ""
    cmbZimmerkategorie = ""

    End Sub



    Private Sub cmd_Neu_Click()

    Dim lngIndex As Long
    Dim lngMax As Long

    ' Letzte belegte Zelle finden

    For lngIndex = 1 To 4

    If ActiveSheet.Cells(Rows.Count, lngIndex).End(xlUp).Row > lngMax Then

    lngMax = ActiveSheet.Cells(Rows.Count, lngIndex).End(xlUp).Row


    End If

    Next

    ' Daten an Zellen übergeben

    ActiveSheet.Cells(lngMax + 1, 2) = DTP_DatumReservierung.Text
    ActiveSheet.Cells(lngMax + 1, 3) = txtGastname.Text
    ActiveSheet.Cells(lngMax + 1, 4) = txtAnzPersonen.Text
    ActiveSheet.Cells(lngMax + 1, 5) = cmbZimmerkategorie.Text
    ActiveSheet.Cells(lngMax + 1, 6) = DTP_AnreiseDatum.Text
    ActiveSheet.Cells(lngMax + 1, 7) = DTP_Abreisedatum.Text
    ActiveSheet.Cells(lngMax + 1, 8) = txtAnzahlNächte.Text
    ActiveSheet.Cells(lngMax + 1, 9) = cmbKURMMFÜR.Text
    ActiveSheet.Cells(lngMax + 1, 10) = cmbWellnessBeratung.Text
    ActiveSheet.Cells(lngMax + 1, 11) = txtWertgesamt.Text
    ActiveSheet.Cells(lngMax + 1, 12) = txt_MitarbeiterKürzel.Text
    ActiveSheet.Cells(lngMax + 1, 13) = cmbZielgruppe.Text
    ActiveSheet.Cells(lngMax + 1, 14) = cmbEGSGTG.Text
    ActiveSheet.Cells(lngMax + 1, 15) = cmbgekommenueber.Text
    ActiveSheet.Cells(lngMax + 1, 16) = cmbvorherigeAngebote.Text
    ActiveSheet.Cells(lngMax + 1, 17) = CmbKurtaxeBezahlt.Text
    ActiveSheet.Cells(lngMax + 1, 18) = cmbLand.Text

    End Sub

    Private Sub cmdEingabe_Click()

    ActiveSheet.Cells(spn_Datensatz.Value, 2).Value = DTP_DatumReservierung.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 3).Value = txtGastname.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 4).Value = txtAnzPersonen.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 5).Value = cmbZimmerkategorie.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 6).Value = DTP_AnreiseDatum.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 7).Value = DTP_Abreisedatum.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 8).Value = txtAnzahlNächte.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 9).Value = cmbKURMMFÜR.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 10).Value = cmbWellnessBeratung.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 11).Value = txtWertgesamt.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 12).Value = txt_MitarbeiterKürzel.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 13).Value = cmbZielgruppe.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 14).Value = cmbEGSGTG.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 15).Value = cmbgekommenueber.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 16).Value = cmbvorherigeAngebote.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 17).Value = CmbKurtaxeBezahlt.Text
    ActiveSheet.Cells(spn_Datensatz.Value, 18).Value = cmbLand.Text



    End Sub

    Private Sub DTP_DatumReservierung_Click()

    End Sub

    Private Sub spn_Datensatz_Change()


    ' Zeile per Drehfeld wechseln

    ActiveSheet.Cells(spn_Datensatz.Value, 1).Select


    ' Datensätze einblenden

    DTP_DatumReservierung.Text = ActiveSheet.Cells(spn_Datensatz.Value, 2).Value
    txtGastname.Text = ActiveSheet.Cells(spn_Datensatz.Value, 3).Value
    txtAnzPersonen.Text = ActiveSheet.Cells(spn_Datensatz.Value, 4).Value
    cmbZimmerkategorie.Text = ActiveSheet.Cells(spn_Datensatz.Value, 5).Value
    DTP_AnreiseDatum.Text = ActiveSheet.Cells(spn_Datensatz.Value, 6).Value
    DTP_Abreisedatum.Text = ActiveSheet.Cells(spn_Datensatz.Value, 7).Value
    txtAnzahlNächte.Text = ActiveSheet.Cells(spn_Datensatz.Value, 8).Value
    cmbKURMMFÜR.Text = ActiveSheet.Cells(spn_Datensatz.Value, 9).Value
    cmbWellnessBeratung.Text = ActiveSheet.Cells(spn_Datensatz.Value, 10).Value
    txtWertgesamt.Text = ActiveSheet.Cells(spn_Datensatz.Value, 11).Value
    txt_MitarbeiterKürzel.Text = ActiveSheet.Cells(spn_Datensatz.Value, 12).Value
    cmbZielgruppe.Text = ActiveSheet.Cells(spn_Datensatz.Value, 13).Value
    cmbEGSGTG.Text = ActiveSheet.Cells(spn_Datensatz.Value, 14).Value
    cmbgekommenueber.Text = ActiveSheet.Cells(spn_Datensatz.Value, 15).Value
    cmbvorherigeAngebote.Text = ActiveSheet.Cells(spn_Datensatz.Value, 16).Value
    CmbKurtaxeBezahlt.Text = ActiveSheet.Cells(spn_Datensatz.Value, 17).Value
    cmbLand.Text = ActiveSheet.Cells(spn_Datensatz.Value, 18).Value


    ' Datensatznummer anzeigen

    txt_Datensatz.Text = "Aktuelle Zeile = " & CStr(spn_Datensatz.Value)

    End Sub



    Private Sub UserForm_Initialize()


    ' Einstellungen

    spn_Datensatz.Min = 3
    spn_Datensatz.Max = Rows.Count - 1

    If ActiveCell.Row < 3 Then

    spn_Datensatz.Value = 3

    Else

    spn_Datensatz.Value = ActiveCell.Row


    End If


    End Sub

    :)
     
    uwe222222, 21. August 2014
    #1
  2. Hallo!
    Ich würde die Finger vom Datepicker lassen, wenn die Mappe auf mehreren Rechnern funktionieren soll.
    In den neueren Versionen ist er nämlich nicht mehr per default vorhanden!
    Code:
    Wie Du siehst, enthält eine TextBox ... Text!
    Wandele ihn explizit in ein Datum um:
    Code:
    Gruß, Ralf
     
  3. Hallo Uwe,

    wie bereits von einem anderen Antworter erwähnt, ist das DTP-Steuerelement nicht immer automatisch unter VBA-Verfügbar. Hängt von Windows- und/oder Officeversion ab.

    Ansonsten hat das DTP-Element keine Text-Eigenschaft, sondern "nur" eine Value-Eigenschaft. Diese liefert das ausgewählte Datum als Ergebnis und kann direkt in die Zellen geschrieben werden.
    Beim leerne der Steuerelemente müssen dies auf ein Datum gesetzt werden "" liefert einen Fehler.

    Bei Zahleneingaben sollten die Eingaben in die Textboxen (Texte) vor dem Eintragen in die Zellen in eine Zahl umgewadelt werden. Betrifft bei dir den "Wert gesamt" und ggf. auch "Anzahl Personen" und "Anzahl Nächte".

    Ich hab mal die wesentlichen Anpassungen in deinem Code gemacht und auch ein paar Optimierungen.
    • Für das Eintragen der Eingaben nur noch eine Prozedur, die über die Schaltflächen "Eingabe" bzw. "Neu" die Zeilennummer geliefert bekommt.
    • Du hast zwei Schaltlächen, die leeren. Hierfür jetzt einen Prozedur, die von den Schaltflächen-Makros aufgerufen wird.
    • Nach dem Anlegen eines neuen Datensatzes wird auch der Spinbutton auf diese Zeile gesetzt.

    So wird der Code etwas pflegeleichter, da Dopplungen vermieden werden.

    Gruß
    Franz
    Code:
     
    Franz_by, 23. August 2014
    #3
  4. Excel VBA: Probleme MS Datepicker in Userform nutzen

    Vielen Dank für die schnellen Antworten,

    Wenn ich es richtig verstanden habe kann man den Datepicker doch nachträglich installieren?

    @ Franz: Herzlichen Dank für Deinen Code, er funktioniert einwandfrei und Deine Verbesserungen sind super. Ohne Deine Hilfe hätte ich mir sicher noch weiter Nächte um die Ohren gehauen... Jetzt seht erst mal ein VBA Kurs an ;-)

    Beste Grüße
    Uwe
     
    uwe222222, 24. August 2014
    #4
Thema:

Excel VBA: Probleme MS Datepicker in Userform nutzen

Die Seite wird geladen...
  1. Excel VBA: Probleme MS Datepicker in Userform nutzen - Similar Threads - Excel VBA Probleme

  2. VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  3. Excel VBA Spalten mit Ordnerinhalt vergleichen

    in Microsoft Excel Hilfe
    Excel VBA Spalten mit Ordnerinhalt vergleichen: Hallo, Bin ehr Excel VBA Neuling, Würde aber gerne in einer bestehender Tabelle die Auflistung der Ordner mit dem eigentlichen Stand in den besagten Ordner kontrollieren. Also in der Spalte Q10...
  4. Array aus Excel Tabelle einlesen Word VBA

    in Microsoft Excel Hilfe
    Array aus Excel Tabelle einlesen Word VBA: Hallo, ich benötige in einer Word Datei die Werte einer Excel Datei. Ich würde gerne eine Spalte als Array einlesen. Wie das Array ein lesen in Excel geht weiß ich, aber wie schaffe ich den...
  5. Dynamische Tabellen mit automatischer Aktualisierung

    in Microsoft Excel Hilfe
    Dynamische Tabellen mit automatischer Aktualisierung: Hallo in die Runde! Vorab schon mal vielen Dank für alle Mühen und die Hilfe! Ich habe folgendes Anliegen: Ich habe eine Geräteliste als Excel Datei mit einigen verschiedenen Tabellenblättern...
  6. Probleme beim Dividieren mit VBA und Excel

    in Microsoft Excel Hilfe
    Probleme beim Dividieren mit VBA und Excel: Hallo zusammen, habe ein Problem wenn ich zwei Zahlen dividiere, ich glaube es könnte mit den Formaten zusammenhängen, aber ich habe die Lösung noch nicht gefunden: Ich habe zwei Zahlen, die ich...
  7. VBA geht nicht mehr nach Microsoft Dezember Update - Excel 2013

    in Microsoft Excel Hilfe
    VBA geht nicht mehr nach Microsoft Dezember Update - Excel 2013: Guten Morgen, am 10. und 11. haben wir jede Menge Microsoft Updates für unsere WIN 7 64 bit (auch zwei Win 8.1) Computer mit Excel 2013 und 2010 erhalten. Seitdem funktionieren unsere Excel...
  8. Excel 2007 - VBA - Speichern durch Makro auf Server macht Probleme

    in Microsoft Excel Hilfe
    Excel 2007 - VBA - Speichern durch Makro auf Server macht Probleme: Hallo Forum, bei uns laufen die Rechner mit XP, Excel 2007 und der Server läuft noch mit Windows Server 2003. Seit ich Makros schreibe hat das Speichern via VBA bzw. das Back-Up-erstellen immer...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden