OVH Cloud OVH Cloud

Si quelqu'un a une solution...

16 réponses
Avatar
Akacio
Bonjour à tous,

Je vous soumets une problématique. J'ai visité tous les sites de la
terre et malgré quelques pistes, je ne suis pas parvenu à mes fins :-(

Je cherche à créer une FONCTION qui s'écrirait sous la forme :

=FONCTION(Plage1;Plage2)

qui comparerait une à une les cellules de la plage1 et de la place2 :

si Plage1 = A1:A10
et Plage2 = B1:B10

On compare A1 à B1 puis A2 à B2 puis A3 à B3, .... et aunsi de suite
jusqu'à A10, fin de la plage1 (sachant que la plage2 a strictement le
même nombre de cellules)

Les cellules des plages 1 et 2 peuvent être soit :
- du TEXTE
- vides

Si la chaine de caractère inscrite en B1 contient la chaine de caractère
inscrite en A1, un compteur s'incrémenterait de 1

Exemple :

A1="A"
B1="ANANAS"
---> Compteur + 1

.......

A4="X"
B4="YY"
---> compteur + 0

.......

A10="7"
B10="HJM7PP"
---> Compteur + 1


Ma FONCTION me renverrait le nomnre de fois où ma condition a été remplie.


Voilà. J'espère avoir été assez claire pour allumer une p'tite ampoule
au dessus de la tête de l'un d'entre nous. ;-)

Merci à tous.


Aka

6 réponses

1 2
Avatar
Pierre Fauconnier
Tu trouveras un exemple ici http://cjoint.com/?kbr3IBxmuX


--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Akacio" a écrit dans le message de news:
451fe337$0$3830$
Marche pôôô. :-(


Bonsoir

Sans macro, avec sommeprod

=SOMMEPROD((NON(ESTERR(CHERCHE(A1:A5;B1:B5))))*1)

Les plages doivent être adaptées

Ok?





Avatar
JB
Voir PJ: http://cjoint.com/?kbsd6MmMqA

Function nbFois(champa As Range, champb As Range)
Application.Volatile
nbFois = 0
For i = 1 To champa.Count
If InStr(champb(i), champa(i)) > 0 And _
champa(i) <> champb(i) Then nbFois = nbFois + 1
Next i
End Function

En matriciel:
=SOMMEPROD(ESTNUM(CHERCHE(champ1;champ2))*(champ1<>champ2))

JB



Merci JB pour ta fonctin mais... euuuuh... elle marche pas tout à fait ;-)

En fait le compteur ne doit pas s'incrémenter seulement quand A1 est
strictement égale à B1. Il doit également s'incrémenter quand la chaine
de caractères B1 contient la chaine de caractère A1.

Exemple :

A1="A"
B1="ANANAS"
---> Compteur + 1



Bonjour,

Dans un module:

Function nbFois(champa As Range, champb As Range)
Application.Volatile
nbFois = 0
For i = 1 To champa.Count
If InStr(champb(i), champa(i)) > 0 Then nbFois = nbFois + 1
Next i
End Function

=nbfois(A1:A10;B1:B10)

Cordialement JB


Bonjour à tous,

Je vous soumets une problématique. J'ai visité tous les sites de la
terre et malgré quelques pistes, je ne suis pas parvenu à mes fins :-(

Je cherche à créer une FONCTION qui s'écrirait sous la forme :

=FONCTION(Plage1;Plage2)

qui comparerait une à une les cellules de la plage1 et de la place2 :

si Plage1 = A1:A10
et Plage2 = B1:B10

On compare A1 à B1 puis A2 à B2 puis A3 à B3, .... et aunsi de s uite
jusqu'à A10, fin de la plage1 (sachant que la plage2 a strictement le
même nombre de cellules)

Les cellules des plages 1 et 2 peuvent être soit :
- du TEXTE
- vides

Si la chaine de caractère inscrite en B1 contient la chaine de carac tère
inscrite en A1, un compteur s'incrémenterait de 1

Exemple :

A1="A"
B1="ANANAS"
---> Compteur + 1

.......

A4="X"
B4="YY"
---> compteur + 0

.......

A10="7"
B10="HJM7PP"
---> Compteur + 1


Ma FONCTION me renverrait le nomnre de fois où ma condition a ét é remplie.


Voilà. J'espère avoir été assez claire pour allumer une p'tite ampoule
au dessus de la tête de l'un d'entre nous. ;-)

Merci à tous.


Aka







Avatar
Akacio
http://cjoint.com/?kbsd6MmMqA

Dans ton exemple, A est à chaque fois contenu dans B donc la fontion
devrait compter 6 et non 5 :-)




Voir PJ: http://cjoint.com/?kbsd6MmMqA

Function nbFois(champa As Range, champb As Range)
Application.Volatile
nbFois = 0
For i = 1 To champa.Count
If InStr(champb(i), champa(i)) > 0 And _
champa(i) <> champb(i) Then nbFois = nbFois + 1
Next i
End Function

En matriciel:
=SOMMEPROD(ESTNUM(CHERCHE(champ1;champ2))*(champ1<>champ2))

JB



Merci JB pour ta fonctin mais... euuuuh... elle marche pas tout à fait ;-)

En fait le compteur ne doit pas s'incrémenter seulement quand A1 est
strictement égale à B1. Il doit également s'incrémenter quand la chaine
de caractères B1 contient la chaine de caractère A1.

Exemple :

A1="A"
B1="ANANAS"
---> Compteur + 1



Bonjour,

Dans un module:

Function nbFois(champa As Range, champb As Range)
Application.Volatile
nbFois = 0
For i = 1 To champa.Count
If InStr(champb(i), champa(i)) > 0 Then nbFois = nbFois + 1
Next i
End Function

=nbfois(A1:A10;B1:B10)

Cordialement JB


Bonjour à tous,

Je vous soumets une problématique. J'ai visité tous les sites de la
terre et malgré quelques pistes, je ne suis pas parvenu à mes fins :-(

Je cherche à créer une FONCTION qui s'écrirait sous la forme :

=FONCTION(Plage1;Plage2)

qui comparerait une à une les cellules de la plage1 et de la place2 :

si Plage1 = A1:A10
et Plage2 = B1:B10

On compare A1 à B1 puis A2 à B2 puis A3 à B3, .... et aunsi de suite
jusqu'à A10, fin de la plage1 (sachant que la plage2 a strictement le
même nombre de cellules)

Les cellules des plages 1 et 2 peuvent être soit :
- du TEXTE
- vides

Si la chaine de caractère inscrite en B1 contient la chaine de caractère
inscrite en A1, un compteur s'incrémenterait de 1

Exemple :

A1="A"
B1="ANANAS"
---> Compteur + 1

.......

A4="X"
B4="YY"
---> compteur + 0

.......

A10="7"
B10="HJM7PP"
---> Compteur + 1


Ma FONCTION me renverrait le nomnre de fois où ma condition a été remplie.


Voilà. J'espère avoir été assez claire pour allumer une p'tite ampoule
au dessus de la tête de l'un d'entre nous. ;-)

Merci à tous.


Aka









Avatar
AV
Dans ton exemple, A est à chaque fois contenu dans B donc la fontion devrait
compter 6 et non 5 :-)


Matricielle :

=SOMME(1*SI(champ1<>"";ESTNUM(TROUVE(champ1;champ2))))

AV

Avatar
JB
La première version que j'avais donné était bonne:

http://cjoint.com/?kbthhXftWC

=SOMMEPROD(ESTNUM(CHERCHE(champ1;champ2))*1)


Function nbFois(champa As Range, champb As Range)
Application.Volatile
nbFois = 0
For i = 1 To champa.Count
If InStr(champb(i), champa(i)) > 0 Then nbFois = nbFois + 1
Next i
End Function

JB

http://cjoint.com/?kbsd6MmMqA

Dans ton exemple, A est à chaque fois contenu dans B donc la fontion
devrait compter 6 et non 5 :-)




Voir PJ: http://cjoint.com/?kbsd6MmMqA

Function nbFois(champa As Range, champb As Range)
Application.Volatile
nbFois = 0
For i = 1 To champa.Count
If InStr(champb(i), champa(i)) > 0 And _
champa(i) <> champb(i) Then nbFois = nbFois + 1
Next i
End Function

En matriciel:
=SOMMEPROD(ESTNUM(CHERCHE(champ1;champ2))*(champ1<>champ2))

JB



Merci JB pour ta fonctin mais... euuuuh... elle marche pas tout à fa it ;-)

En fait le compteur ne doit pas s'incrémenter seulement quand A1 est
strictement égale à B1. Il doit également s'incrémenter quand la chaine
de caractères B1 contient la chaine de caractère A1.

Exemple :

A1="A"
B1="ANANAS"
---> Compteur + 1



Bonjour,

Dans un module:

Function nbFois(champa As Range, champb As Range)
Application.Volatile
nbFois = 0
For i = 1 To champa.Count
If InStr(champb(i), champa(i)) > 0 Then nbFois = nbFois + 1
Next i
End Function

=nbfois(A1:A10;B1:B10)

Cordialement JB


Bonjour à tous,

Je vous soumets une problématique. J'ai visité tous les sites de la
terre et malgré quelques pistes, je ne suis pas parvenu à mes fi ns :-(

Je cherche à créer une FONCTION qui s'écrirait sous la forme :

=FONCTION(Plage1;Plage2)

qui comparerait une à une les cellules de la plage1 et de la place 2 :

si Plage1 = A1:A10
et Plage2 = B1:B10

On compare A1 à B1 puis A2 à B2 puis A3 à B3, .... et aunsi de suite
jusqu'à A10, fin de la plage1 (sachant que la plage2 a strictement le
même nombre de cellules)

Les cellules des plages 1 et 2 peuvent être soit :
- du TEXTE
- vides

Si la chaine de caractère inscrite en B1 contient la chaine de car actère
inscrite en A1, un compteur s'incrémenterait de 1

Exemple :

A1="A"
B1="ANANAS"
---> Compteur + 1

.......

A4="X"
B4="YY"
---> compteur + 0

.......

A10="7"
B10="HJM7PP"
---> Compteur + 1


Ma FONCTION me renverrait le nomnre de fois où ma condition a ét é remplie.


Voilà. J'espère avoir été assez claire pour allumer une p'ti te ampoule
au dessus de la tête de l'un d'entre nous. ;-)

Merci à tous.


Aka











Avatar
FxM
Je renvoie mon message de 20h48 (Xref : 515844) qui est passé à la
trappe (y aurait-il eu des mots-clé dans le sujet ?).


Je disais donc ...

Bilan de l'opération :

- 5 contributeurs différents pour 6 solutions,
- 3 fichiers exemples sur cjoint.com,
- 5 fois des "Marche pôôô" laconiques,

Et, au bout du compte, plus personne depuis 2h et même pas une marque de
gratitude. C'est à vous dégoûter de répondre !

@+
FxM
1 2