Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Prüfen ob Datum schon vorhanden

Betrifft: Prüfen ob Datum schon vorhanden von: Michael
Geschrieben am: 02.09.2020 12:05:45

Hallo liebe Forum Mitglieder,


bin in Sachen VBA nicht so fit und suche hier Hilfe


Ich gebe in einer Form mit 8 TextBoxen werte ein, die in Tabelle1 später übertragen werden.

In Textbox1 gebe ich ein Datum ein...alle anderen TextBoxen bekommen ganze Zahlen.

Das Übertragen der Werte klappt.


Nun möchte ich aber verhindern, das ein schon vorhandenes Datum noch einmal in der Tabelle gespeichert wird.

Es müsste also ein Prüfung in meinem Code, wo vorab geprüft wird ob in der Tabelle1 das Datum schon vorhanden ist und ich das speichern so abbrechen kann oder ein neues Datum eingeben kann?

mein Code ohne diese Funktion sieht so aus:

Private Sub CommandButton1_Click()
'Daten in Tabelle schreiben
         
    Dim source As Variant, destination As Variant
      
    source = Array(CDate(TextBox1.Text), CDbl(TextBox2.Text), CDbl(TextBox3.Text), CDbl( _
TextBox4.Text), CDbl(TextBox5.Text), CDbl(TextBox6.Text), CDbl(TextBox7.Text), CDbl(TextBox8. _
Text))
    'IsError(Value(TextBox1.Text), -1)
    Set destination = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(,  _
UBound(source) + 1)

    destination.Value = source

    MsgBox "Daten gespeichert.", vbInformation, Tag
         
End Sub

Ich hoffe es hat hier jemand eine Lösung für mich?


Danke vorab.

Gruß Michael

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Nepumuk
Geschrieben am: 02.09.2020 13:07:03

Hallo Michael,

teste mal:

Private Sub CommandButton1_Click()
    'Daten in Tabelle schreiben
    
    Dim source As Variant
    
    If Application.CountIf(Columns(1), CDate(TextBox1.Text)) = 0 Then
        
        source = Array(CDate(TextBox1.Text), CDbl(TextBox2.Text), CDbl(TextBox3.Text), CDbl(TextBox4.Text), _
            CDbl(TextBox5.Text), CDbl(TextBox6.Text), CDbl(TextBox7.Text), CDbl(TextBox8.Text))
        
        'IsError(Value(TextBox1.Text), -1)
        Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, UBound(source) + 1) = source
        
        MsgBox "Daten gespeichert.", vbInformation, Tag
        
    Else
        MsgBox "Datum schon vorhanden.", vbExclamation, "Hinweis"
    End If
End Sub

Gruß
Nepumuk

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Nepumuk
Geschrieben am: 02.09.2020 13:35:59

Hallo Michael,

damit es auch klappt wenn du dich in einer anderen Tabelle befindest:
If Application.CountIf(Worksheets("Tabelle1").Columns(1), CDate(TextBox1.Text)) = 0 Then

Gruß
Nepumuk

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Michael
Geschrieben am: 02.09.2020 13:41:05

Hallo Nepumuk

geht leider nicht :)

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Nepumuk
Geschrieben am: 02.09.2020 13:48:39

Hallo Michael,

ich hab das getestet, bei mir funktioniert es. Hast du meinen Nachtrag beachtet?

Gruß
Nepumuk

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Michael
Geschrieben am: 02.09.2020 14:08:34

Hallo Nepumuk,

ja habe ich gesehen und ich haben den Code auch so angepasst.
Doch bei wird trotzdem, obwohl das Datum schon da ist, in der Tabelle in der Zeile darunter,
das selbe Datum abgelegt.

Hier noch einmal der Code:
Private Sub CommandButton1_Click()
    'Daten in Tabelle schreiben
    
    Dim source As Variant
    
   If Application.CountIf(Worksheets("Tabelle1").Columns(1), CDate(TextBox1.Text)) = 0 Then
        
        source = Array(CDate(TextBox1.Text), CDbl(TextBox2.Text), CDbl(TextBox3.Text), CDbl( _
TextBox4.Text), _
            CDbl(TextBox5.Text), CDbl(TextBox6.Text), CDbl(TextBox7.Text), CDbl(TextBox8.Text))
        
        'IsError(Value(TextBox1.Text), -1)
        Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, UBound(source)  _
+ 1) = source
        
        MsgBox "Daten gespeichert.", vbInformation, Tag
        
    Else
        MsgBox "Datum schon vorhanden.", vbExclamation, "Hinweis"
    End If
End Sub
????

Gruß
Michael

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Nepumuk
Geschrieben am: 02.09.2020 14:15:27

Hallo Michael,

kannst du die Mappe hochladen? Ich brauche nur die Tabelle1 mit den Daten in Spalte A plus das UserForm.

Gruß
Nepumuk

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Michael
Geschrieben am: 02.09.2020 14:45:45

Ok....schau mal ob du die Datei öffnen kannst.
Ich weiß nicht ob ich das richtig gemacht habe?

kann man auch zusätzlich in der Form für die TextBox eins eine schnelle Eingabe für das Datum einbauen?
Also das ich für 15.08.2020 einfach nur die Zahlen ohne Punkt eingebe?

Hier der Link zur Datei:

https://www.herber.de/bbs/user/139994.xlsm

Gruß
Michael

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Nepumuk
Geschrieben am: 02.09.2020 14:59:28

Hallo Michael,

in deiner Spalte A steht Text und kein Datum. Um das zu bereinigen, Spalte A markieren - Register DATEN - Text in Spalten - Fertigstellen. Nochmal testen.

Ein Datum kannst du auch so eingeben: 8-8-20 CDate macht dann 08.08.2020 daraus.

Gruß
Nepumuk

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Michael
Geschrieben am: 02.09.2020 15:39:23

Hallo Nepumuk,

Alles klar....jetzt gibt es die Meldung "Datum schon vorhanden".

das mit dem Datum?.....bei dieser Variante muss ich zu den Zahlen das minus eingeben.
ich wollte eigentlich nur zahlen eingeben :)

Es müsste doch gehen, das man die TextBox1 so einstellt, das er nur ein Datum zulässt bei der Eingabe und
wenn ich die ersten 2 Zahlen eingebe, automatisch ein Punkt gesetzt wird?..die nächsten 2 Zahlen wieder automatisch Punkt dann vierstellig für Jahr.

Wie müsste das eingebaut werden?

Ach ja......wie du ja in der Testmappe vielleicht auch gesehen hast, gibt es eine zweite Tabelle in der
in den selben Spalten Werte abgelegt werden sollen....für den Mittwoch.
Die andere Tabelle war für Samstag.
ist es möglich über die Userform zu unterscheiden, ob man in Tabelle "Samstag" oder "Mittwoch" die Daten ablegen möchte?

Gruß
Michael

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Nepumuk
Geschrieben am: 02.09.2020 16:09:18

Hallo Michael,

deine Mappe zurück.

https://www.herber.de/bbs/user/139999.xlsm

Ich habe den Code im Modul des Userforms sowie dessen Namen geändert. Die Aufrufe im Modul2 sind ebenfalls angepasst.

Gruß
Nepumuk

Betrifft: AW: Prüfen ob Datum schon vorhanden
von: Michael
Geschrieben am: 02.09.2020 16:32:38

Hallo Nepumuk,

perfekt….klappt super :)

Ich Danke dir.

Gruß
Michael

Beiträge aus dem Excel-Forum zum Thema "Prüfen ob Datum schon vorhanden "