Repérer cellule identique avec condition de date

Bonjour à tous,

Tout d'abord, une très bonne et heureuse année 2014. Je viens vers vous car je suis confronté à un problème avec VBA.

Je vous joint un fichier simplifié plus simple à comprendre.

Ce que je voudrai c'est que dés que qu'une nouvelle valeur est entré dans la feuille alors il recherche dans la colonne A si il y a une valeur identique.

Si on trouve une valeur identique alors on compare les dates. Si celles-ci ont moins de 3 mois d'écart alors on indique OUI dans la colonne C, pour indiquer une récidive.

Sinon on indique non.

J'ai essayé avec la fonction recherche mais je n'arrive pas à savoir comment faire pour les 3 mois d'écart.

Merci d'avance pour votre aide et encore bonne année 2014.

Bonjour. Meilleurs Voeux

Un essai à tester

Formule en c2 à incrémenter vers le bas

=SI(NB.SI($A3:$A$1000;A2)=0;"NON";SI(MIN(B2;DECALER(B2;EQUIV(A2;$A3:$A$1000;0);)<MOIS.DECALER(MIN(B2;DECALER(B2;EQUIV(A2;$A3:$A$1000;0);));3));"OUI";"NON"))

Cordialement

Bonjour,

Merci, Pour ta réponse, mais les 3 mois d'écart ne fonctionnent pas. Par contre j'aurai dû préciser que dans la colonne A, je peux ne pas avoir que des nombres mais aussi des lettres. De plus la date est mise sous forme JJ/MM/AAAA HH/MM. Je ne sais pas si ça change quelque chose. Il peut aussi y avoir deux doublons ou plus à moins de 3 mois d'intervalle

Au final les "NON" fonctionnent très bien mais pas les "OUI". Il m'affiche l'erreur "#NOM?" pour les OUI.

Mon fichier original tourne sous excel 2002

Je reposte le classeur qui ressemble maintenant plus à l'original. Dans celui-ci la différence de 3 mois ne fonctionne pas.

Cordialement

Bonjour

La formule MOIS.DECALER necessite pour fonctionner que dans le Menu "Outils" "Macros complémentaires" , "Utilitaire d'analyse" soit coché

Comme je suis en Excel 2003 et que ton profil mentionne aussi 2003....

Voir si sur 2002, le process est le même. Tu diras, sinon, on change la formule

Cordialement

bonjour;bonjour Amadeus

une petite contrbution ; mais je ne sais pas dire "non"

16uchi.zip (6.14 Ko)

cordialement

Bonjour,

Une idée si les valeurs sont représentées 2 fois (pas +)

Formule matricielle à valider par Ctrl+Maj et Entrée.

=SI(MAX(SI($A$2:$A$19=$A2;$B$2:$B$19))-MIN(SI($A$2:$A$19=$A2;$B$2:$B$19))=0;"NON";
SI(MAX(SI($A$2:$A$19=$A2;$B$2:$B$19))-MIN(SI($A$2:$A$19=$A2;$B$2:$B$19))>90;"NON";"OUI"))

Bonjour à tous et merci pour vos réponses

J'ai effectué les modifications et il y a certaines choses que je n'explique pas. Quand je change le "OUI" dans la formule par un autre mot je n'ai plus l'erreur #NOM?. C'est déjà une très bonne chose, cela veut dire que excel 2002 et 2003 fonctionne sur le même point dessus.

J'ai suivi ton conseil Amadéus pour activer le paramètre de date, mais cela ne fonctionne pas, aussi bien sur 2002 que 2003.

Je pense que ça pêche au niveau de la formule sans vouloir t'offenser

Par contre la solution de Tulipe fonctionne au niveau des dates. Néanmoins il y a deux choses qui ne vont pas. Il faut seulement qu'il y ait le "OUI" sur le récidiviste et non le premier.

Et j'aurai aussi besoin d'avoir le "NON" sur tous les autres.

Et enfin Jean-Eric j'aurai besoin d'avoir au moins 10 fois la possibilité de mettre "OUI"

Désolé d'être un peu (beaucoup) exigeant.

En regroupant toutes vos idées je pense qu'il y a moyen d'avoir un truc tip top

En tout cas merci déjà beaucoup pour l'aide apportée.

re

j'ai revisé ma copie ...... (enfin; normalement)

29uchi2.zip (6.60 Ko)

cordialement

Bonjour,

Alors on y est presque, le problème c'est que le "OUI" se met sur le plus ancien et non le plus récent.

Je n'ai pas réussi à modifier la formule pour le faire.

De plus j'ai l'impression que la formule se limite seulement au 19 lignes alors que j'en ai plus d'une centaine dans mon fichier et chaque jour de nouvelles arriveront.

Enfin Je n'ai pas réussi à mettre ta formule dans la colonne K, je ne sais pas ce qu'il y a à modifier.

Merci de votre aide.

Bonjour,

Je n'ai toujours pas réussi à trouver la solution.

Merci.

bonsoir

un essai , non sans mal

la formule est prevue pour 519 lignes et matricielle ,donc tu la colles dans la colonne qui t'arrange et tu la valides en faisant Ctrl MAJ Entrée les 3touches en meme temps

'=SIERREUR(SI(NB.SI(AA$2:AA2;AA2)=1;SI(D2-INDEX(D$2:D$519;PETITE.VALEUR(SI(AA$2:AA519=AA2;LIGNE(AA$2:AA$519)-1;"");2))<=90;"oui";"non");"non");"non")

dans l'exemple ,ça avait l'air d'aller ,apres incrementation tu vas avoir des "non" meme si il n'y a rien ; mais bon .....

cvordialement

Bonjour,

Merci c'est exactement ce dont j'avais besoin, ça fonctionne parfaitement.

Bonsoir,

Je pensais en avoir fini avec ce problème mais finalement non. En effet la formule ne fonctionne pas sous excel 2003. Celle-ci fonctionnait très bien sous excel 2010.

Quand je l'ouvre dans excel 2003 celui-ci me dit qu'il a fait une fait une conversion mais que certaines fonctions ne sont pas disponibles dans cette version.

La fonction manquante est celle-ci : "SIERREUR" qu'il converti en "IFERROR" mais cela ne fonctionne pas.

J'ai essayé plusieurs fonctions décrites sur le site de Microsoft mais sans succès.

Désolé de vous importuner de nouveau avec mon problème, mais après une journée de recherche je suis complètement bloqué.

Merci de votre aide.

bonsoir

hier je n'ai guère "forumé" ;mais je ne t'abandonne pas ; donc pour solutionner ton probleme

1_ tu remplaces le sierreur par si(esterreur(debut de la fonction ..........)

2_ tu vires le dernier "non" qui correponsdait a la condition de sierreur qui ne marche pas avec ta version;mais tu laisses la derniere )

3_ a la suite de cette derniere ) tu saisis ;"non";

4_ tu copies toute la fonction qui suit si(esterreur( .....partie a copier jusqu'a la derniere parenthese qui precede le "non" que tu viens de saisir

5_ tu colles a la suite de ce "non;

schema

si(esterreur( la fonction ));"non"; la fonction ))

autement dit

si la fonction deconne ; "non" ; sinon la fonction quand meme

le plus dur c'est la parenthese avant le "non" ;souvant cela merdoie a ce niveau

cordialement

ce procedé est valable et obligatoire pour supprimer les valeurs d'erreur sur les anciennes versions xl (quand on a epuisé toues les autres ,bien sur; ça marche pour toutes les fonctions , heureusement que l'on peux copier /coller

Bonjour,

Excuse moi de te répondre que maintenant, j'ai été pas mal occupé. Merci pour la correction apportée, elle fonctionne à merveille.

Je vas encore t'embêter un peu avec le critère de date. Le problème c'est que la date la plus récente est celle qui est le plus "en bas" et non "en haut" des lignes.

Ce qui fait qu'il marque "oui" sur la date la plus ancienne et non la plus récente.

J'ai essayé de modifier la formule mais sans succès.

Merci beaucoup pour toute l'aide apportée déjà.

Je poste la formule pour ceux qui pourraient en avoir besoin un jour:

=SI(ESTERREUR(SI(NB.SI(AA$2:AA2;AA2)=1;SI(D2-INDEX(D$2:D$519;PETITE.VALEUR(SI(AA$2:AA519=AA2;LIGNE(AA$2:AA$519)-1;"");2))<=90;"oui";"non");"non"));"non";(SI(NB.SI(AA$2:AA2;AA2)=1;SI(D2-INDEX(D$2:D$519;PETITE.VALEUR(SI(AA$2:AA519=AA2;LIGNE(AA$2:AA$519)-1;"");2))<=90;"oui";"non");"non")))

Bien cordialement

Rechercher des sujets similaires à "reperer identique condition date"