Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

doublon colonnes

24 réponses
Avatar
pierre
Bonjour

J'utilise mfc avec la formule NB.SI($A$3:$D$90;A3)>1 pour détecter les
doublons
j'aimerais avoir un résultat positif uniquement si la valeur est presente
dans les 4 colonnes
J'ai augmenté >3 mais cela ne garantit pas sa présence dans toutes les
colonnes
merci pour votre aide

Pierre

4 réponses

1 2 3
Avatar
Jacky
Et pour finir ce fil ;o)
http://www.cijoint.fr/cjlink.php?file=cj201106/cijGQTZaLI.xls

--
Salutations
JJ


"MichD" a écrit dans le message de news: iuf6od$jqs$
Bonjour,

Il y a diverses façons de contourner le problème que tu énonces.

Dans la feuille module de la feuille où l'action se déroule, on peut utiliser
ce bout de code pour définir la plage. Ce code peut être adaptable selon
la disposition des données dans la feuille. Ce code crée une plage nommée "Plg"
du tableau des données.

Il ne reste plus qu'à modifier un tout petit peu la formule comme ceci :
=SOMME(SI(NB.SI(DECALER($A$1;1;LIGNE(INDIRECT("1:"&COLONNES(Plg)))-1;LIGNES(Plg);1);A2)>0;1))=COLONNES(Plg)

Sans VBA, on pourrait modifier la formule comme ceci :
=SOMME(SI(NB.SI(DECALER($A$1;1;LIGNE(INDIRECT("1:4"))-1;MAX(SI(A:A<>"";LIGNE(A:A)));1);A2)>0;1))=4
Sous une version Excel antérieure à 2007, on ne peut pas utiliser une colonne entière dans cette
section de la formule : MAX(SI(A:A<>"";LIGNE(A:A))) (c'est une formule matricielle), mais pour
rendre la formule plus appropriée et pour rapide à l'exécution, il est préférable à délimiter
une plage suffisamment grande pour s'assurer d'inclure celle dont on a besoin. Moi, je
préfère l'approche VBA que les formules à rallonge...

P.S- Si on ajoute des données, le nom de la plage va se mettre à jour selon l'étendue, mais
la mise en forme conditionnelle demeurera fonctionnelle que pour les cellules où elle a
été définie. Elle ne s'appliquera pas aux lignes ajoutées...il faudra modifier la procédure
pour l'ajouter à toute la plage si nécessaire. Tu peux t'amuser à l'inclure dans la procédure...

'------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Range("A1:A" & Range("A65536").End(xlUp).Row).CurrentRegion.Name = "Plg"
End If
End Sub
'------------------------------------------


MichD
--------------------------------------------
"Jacky" a écrit dans le message de groupe de discussion : iudg89$1v1$

Re...
merci que du bonheur toutes ses formules


Certes, mais présentent un inconvénient et non des moindres,
toutes les cellules de la plage doivent être renseignées (pas de cellule vide)
Ce qui n'est pas le cas de celle que j'ai proposé.

--
Salutations
JJ


"pierre" a écrit dans le message de news:
4e0a30ef$0$14657$
Bonsoir

merci que du bonheur toutes ses formules

Pierre

"Maude Este" a écrit dans le message de news: iuc3k0$d0u$
Bonsour®

Schnockle a écrit
Mais il a déjà trouvé son bonheur, et comme dirait "Modeste"
Tout le reste n'est que............


;o)))
http://www.cijoint.fr/cjlink.php?file=cj201106/cijZa4Rxzm.xls







Avatar
Jacky
Oupss !!
Ici
http://www.cijoint.fr/cjlink.php?file=cj201106/cijYfzAHNj.xls

--
Salutations
JJ


"Jacky" a écrit dans le message de news: iufo2f$ro$
Et pour finir ce fil ;o)
http://www.cijoint.fr/cjlink.php?file=cj201106/cijGQTZaLI.xls

--
Salutations
JJ


"MichD" a écrit dans le message de news: iuf6od$jqs$
Bonjour,

Il y a diverses façons de contourner le problème que tu énonces.

Dans la feuille module de la feuille où l'action se déroule, on peut utiliser
ce bout de code pour définir la plage. Ce code peut être adaptable selon
la disposition des données dans la feuille. Ce code crée une plage nommée "Plg"
du tableau des données.

Il ne reste plus qu'à modifier un tout petit peu la formule comme ceci :
=SOMME(SI(NB.SI(DECALER($A$1;1;LIGNE(INDIRECT("1:"&COLONNES(Plg)))-1;LIGNES(Plg);1);A2)>0;1))=COLONNES(Plg)

Sans VBA, on pourrait modifier la formule comme ceci :
=SOMME(SI(NB.SI(DECALER($A$1;1;LIGNE(INDIRECT("1:4"))-1;MAX(SI(A:A<>"";LIGNE(A:A)));1);A2)>0;1))=4
Sous une version Excel antérieure à 2007, on ne peut pas utiliser une colonne entière dans cette
section de la formule : MAX(SI(A:A<>"";LIGNE(A:A))) (c'est une formule matricielle), mais pour
rendre la formule plus appropriée et pour rapide à l'exécution, il est préférable à délimiter
une plage suffisamment grande pour s'assurer d'inclure celle dont on a besoin. Moi, je
préfère l'approche VBA que les formules à rallonge...

P.S- Si on ajoute des données, le nom de la plage va se mettre à jour selon l'étendue, mais
la mise en forme conditionnelle demeurera fonctionnelle que pour les cellules où elle a
été définie. Elle ne s'appliquera pas aux lignes ajoutées...il faudra modifier la procédure
pour l'ajouter à toute la plage si nécessaire. Tu peux t'amuser à l'inclure dans la procédure...

'------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Range("A1:A" & Range("A65536").End(xlUp).Row).CurrentRegion.Name = "Plg"
End If
End Sub
'------------------------------------------


MichD
--------------------------------------------
"Jacky" a écrit dans le message de groupe de discussion : iudg89$1v1$

Re...
merci que du bonheur toutes ses formules


Certes, mais présentent un inconvénient et non des moindres,
toutes les cellules de la plage doivent être renseignées (pas de cellule vide)
Ce qui n'est pas le cas de celle que j'ai proposé.

--
Salutations
JJ


"pierre" a écrit dans le message de news:
4e0a30ef$0$14657$
Bonsoir

merci que du bonheur toutes ses formules

Pierre

"Maude Este" a écrit dans le message de news: iuc3k0$d0u$
Bonsour®

Schnockle a écrit
Mais il a déjà trouvé son bonheur, et comme dirait "Modeste"
Tout le reste n'est que............


;o)))
http://www.cijoint.fr/cjlink.php?file=cj201106/cijZa4Rxzm.xls













Avatar
MichD
C'est Pierre qui devrait être content de ton dernier fichier.
Une façon de procéder qui s'applique nonobstant le nombre de colonnes...
avec preuve à l'appui.

;-)

MichD
--------------------------------------------
Avatar
Jacky
Et mes remerciements à moi pour toutes les explications que tu as fournies.

--
Salutations
JJ


"MichD" a écrit dans le message de news: iukepu$j4o$
C'est Pierre qui devrait être content de ton dernier fichier.
Une façon de procéder qui s'applique nonobstant le nombre de colonnes...
avec preuve à l'appui.

;-)

MichD
--------------------------------------------

1 2 3