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
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............
Et pour finir ce fil ;o)
http://www.cijoint.fr/cjlink.php?file=cj201106/cijGQTZaLI.xls
--
Salutations
JJ
"MichD" <michdenis@hotmail.com> a écrit dans le message de news: iuf6od$jqs$1@speranza.aioe.org...
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$1@speranza.aioe.org...
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" <prtech@free.fr> a écrit dans le message de news:
4e0a30ef$0$14657$ba4acef3@reader.news.orange.fr...
Bonsoir
merci que du bonheur toutes ses formules
Pierre
"Maude Este" <nomail@live.fr> a écrit dans le message de news: iuc3k0$d0u$1@speranza.aioe.org...
Bonsour®
Schnockle Dupond@marcel.fr> a écrit
Mais il a déjà trouvé son bonheur, et comme dirait "Modeste"
Tout le reste n'est que............
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............
"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............
"Jacky" <Dupond@marcel.fr> a écrit dans le message de news: iufo2f$ro$1@speranza.aioe.org...
Et pour finir ce fil ;o)
http://www.cijoint.fr/cjlink.php?file=cj201106/cijGQTZaLI.xls
--
Salutations
JJ
"MichD" <michdenis@hotmail.com> a écrit dans le message de news: iuf6od$jqs$1@speranza.aioe.org...
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$1@speranza.aioe.org...
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" <prtech@free.fr> a écrit dans le message de news:
4e0a30ef$0$14657$ba4acef3@reader.news.orange.fr...
Bonsoir
merci que du bonheur toutes ses formules
Pierre
"Maude Este" <nomail@live.fr> a écrit dans le message de news: iuc3k0$d0u$1@speranza.aioe.org...
Bonsour®
Schnockle Dupond@marcel.fr> a écrit
Mais il a déjà trouvé son bonheur, et comme dirait "Modeste"
Tout le reste n'est que............
"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............
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.
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.
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.
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.
Et mes remerciements à moi pour toutes les explications que tu as fournies.
--
Salutations
JJ
"MichD" <michdenis@hotmail.com> a écrit dans le message de news: iukepu$j4o$1@speranza.aioe.org...
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.
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.