Convertir en date plusieurs colonnes

Bonjour le forum

Je souhaite convertir en dates le contenu des colonnes : G, H, I, L, Q, AB, AC, AD et AE

Mais mon code ne fonctionne pas cad les colonnes ne sont pas en date.

Désolée pour la longueur, ça va piquer les yeux des puristes

11test.xlsx (9.31 Ko)

Merci d'avance pour votre aide

sub test
    LastRow = OngletBase.Cells(OngletBase.Rows.Count, "A").End(xlUp).Row
    For i = 2 To LastRow
        If OngletBase.Range("G" & i).Value <> "" And IsDate(OngletBase.Range("G" & i).Value) = False Then
            OngletBase.Range("G" & i).Value = DateValue(OngletBase.Range("G" & i).Value)
        End If
        If OngletBase.Range("H" & i).Value <> "" And IsDate(OngletBase.Range("H" & i).Value) = False Then
            OngletBase.Range("H" & i).Value = DateValue(OngletBase.Range("H" & i).Value)
        End If
        If OngletBase.Range("I" & i).Value <> "" And IsDate(OngletBase.Range("I" & i).Value) = False Then
            OngletBase.Range("I" & i).Value = DateValue(OngletBase.Range("I" & i).Value)
        End If
        If OngletBase.Range("L" & i).Value <> "" And IsDate(OngletBase.Range("L" & i).Value) = False Then
            OngletBase.Range("L" & i).Value = DateValue(OngletBase.Range("L" & i).Value)
        End If

        If OngletBase.Range("Q" & i).Value <> "" And IsDate(OngletBase.Range("Q" & i).Value) = False Then
            OngletBase.Range("Q" & i).Value = DateValue(OngletBase.Range("Q" & i).Value)
        End If
        If OngletBase.Range("AB" & i).Value <> "" And IsDate(OngletBase.Range("AB" & i).Value) = False Then
            OngletBase.Range("AB" & i).Value = DateValue(OngletBase.Range("AB" & i).Value)
        End If
        If OngletBase.Range("AC" & i).Value <> "" And IsDate(OngletBase.Range("AC" & i).Value) = False Then
            OngletBase.Range("AC" & i).Value = DateValue(OngletBase.Range("AC" & i).Value)
        End If
        If OngletBase.Range("AD" & i).Value <> "" And IsDate(OngletBase.Range("AD" & i).Value) = False Then
            OngletBase.Range("AD" & i).Value = DateValue(OngletBase.Range("AD" & i).Value)
        End If
        If OngletBase.Range("AE" & i).Value <> "" And IsDate(OngletBase.Range("AE" & i).Value) = False Then
            OngletBase.Range("AE" & i).Value = DateValue(OngletBase.Range("AE" & i).Value)
        End If

    Next i
end sub

Bonjour

Ci joint ma solution

11test.xlsm (20.05 Ko)

A+ François

bonjour fopinem,

Sub Convertir()
     For Each col In Array("L", "Q", "AB", "AC", "AD")
          With Sheets("feuil1").Columns(col)
               .TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=IIf(col = "Q", Array(1, 5), Array(1, 4)), TrailingMinusNumbers:=True
               .AutoFit
          End With
     Next
End Sub

EDIT : salut fanfan38

Rechercher des sujets similaires à "convertir date colonnes"