Avatar billede richter1 Nybegynder
29. november 2006 - 21:53 Der er 16 kommentarer og
1 løsning

dato formatering fortsat

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

I forlængelse af ovenstående spørgsmål er der opstået et behov for at både komma og - accepteres som skilletegn.
Avatar billede gibber Nybegynder
29. november 2006 - 22:06 #1
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

End Sub
Avatar billede gibber Nybegynder
29. november 2006 - 22:12 #2
Ups.

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

End Sub
Avatar billede richter1 Nybegynder
29. november 2006 - 22:18 #3
hej gibber
det var hurtigt :-) - men den acceptere ikke en indtastning med komma som skilletegn
Avatar billede gibber Nybegynder
29. november 2006 - 22:28 #4
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

End Sub
Avatar billede richter1 Nybegynder
29. november 2006 - 22:33 #5
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.
Avatar billede richter1 Nybegynder
29. november 2006 - 22:34 #6
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.
Avatar billede gibber Nybegynder
29. november 2006 - 22:44 #7
Er ikke sikker på hvad du mener, prøv således:

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

End Sub
Avatar billede richter1 Nybegynder
29. november 2006 - 22:56 #8
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?
Avatar billede kabbak Professor
29. november 2006 - 23:03 #9
TextBox1.Text = format(søg,"dd-mm-yyy")
Avatar billede kabbak Professor
29. november 2006 - 23:04 #10
hov der manglede et Y
TextBox1.Text = format(søg,"dd-mm-yyyy")
Avatar billede gibber Nybegynder
30. november 2006 - 06:49 #11
og kabbak redder dagen...igen :)
Avatar billede richter1 Nybegynder
30. november 2006 - 20:50 #12
og tak for det, det virker perfekt. læg venligst et svar.
mvh.
Richter
Avatar billede gibber Nybegynder
30. november 2006 - 21:31 #13
Point må gå til kabbak - det er jo alligevel ham som har lavet den oprindelige makro.
Avatar billede hubertus Seniormester
30. november 2006 - 21:50 #14
hvad med at dele?
Avatar billede kabbak Professor
30. november 2006 - 22:46 #15
giv dem til gibber ;-))
Avatar billede richter1 Nybegynder
01. december 2006 - 17:04 #16
Det er fint med mig - så læg et svar :-)
Avatar billede gibber Nybegynder
03. december 2006 - 15:33 #17
Ok, her er et svar så vi kan få lukket spørgsmålet.

Tak :)
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Paychex Europe

Scrum Master

Riskpoint A/S (Riskpoint Solutions Limited)

IT Business Analyst