Exécuter cette macro sur toute la colonne

Résolu
nonossov Messages postés 638 Statut Membre -  
nonossov Messages postés 638 Statut Membre -
Bonjour Mes amis

Voici le code du macro, s'il est possible je dois l'exécuter sur toute la colonne B,

Public [/contents/446-fichier-sub Sub] CorrectionDateScanfact()
Selection.NumberFormat = "dd/mm/yyyy;@"
    
Dim myDate As Range
Dim dkoupDate() As String

    For Each myDate In Selection
        If (myDate.Text = "") Or (IsNull(myDate.Text)) Then
            Exit For
        ElseIf ((myDate.Text) Like "-*") Then
            myDate.Value = ""
        Else
            dkoupDate = Split(myDate.Text, "-")
            If dkoupDate(1) = "Jan" Then
                dkoupDate(1) = "01"
            ElseIf dkoupDate(1) = "Feb" Then
                dkoupDate(1) = "02"
            ElseIf dkoupDate(1) = "Mar" Then
                dkoupDate(1) = "03"
            ElseIf dkoupDate(1) = "Apr" Then
                dkoupDate(1) = "04"
            ElseIf dkoupDate(1) = "May" Then
                dkoupDate(1) = "05"
            ElseIf dkoupDate(1) = "Jun" Then
                dkoupDate(1) = "06"
            ElseIf dkoupDate(1) = "Jul" Then
                dkoupDate(1) = "07"
            ElseIf dkoupDate(1) = "Aug" Then
                dkoupDate(1) = "08"
            ElseIf dkoupDate(1) = "Sep" Then
                dkoupDate(1) = "09"
            ElseIf dkoupDate(1) = "Oct" Then
                dkoupDate(1) = "10"
            ElseIf dkoupDate(1) = "Nov" Then
                dkoupDate(1) = "11"
            ElseIf dkoupDate(1) = "Dec" Then
                dkoupDate(1) = "12"
            Else
                MsgBox ("Une erreur s'est produite lors de la convertion de la date")
            End If
            
            myDate.NumberFormat = "dd/mm/yyyy;@"
            'on enregistre la nouvelle date
            myDate.Value = DateSerial(dkoupDate(2), dkoupDate(1), dkoupDate(0))
              
        End If
    Next myDate
    End Sub


Merci pour votre aide :)

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Public Sub CorrectionDateScanfact()
    Dim myDate As Range
    Dim dkoupDate() As String

    With Worksheets("feuil1")
    derlig = .Range("B" & Rows.Count).End(xlUp).Row
    Set Plage = .Range("B1:B" & derlig)
    End With

    Plage.NumberFormat = "dd/mm/yyyy;@"

    For Each myDate In Plage
    If (myDate.Text = "") Or (IsNull(myDate.Text)) Then
    Exit For
    ElseIf ((myDate.Text) Like "-*") Then
    myDate.Value = ""
    Else
    dkoupDate = Split(myDate.Text, "-")
    If dkoupDate(1) = "Jan" Then
    dkoupDate(1) = "01"
    ElseIf dkoupDate(1) = "Feb" Then
    dkoupDate(1) = "02"
    ElseIf dkoupDate(1) = "Mar" Then
    dkoupDate(1) = "03"
    ElseIf dkoupDate(1) = "Apr" Then
    dkoupDate(1) = "04"
    ElseIf dkoupDate(1) = "May" Then
    dkoupDate(1) = "05"
    ElseIf dkoupDate(1) = "Jun" Then
    dkoupDate(1) = "06"
    ElseIf dkoupDate(1) = "Jul" Then
    dkoupDate(1) = "07"
    ElseIf dkoupDate(1) = "Aug" Then
    dkoupDate(1) = "08"
    ElseIf dkoupDate(1) = "Sep" Then
    dkoupDate(1) = "09"
    ElseIf dkoupDate(1) = "Oct" Then
    dkoupDate(1) = "10"
    ElseIf dkoupDate(1) = "Nov" Then
    dkoupDate(1) = "11"
    ElseIf dkoupDate(1) = "Dec" Then
    dkoupDate(1) = "12"
    Else
    MsgBox ("Une erreur s'est produite lors de la convertion de la date")
    End If

    myDate.NumberFormat = "dd/mm/yyyy;@"
    'on enregistre la nouvelle date
    myDate.Value = DateSerial(dkoupDate(2), dkoupDate(1), dkoupDate(0))

    End If
    Next myDate
    End Sub
    2
    1. nonossov Messages postés 638 Statut Membre
       
      Merci Mr, vous avez fait un excellent travail merci,
      0