Double cliquer sur une date pour forcer le format

Bonjour,

je travaille sous Office 365 sur Mac et je ne parviens pas à faire fonctionner une toute petite macro qui m'est indispensable.

Le problème, c'est que je récupère des milliers de données chaque semaine avec un format de date que Excel ne reconnait que si je double clique dans la cellule avant de la valider.

J'ai testé différentes solutions telles que la fonction Sendkeys, la fonction DoubleClick, ajout d'une temporisation, ... sans succès.

Sub Valider_date()
'
' Valider_date Macro
' double clic dans la case date, puis passage à la ligne suivante
'
' Touche de raccourci du clavier: Ctrl+K
'
Dim KT As Integer
For KT = 2 To 18
Cells(KT, 10).Select
Application.Wait Now + TimeValue("0:00:01")
Application.DoubleClick
Application.SendKeys ("{ENTER}")
Next KT
End Sub

Voici un exemple de fichier à traiter.

Merci d'avance pour toute suggestion.

Bonjour et bienvenue sur le forum

Essaie ça :

Option Explicit

Dim tablo
Dim i&

Sub formatdate()

    tablo = Range("J2:j" & Range("J" & Rows.Count).End(xlUp).Row)
    For i = 1 To UBound(tablo, 1)
        tablo(i, 1) = CDate(tablo(i, 1))
    Next i
    Range("J2").Resize(UBound(tablo, 1), 1) = tablo
End Sub

Résultat ?

Bye !

Bonjour à tous,

Une autre proposition VBA.

Cdlt.

Public Sub ConvertStringsToDates()
Dim rng As Range
    With ActiveSheet
        Set rng = .Range("J2:J" & .Range("J" & .Rows.Count).End(xlUp).Row)
        rng.TextToColumns _
                Destination:=Range("J2"), _
                DataType:=xlDelimited, _
                FieldInfo:=Array(1, 4)
    End With
End Sub

Un tout grand merci à tous les deux ;-)

La solution de Gmb fonctionne parfaitement ; 100% des données sont traitées.

Par contre la proposition de Jean-Eric ne donne pas le résultat escompté avec ma configuration ; 106 dates, soit 2/3 des enregistrements n'ont pas été formatés.

Bonne journée à vous,

Re,

Je n'avais pas ouvert le fichier et pas vu que le champ avec date et heure.

Si tu n'as pas besoin des heures, une nouvelle proposition pour le principe.

Cdlt.

Sub ConvertStringsToDates()
'Supprime l'heure lors de la conversion
    ActiveSheet.Columns(10).TextToColumns _
            Destination:=Range("J1"), _
            DataType:=xlFixedWidth, _
            FieldInfo:=Array(Array(0, 4), Array(10, 9))
End Sub

Super !

ça fonctionne parfaitement aussi.

Merci Jean-Eric

Rechercher des sujets similaires à "double cliquer date forcer format"