Vérifier si une valeur existe dans une ligne

Résolu/Fermé
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 - 30 mai 2022 à 14:13
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 - 8 juin 2022 à 11:58
Bonjour à tout le monde,

J'aimerais savoir s'il est possible de vérifier si une valeur texte existe dans une ligne en fonction d'un critère dans une colonne de mon tableau Excel et de compter le nombre de ligne dans lesquelles cette valeur apparait?

J'ai essayer avec sommeprod mais le résultat est faux si la valeur texte apparait plusieurs fois dans la même ligne, je vous joint un fichier exemple pour mieux comprendre ce dont j'ai besoin.

https://www.cjoint.com/c/LEEmmZRDJXG

Merci pour toute l'aide apportée
Rorocr


Configuration: Windows / Chrome 101.0.4951.67
A voir également:

20 réponses

ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
30 mai 2022 à 15:02
Bonjour

Avec une fonction personnalisée (macro)
https://www.cjoint.com/c/LEEnblF8ruB

Cdlmnt
1
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
31 mai 2022 à 17:59
1
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
30 mai 2022 à 15:01
Bonjour

Oui ce sont les valeurs identiques sur une même ligne qui posent problème
A mon avis il faut rajouter une colonne de comptage en L pour marquer les lignes contenant au moins une fois la valeur voulue
Après la comptabilisation des valeurs face à un prénom est aisée avec un NB.SI.ENS
https://www.cjoint.com/c/LEEm6sxGSqe

Cdlmnt
Via

--"L'imagination est plus importante que le savoir."    A. Einstein
0
PapyLuc51 Messages postés 4379 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 27 septembre 2024 1 437
30 mai 2022 à 15:04
Bonjour,

Avec un moyen détourné.

https://www.cjoint.com/c/LEEndR5soIl

Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
30 mai 2022 à 16:32
Merci à vous 3 pour vos solutions qui fonctionnent toutes les 3. Je me rend compte qu'il peut avoir dans mon classeur Excel des cellules qui contiennent la valeur recherchée entre parenthèse après ma première référence.

ccm81, est ce que je peux utiliser ta fonction personnalisée en prenant en compte seulement les caractères de gauche de chaque cellule pour ne pas comptabiliser quand j'ai la référence entre parenthèse ?
0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
30 mai 2022 à 16:50
pour ne pas comptabiliser quand j'ai la référence entre parenthèse
Normalement la macro ne compte pas la référence si elle est entre parenthèses.
La cellule doit contenir exactement la référence fournie (xlWhole de la méthode Find)

Cdlmnt
0
PapyLuc51 Messages postés 4379 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 27 septembre 2024 1 437
Modifié le 30 mai 2022 à 16:51
Pour mon tableau si le code est parfois entre parenthèses remplacer $N$1 par "*"&$N$1&"*"

Cordialement
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
30 mai 2022 à 18:46
Effectivement ccm81 tu as raison ta formule prend en compte la valeur exacte mais du coup ne me compte pas la cellule si j ai une autre référence juste après entre parenthèses. Est il possible de modifier ta fonction pour qu’elle recherche le texte en dehors des parenthèse soit tu gauche soit à droite ?

Merci à toi aussi papy Luc51 je vais regarder ta proposition dès que j arrive devant mon pc
0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
30 mai 2022 à 18:57
. Est il possible de modifier ta fonction pour qu’elle recherche le texte en dehors des parenthèse soit tu gauche soit à droite ? ?
Peux tu envoyer des exemples avec les résultats attendus
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
31 mai 2022 à 12:51
Bonjour à tous,

ccm81, je t'ai remis le même fichier exemple avec les 2 cas de figures supplémentaires dans lesquels je ne doit pas compter la valeur recherchée car elle se trouve entre parenthèses.

https://www.cjoint.com/c/LEFkYEjZ7CG

Merci encore pour ton aide
0
PapyLuc51 Messages postés 4379 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 27 septembre 2024 1 437
Modifié le 31 mai 2022 à 13:52
Salut
En ce qui me concerne s'il ne faut pas les compter on revient à ma première réponse.

Cordialement
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
31 mai 2022 à 16:01
Bonjour Papyluc51 et merci, oui ta solution fonctionne mais je préfère celle de ccm81 qui ne fait pas rajouter une colonne intermédiaire.
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
1 juin 2022 à 14:57
Bonjour à tous,

Merci à tout le monde et spécialement à ccm81, ta solution est la plus adaptée à mes besoins. J'ai tester et tout à l'air de fonctionner correctement.
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
4 juin 2022 à 02:35
Bonsoir ccm81,

J'aurais besoin d'une modification dans ta formule pour un nouveau cas de figure,
C'est quasiment identique, dans mon tableau, il me faudrait toujours le nombre de ligne dans lequel apparait un texte mais sans exclusion (tu m'avais créer une formule qui m'excluait du compte le texte si il était situé entre parenthèses)
Ca m'a l'air plus simple que ce que tu m'avais fait mais impossible pour moi de modifier ton code.

Merci encore pour ton aide précieuse
Cordialement
0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié le 4 juin 2022 à 17:53
Bonjour

il suffit de modifir la troisième ligne comme ceci
      For co = 1 To nbco
        s = .Cells(li, co).Value
        If InStr(1, s, d) > 0 Then n = n + 1: Exit For
      Next co

https://www.cjoint.com/c/LFep1kcCERB

Cdlmnt
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
5 juin 2022 à 08:27
Bonjour,
Encore merci pour ton aide
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
6 juin 2022 à 00:01
Bonsoir ccm81, malgré que le sujet soit résolu, je pense que c'est mieux de poser cette nouvelle question ici puisque elle est relativement proche de la question de départ.
Etant donné que la fonction sommeprod ne fonctionne pas avec des caractères génériques, je voulais savoir comment compter dans une ligne le nombre total de fois qu'une cellule contient un texte par rapport à un critère au lieu de compter la ligne si ce texte apparait au moins une fois.
Je pense qu'il s'agit également d'une légère modification dans ton code mais que je suis incapable de faire.

Merci d'avance,
Cdlt
0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
6 juin 2022 à 15:02
Bonjour

compter dans une ligne le nombre total de fois qu'une cellule contient un texte par rapport à un critère
pas besoin de macro
Par exemple en ligne 10 combien de fois apparait le texte "ACC77"
=NB.SI(B10:K10;"*ACC77*")
les "*" pour prendre tout ce qu'il y a ici avant et après

Cdlmnt
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
7 juin 2022 à 16:45
Bonjour à tous,

ccm81, je connaissais la fonction nb.si mais le souci dans mon cas, c est que je ne connaît pas la ligne de la recherche car elle se fait en fonction d un critère et que ce critère peut être dans plusieurs lignes de mon tableau comme dans mon exemple.
Je n y arrive pas avec la fonction sommeprod car elle ne prend pas en compte les caractères génériques (ici j ai besoin du * pour prendre tout les caractères avant et après ce que je recherche) et apparemment le nb.si.ens ne fonctionne pas si je sélectionne une plage avec plus d une colonne.
Pour illustrer mon besoin en reprenant mon exemple, j'aurais besoin pour le critère "jean", le nombre de cellules qui contiennent le texte "DEE50-55", c'est à dire 6 (en cellules C2, E6, E10, G10, C14 et E14)


Merci d'avance,
Cdlt

PS : j'ai utiliser ton fichier modifié pour t'expliquer : https://www.cjoint.com/c/LFep1kcCERB
0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié le 7 juin 2022 à 19:05
OK, j'avais mal compris ton pb
tu enlèves : Exit For à cette ligne (on ne sort pas de la boucle lors de la première occurrence)
If InStr(1, s, d) > 0 Then n = n + 1: Exit For
pour obtenir ça
If InStr(1, s, d) > 0 Then n = n + 1
Cdlmnt
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
8 juin 2022 à 11:58
Parfait, merci encore à toi
0