Avatar billede richter1 Nybegynder
19. november 2006 - 19:10 Der er 5 kommentarer og
2 løsninger

inputmaske til dato

http://www.eksperten.dk/spm/745704

i ovennævnte spørgsmål har jeg en søgefunktion hvor der skal intastes en dato. Her vil jeg gerne kunne bruge komma som skilletegn, men i regnearket skal det være bindetegn som skilletegn.
Hvordan knækkes den?
Avatar billede kabbak Professor
19. november 2006 - 19:21 #1
Sub søg_dato()

Dim søg As Date, Data As Variant, I As Long, StrSøg As String
StrSøg = InputBox("Indtast data:  ", "Dato (DD,MM,ÅÅÅÅ)") ' Nu skal du bruge komma
If StrSøg = "" Then Exit Sub ' Ved Cancel afbrydes koden
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
End Sub
Avatar billede kabbak Professor
19. november 2006 - 19:28 #2
lidt mere til at fange fejl i indtastningen


Sub søg_dato()

    Dim søg As Date, Data As Variant, I As Long, StrSøg As String
    StrSøg = InputBox("Indtast data:  ", "Dato (DD,MM,ÅÅÅÅ)")    ' Nu skal du bruge komma
   
    If StrSøg = "" Then Exit Sub    ' Ved Cancel  eller tom afbrydes koden
    If UBound(Split(StrSøg, ",")) < 2 Then ' tjekker om der er 2 kommaer
        MsgBox "Fejl i indtastning, husk DD,MM,ÅÅÅÅ"
        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
End Sub
Avatar billede richter1 Nybegynder
19. november 2006 - 19:52 #3
Hej igen
Søge rutinen skal bruges i en userform, til styring af produkter. Når der tastes forkert i datoen, skal den stille sig i textboxen igen, så indtastningen kan gentages. Kan du fikse det?
Avatar billede kabbak Professor
19. november 2006 - 20:07 #4
Ret  TextBox1 til navnet på din tekstbox

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    ' tjekker om der er 2 kommaer
        MsgBox "Fejl i indtastning, husk 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

End Sub
Avatar billede richter1 Nybegynder
24. november 2006 - 14:51 #5
Jeg lever stadig - men har været optage at andet arbejde - derfor den forsinkede tilbagemelding. Det ser lovende ud, jeg tester den lige og vender tilbage. :o)
Avatar billede richter1 Nybegynder
25. november 2006 - 09:48 #6
Super - virker fint - helt som ønsket - lægger du et svar?
Avatar billede kabbak Professor
25. november 2006 - 11:59 #7
et svar ;-))
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester