Problème de format de date VBA

Bonjour cher communauté,

J'ai un problème dont je ne vois pas la source

j'ai un fichier excel dans lesquels les dates sont de cette forme

image

Mon objectif est de comparer la date de cette cellule avec un autre fichier Excel qui contient une colonne avec des dates de même type et de repérer la cellule ou il y a égalité.

Mais le soucis c'est que ça ne marche pas du tout,

voici mon code

Sub test_date()

Dim profil As String

Dim Valref As String

classeur_source = ActiveWorkbook.Name

Dim Classeur As String

Classeur = Application.GetOpenFilename

Workbooks.Open Classeur

Application.ScreenUpdating = False

classeur_cible = ActiveWorkbook.Name

Z = Application.WorksheetFunction.CountA(Range("A:A"))

varelf=range("a2")

i = 2

Windows(classeur_cible).Activate

Do While Range("a" & i) <> Valref And i < Z

i = i + 1

Loop

MsgBox i

End Sub

quand je fais une petite macro pour tester la date msgbox(range("a2")) voici ce qu'elle m'affiche , ce qui n'est pas le contenu de la cellule

image
112021-copie.zip (556.51 Ko)
142021-copie-3.zip (556.53 Ko)

bonsoir,

sans avoir ouvert tes fichiers :

ceci

varelf=range("a2")

ne devrait-il pas être cela ?

valref=range("a2")

Oui c'est juste une erreur dans le recopiage pour valref

bonjour,

pas de problème chez moi, l'affichage affichée correspond bien à la date dans les fichiers.

Tu as probablement un problème de sélection de feuille, la date affichée n'est pas sur la feuille que tu crois.

essaie ceci

Sub test_date()

    Dim profil As String
    Dim Valref As String, classeur As String

    Set classeur_source = ActiveWorkbook
    Set feuille_source = classeur_source.Sheets(1)

    classeur = Application.GetOpenFilename

    Set classeur_cible = Workbooks.Open(classeur)

    Application.ScreenUpdating = False

    Set feuille_cible = classeur_cible.Sheets(1)
    Z = feuille_cible.Cells(Rows.Count, 1).End(xlUp).Row 'nombre de lignes

    Valref = feuille_source.Range("a2")

    i = 2

    Do While feuille_cible.Range("a" & i) <> Valref And i < Z
        i = i + 1
    Loop
    If i < Z Then
        MsgBox i
    Else
        MsgBox "non trouvé"
    End If
    classeur_cible.Close False
End Sub

Merci pour ta réponse, ça marche bien effectivement pour les fichiers que j'ai envoyé.

Mais des que j'essaie de réutiliser la macro à parti d'un autre fichier source, elle ne retrouve plus la date. Je pense qu'il doit y avoir un problème de format?

car dans le fichier source le format de la colonne date est standard et dans le fichier cible le format est personnalisé.

10fichier-cible1.zip (556.52 Ko)
8fichier-source.xlsm (288.20 Ko)

bonjour,

Dans ton fichier source, les dates ne sont pas de type date pour excel (mais de type texte). ce n'est donc pas un problème de format mais de type. Il faut convertir toute la colonne A (type texte) en type date, ou adapter le programme pour que le contenu de la colonne A soit converti en date par exemple :

valref=datevalue(feuille_source.range("A2"))

Ca marche bien ! Merci beaucoup de ton aide.

Rechercher des sujets similaires à "probleme format date vba"