Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim søg As Date, Data As Variant, I As Long, StrSøg As String StrSøg = TextBox1.Text ' Nu skal du bruge komma If StrSøg = "" Then Exit Sub ' Ved tom afbrydes koden If UBound(Split(StrSøg, ",")) Or UBound(Split(StrSøg, "-")) < 2 Then ' tjekker om der er 2 kommaer eller bindestreger MsgBox "Fejl i indtastning, husk DD,MM,ÅÅÅÅ eller DD-MM-ÅÅÅÅ" TextBox1.SelStart = 0 TextBox1.SelLength = Len(TextBox1) Cancel = True Exit Sub End If søg = DateSerial(Split(StrSøg, ",")(2), Split(StrSøg, ",")(1), Split(StrSøg, ",")(0))
Data = Worksheets(3).Range("A1", Range("A65536").End(xlUp)) For I = 4 To UBound(Data) If Data(I, 1) = søg Then Range("A" & I & ":F" & I).ClearContents End If Next
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim søg As Date, Data As Variant, I As Long, StrSøg As String StrSøg = TextBox1.Text ' Nu skal du bruge komma If StrSøg = "" Then Exit Sub ' Ved tom afbrydes koden If UBound(Split(StrSøg, ",")) Or UBound(Split(StrSøg, "-")) < 2 Then ' tjekker om der er 2 kommaer eller bindestreger MsgBox "Fejl i indtastning, husk DD,MM,ÅÅÅÅ eller DD-MM-ÅÅÅÅ" TextBox1.SelStart = 0 TextBox1.SelLength = Len(TextBox1) Cancel = True Exit Sub End If If UBound(Split(StrSøg, ",")) = 2 Then søg = DateSerial(Split(StrSøg, ",")(2), Split(StrSøg, ",")(1), Split(StrSøg, ",")(0)) Else søg = DateSerial(Split(StrSøg, "-")(2), Split(StrSøg, "-")(1), Split(StrSøg, "-")(0)) End If Data = Worksheets(3).Range("A1", Range("A65536").End(xlUp)) For I = 4 To UBound(Data) If Data(I, 1) = søg Then Range("A" & I & ":F" & I).ClearContents End If Next
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim søg As Date, Data As Variant, I As Long, StrSøg As String StrSøg = TextBox1.Text ' Nu skal du bruge komma If StrSøg = "" Then Exit Sub ' Ved tom afbrydes koden If UBound(Split(StrSøg, ",")) = 2 Then GoTo videre If UBound(Split(StrSøg, "-")) = 2 Then GoTo videre MsgBox "Fejl i indtastning, husk DD,MM,ÅÅÅÅ eller DD-MM-ÅÅÅÅ" TextBox1.SelStart = 0 TextBox1.SelLength = Len(TextBox1) Cancel = True Exit Sub 'End If
videre: If UBound(Split(StrSøg, ",")) = 2 Then søg = DateSerial(Split(StrSøg, ",")(2), Split(StrSøg, ",")(1), Split(StrSøg, ",")(0)) Else søg = DateSerial(Split(StrSøg, "-")(2), Split(StrSøg, "-")(1), Split(StrSøg, "-")(0)) End If Data = Worksheets(3).Range("A1", Range("A65536").End(xlUp)) For I = 4 To UBound(Data) If Data(I, 1) = søg Then Range("A" & I & ":F" & I).ClearContents End If Next
nu accepteres både komma og bindestreg, men der konverteres ikke fra komma til bindestreg i textboxen, således som det skete i den oprindelige løsning.
ideen er at uanset hvilken af de to indtastningsmåder brugeren anvender, så skal datoen i textboxen se ud som følger 12-12-2006, da det er det format, jeg skal bruge senere.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim søg As Date, Data As Variant, I As Long, StrSøg As String StrSøg = TextBox1.Text ' Nu skal du bruge komma If StrSøg = "" Then Exit Sub ' Ved tom afbrydes koden If UBound(Split(StrSøg, ",")) = 2 Then GoTo videre If UBound(Split(StrSøg, "-")) = 2 Then GoTo videre MsgBox "Fejl i indtastning, husk DD,MM,ÅÅÅÅ eller DD-MM-ÅÅÅÅ" TextBox1.SelStart = 0 TextBox1.SelLength = Len(TextBox1) Cancel = True Exit Sub 'End If
videre: If UBound(Split(StrSøg, ",")) = 2 Then søg = DateSerial(Split(StrSøg, ",")(2), Split(StrSøg, ",")(1), Split(StrSøg, ",")(0)) TextBox1.Text = søg Else søg = DateSerial(Split(StrSøg, "-")(2), Split(StrSøg, "-")(1), Split(StrSøg, "-")(0)) End If Data = Worksheets(3).Range("A1", Range("A65536").End(xlUp)) For I = 4 To UBound(Data) If Data(I, 1) = søg Then Range("A" & I & ":F" & I).ClearContents End If Next
Så er den næsten ved at være i mål. Når jeg indtaster f.eks 11,12,06 resultere den i 11-12-2006, men hvis jeg indtaster 11-12-06, så forbliver formatet 11-12-06, og ikke som ønsket 11-12-2006. Kan du også klare den sidste del?
Ok, her er et svar så vi kan få lukket spørgsmålet.
Tak :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.