Fonction SI cumulées avec doublons

Fermé
Arnaudcoco Messages postés 2 Date d'inscription jeudi 5 mars 2015 Statut Membre Dernière intervention 6 mars 2015 - 5 mars 2015 à 23:48
via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 - 6 mars 2015 à 17:02
1 Nom Date prélèvement UA Germe
2 Arnaud 15/10/2013 1600 MC-STA-CAP
3 Arnaud 15/10/2013 1600 MC-STA-AUI
4 Arnaud 02/01/2014 1603 EN-ENT-AER
5 Arnaud 04/08/2013 1600 MC-STA-EPI
6 Arnaud 16/10/2013 1600 MC-STA-AUI
7 Arnaud 15/12/2013 1600 MC-STA-AUI
8 Guillaume...

Bonjour, je suis un peu novice pour combiner plusieurs fonctions.
Voilà mon problème, je souhaite voir les doublons (Considérés comme ayant le même nom (Colonne 1), le même germe (Colonne 4)et une date de prélèvement < à 1 mois entre les 2 (Colonne 2)).

Ex: Ligne 6 doublon mais ligne 7 non (Car date > 1 mois entre la ligne 3 et la ligne 7

Pour les doublons avec le même nom je me sers de:
=SI(NB.SI(A$2:A2;A2)>1;"Doublon";""), mais après je n'arrive pas à combiner les autres critères...et surtout cette histoire de date de prélèvement.
Si vous avez une inspiration je suis preneur. Merci beaucoup
A voir également:

1 réponse

via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 704
6 mars 2015 à 00:43
Bonjour

Peut être avec une petite macro
A mettre dans un module de l'editeur VBA (ALT+ F11 pour ouvrir l'éditeur puis Insertion Module copier et coller la macro)
N°s des lignes à adapter à ton fichier
Sub doublons()
'Boucle sur les lignes 2 à 9 (avant-dernière ligne remplie) de la feuille A ADAPTER
For n = 2 To 9
'Boucle sur les lignes qui suivent la ligne courante
For t = n + 1 To 10
' compare les dates pour connaitre la plus ancienne
If Range("B" & t) > Range("B" & n) Then date1 = n: date2 = t Else date1 = t: date2 = n
' si même nom, même germe et difference de date de moins d'un mois DOUBLON
If Range("A" & t) = Range("A" & n) And Range("D" & t) = Range("D" & n) And DateDiff("m", Range("B" & date1), Range("B" & date2)) < 1 Then
Range("E" & t) = "DOUBLON"
End If
Next
Next
End Sub


Cdlmnt
Via
0
Arnaudcoco Messages postés 2 Date d'inscription jeudi 5 mars 2015 Statut Membre Dernière intervention 6 mars 2015
6 mars 2015 à 11:10
Merci pour la réponse rapide, je ne me suis jamais lancé dans des macros donc j'avoue avoir un peu de mal:

Vu que j'ai 6113 lignes et 5 colonnes, j'ai saisi:

Sub doublons()
For n = 2 To 6112
For t = n + 1 To 10
If Range("B" & t) > Range("B" & n) Then date1 = n: date2 = t Else date1 = t: date2 = n
If Range("A" & t) = Range("A" & n) And Range("D" & t) = Range("D" & n) And DateDiff("m", Range("B" & date1), Range("B" & date2)) < 1 Then
Range("E" & t) = "DOUBLON"
End If
Next
Next
End Sub

Mais après pour appliquer cela sur ma feuille je suis bloqué je ne sais pas quoi faire?
Merci
0
via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 704 > Arnaudcoco Messages postés 2 Date d'inscription jeudi 5 mars 2015 Statut Membre Dernière intervention 6 mars 2015
6 mars 2015 à 12:25
Bonjour,

En premier il faut aussi adapter la seconde boucle For qui ne va jusqu'à 10 alors que tu as 6113 lignes (remplacer donc 10 par 6113)
Ensuite la première boucle part de la ligne 2 car je supposais une ligne de titre,Si tu n'en pas dans ton fichier il faut remplacer 2 par 1 dans la première boucle For ou si les données commencent plus bas, ligne 3 par exemple remplacer le 2 par ce n° de ligne
Enfin pour lancer la macro quand tu es sur la feuille tu vas dans l'onglet Developpeur dans le ruban puis Macros, sélectionner la macro doublons (ça doit être la seule dans la liste) et Exécuter (Vu le nombre de ligne la macro va peut être un peu de temps à s'exécuter)

Si l'onglet Developpeur n'existe pas dans ton ruban (il est en dernier en principe)
il faut :
si tu as Excel 2007 cliquer sur le bouton Office en haut à gauche, puis sur Options Excel, et dans Standard, activer la case à cocher Afficher l'onglet Développeur dans le ruban.
Si tu as Excel 2010 ou 2013 cliquer sur l'onglet Fichier.puis Options. puis Personnaliser le ruban. et dans Sous Personnaliser le ruban et Onglets principaux, activer la case à cocher Développeur

Cdlmnt
0
arnaudcoco > via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024
6 mars 2015 à 16:08
Ca a l'air de marcher! Merci beaucoup.

Par contre oui j'avais bien une ligne de titre et ma colonne E est remplie donc j'ai remplacé Range("E" & t) = "DOUBLON" par D. Mais niveau macro je pars de très loin! Une idée de tuto pour commencer à se familiariser doucement?

Merci!
0
via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 704 > arnaudcoco
6 mars 2015 à 17:02
Re

Si tu cherches sur internet avec des mots-clès comme Bases VBA ou Tutoriel débuter VBA tu vas en trouver plusieurs et également ici sur CCM
https://www.commentcamarche.net/contents/1374-macros-comment-les-creer

Bon apprentissage !
0