Comparaison de dates mais format différent

Bonjour à tous!!

Je poste car je rencontre un léger soucis pour ma macro.

Je souhaite comparer des dates (plus précisemment une colonne de dates dans l'onglet "test" avec une ligne de dates dans l'onglet "donnees").

Si les dates sont égales, alors copier la valeur de la ligne 2 de l'onglet "donnees" et la coller dans la colonne C de l'onglet "test".

Mon problème: les dates ne sont pas sous le même format:

Dans l'onglet "test": 31/10/2014, 07/11/2014,...

dans l'onglet "donnees": Ma 31/10/2014, Me 07/11/2015,...

L'idée serait, je pense, de supprimer le jour "Ma" ou "Me" dans l'onglet "donnees", de façon à pouvoir comparer les dates.

Quelqu'un aurait-il des pistes svp? Je peine un peu!

D'avance merci!

Cordialement,


Excusez-moi, voici le fichier à prendre en compte en PJ.

Encore merci,

14demande.xlsm (22.73 Ko)
17demande.xlsm (22.69 Ko)

De mémoire Excel compte les dates, l'affichage n'est qu'un effet de style. Il a tout sous format numérique (c'est ce qu'on voit lorsqu'on réinitialise les formats des cellules) je vais regarder si c'est possible de s'en servir.

Feuille test : après avoir retiré les formats, la cellule affiche : 42003

Feuille données : après avoir retiré les formats, la cellule affiche : Ma 30/12/2014

Donc il ne reconnait pas le format sur la feuille de données, pour lui c'est une chaîne de caractères , pas un nombre.

Bonjour,

Je vois déjà 2 pb dans ton code.

1) tu utilises With ThisWorkbook.Sheets("test")

Si tu veux faire référence à cette feuille il faut fait précéder la référence d'un . :

IsDate(.Cells(i, 1))

2) tes dates dans 'données' n'en sont pas, c'est du texte.

Ca serait mieux que tu mettes des vraies dates sur la feuille mais tu peux convertir en date dans le code.

Au total :

If IsDate(.Cells(i, 1)) And Cells(i, 1) = CDate(Mid(Sheets("donnees").Cells(1, j), 3)) Then

Attention, les dates sans année seront considérées comme de l'année courante. Si tu ouvres ton fichier en 2016 ça ne sera plus bon.

eric

Bonjour,

Merci pour les réponses, ça m'est très utile!

Ok pour convertir les date avec CDate.

Cependant: comment faire pour rajouter l'année à chaque date de l'onglet "donnees"? Car l'année est importante.

Je pensais comparer chaque cellule à la valeur "01/01". C'est à dire: si < au 01 janvier alors c'est du 2014, sinon c'est du 2015...Mais erreur lors de la compilation!

(Je changerai la macro quand nous passerons en 2016)

21demandev2.xlsm (22.78 Ko)

Toutes les dates sont >=01/01.

On pourrait plutôt demander année courante, valable pour les 1ères dates, année+1 une fois qu'on passe en janvier.

Mais là je suis hospitalisé pour 3 jours et pas très bien installé.

Soit qq'un peut prendre le relais, sinon tu attendras un peu.

eric

Bonjour Eric,

Je patientrai, merci de ta réponse.

Bon rétablissement

Rechercher des sujets similaires à "comparaison dates format different"