IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Tester si un texte existe déjà dans une cellule


Sujet :

Excel

  1. #1
    Membre éprouvé

    Homme Profil pro
    Technicien
    Inscrit en
    août 2013
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2013
    Messages : 366
    Points : 1 060
    Points
    1 060
    Par défaut Tester si un texte existe déjà dans une cellule
    Bonjour

    Dans mon tableau, je renseigne des noms (colonnes A C et E).
    Je cherche à déterminer "en face" (colonne B D F) si le texte de la cellule correspondante existe déjà dans une autre cellule : si c'est le cas la cellule doit afficher "oui"
    Je pensais au début sur une rechercheh ou recherchev mais comme je travaille sur de multiples lignes et colonnes, c'est compliqué. Je reste donc bloqué.

    Dans l'exemple joint, les cellules B3 et D2 doivent indiquer "oui".

    Merci pour votre aide
    Fichiers attachés Fichiers attachés
    [Nouveau] Envie de tracer des circuits électriques : essayez le package LaTeX CircuiTikZ

    Pour créer une belle table des matières sur LibreOffice - N'oubliez pas de consulter les FAQ en cas de question !

    Envie de se lancer dans l'aventure Arduino : allez faire un tour sur ce cours.


    Ma réponse vous a plu ? Un petit vote serait sympa

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    10 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 10 878
    Points : 26 029
    Points
    26 029
    Billets dans le blog
    34
    Par défaut
    Bonjour,
    Je n'ouvre pas les fichiers joints mais s'il faut vérifier qu'une valeur existe déjà dans une colonne ou une ligne donnée, on peut utiliser la fonction EQUIV (MATCH en anglais)
    Cette fonction renvoie la position d'une valeur cherchée dans une colonne ou dans une ligne ou #N/A si pas trouvé.

    Pour renvoyer une texte quelconque (Oui ou Non) en fonction de son existence ou pas, il suffit donc d'imbriquer cette fonction dans deux autres (SI et ESTNA) pour renvoyer le texte adéquat

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNA(EQUIV(A3;Feuil2!$C$2:$C$10000;0));"Non";"Oui")
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Ma dernière contribution : VBA - Les macros complémentaires

  3. #3
    Membre éprouvé

    Homme Profil pro
    Technicien
    Inscrit en
    août 2013
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2013
    Messages : 366
    Points : 1 060
    Points
    1 060
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Je n'ouvre pas les fichiers joints mais s'il faut vérifier qu'une valeur existe déjà dans une colonne ou une ligne donnée, on peut utiliser la fonction EQUIV (MATCH en anglais)
    Cette fonction renvoie la position d'une valeur cherchée dans une colonne ou dans une ligne ou #N/A si pas trouvé.

    Pour renvoyer une texte quelconque (Oui ou Non) en fonction de son existence ou pas, il suffit donc d'imbriquer cette fonction dans deux autres (SI et ESTNA) pour renvoyer le texte adéquat

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNA(EQUIV(A3;Feuil2!$C$2:$C$10000;0));"Non";"Oui")
    Bonjour,

    Merci pour la réponse.
    J'ai un petit souci à l'utilisation de la formule proposée : elle fonctionne très bien pour une recherche sur une seule colonne or mon tableau contient plusieurs lignes et colonnes et la formule ne fonctionne pas quand je change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNA(EQUIV(A3;Feuil2!$C$2:$C$10000;0));"Non";"Oui")
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNA(EQUIV(A3;Feuil2!$C$2:$D$10000;0));"Non";"Oui")
    Une copie d'écran de mon tableau :
    Nom : Capture d’écran 2021-07-24 144146.jpg
Affichages : 66
Taille : 14,6 Ko
    [Nouveau] Envie de tracer des circuits électriques : essayez le package LaTeX CircuiTikZ

    Pour créer une belle table des matières sur LibreOffice - N'oubliez pas de consulter les FAQ en cas de question !

    Envie de se lancer dans l'aventure Arduino : allez faire un tour sur ce cours.


    Ma réponse vous a plu ? Un petit vote serait sympa

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    10 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 10 878
    Points : 26 029
    Points
    26 029
    Billets dans le blog
    34
    Par défaut
    Bonjour,
    elle fonctionne très bien pour une recherche sur une seule colonne or mon tableau contient plusieurs lignes et colonnes et la formule ne fonctionne pas quand je change
    Oui, c'est normal et cela correspond exactement à ce que j'ai écrit "Cette fonction renvoie la position d'une valeur cherchée dans une colonne ou dans une ligne ou #N/A si pas trouvé"

    La façon dont sont organisées vos données n'est pas vraiment idéale et ce serait du bricolage pour obtenir un résultat probant.
    Par exemple avec SOMMEPROD où la formule vérifie si le prénom se trouvant en première colonne se retrouve sur les deux autres mais ne vérifie pas si ce prénom est également sur la première
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(SOMMEPROD( (L6=$N$6:$N$8) + (L6=$P$6:$P$8) );"Oui";"Non")
    La première colonne est en L6:L8, la deuxième N6:N8 et la troisième en colonne P. Vous vous imaginez si vous avez 20 colonnes, il y aurait lieu d'ajouter 17 tests pour la colonne 1 et multiplier sur les autres colonnes la même formule mais modifiée

    Une bonne organisation des données serait de mettre tous les prénoms dans une colonne et utiliser alors la fonction NB.SI

    Une solution existe avec PowerQuery pour transformer vos données pour les mettre sur une seule colonne
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Ma dernière contribution : VBA - Les macros complémentaires

  5. #5
    Membre éprouvé

    Homme Profil pro
    Technicien
    Inscrit en
    août 2013
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2013
    Messages : 366
    Points : 1 060
    Points
    1 060
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message

    La façon dont sont organisées vos données n'est pas vraiment idéale et ce serait du bricolage pour obtenir un résultat probant.
    Malheureusement, je ne peux pas trop changer. Pour être plus complet, dans la 1ère colonne j'ai une liste de clubs et dans les autres colonnes le nom de la personne responsable par niveau (une colonne par niveau) : je dois vérifier qu'un même nom n'apparait pas pour l'ensemble des clubs et pour l'ensemble des niveaux !

    Comme j'ai un certain nombre de niveau, je crois que la solution par SOMMEPROD sera effectivement fastidieuse !
    [Nouveau] Envie de tracer des circuits électriques : essayez le package LaTeX CircuiTikZ

    Pour créer une belle table des matières sur LibreOffice - N'oubliez pas de consulter les FAQ en cas de question !

    Envie de se lancer dans l'aventure Arduino : allez faire un tour sur ce cours.


    Ma réponse vous a plu ? Un petit vote serait sympa

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    10 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 10 878
    Points : 26 029
    Points
    26 029
    Billets dans le blog
    34
    Par défaut
    Bonjour,
    Malheureusement, je ne peux pas trop changer.
    Pourquoi faire simple quand on peut faire compliqué

    85% des utilisateurs d'excel, et je suis très optimiste, construisent mal leurs données sources.

    Que ce soit pour construire des plannings, pour visualiser le flux des ventes, des achats, contrôler les TimeSheet, etc.
    On ne met pas ces données comme on aimerait les voir mais en liste (table) et c'est avec les outils disponibles nativement et dans 90% des cas sans aucune formule que l'on construit le visuel

    Cela m'a pris plus de temps, de mettre des données aléatoires cohérentes et surtout de rédiger ma réponse que pour faire la synthèse (4 clics au total, soit 15 secondes)

    Maintenant si vous préférez passer du temps à bricoler des formules pour obtenir le même résultat, libre à vous

    Illustration

    Nom : 210724 dvp Compter les doublons Equipe - Niveau.png
Affichages : 52
Taille : 50,9 Ko
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Ma dernière contribution : VBA - Les macros complémentaires

  7. #7
    Membre éprouvé

    Homme Profil pro
    Technicien
    Inscrit en
    août 2013
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2013
    Messages : 366
    Points : 1 060
    Points
    1 060
    Par défaut
    Effectivement, je restais basé sur le visuel et non sur la finalité !
    Je pense que je ne connais pas énormément les possibilités d’excel !

    Dans les cellules des colonnes de gauche, cela correspond à ce qu’on saisit comme données ?
    Comment passes tu ensuite au tableau récapitulatif ?
    [Nouveau] Envie de tracer des circuits électriques : essayez le package LaTeX CircuiTikZ

    Pour créer une belle table des matières sur LibreOffice - N'oubliez pas de consulter les FAQ en cas de question !

    Envie de se lancer dans l'aventure Arduino : allez faire un tour sur ce cours.


    Ma réponse vous a plu ? Un petit vote serait sympa

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    10 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 10 878
    Points : 26 029
    Points
    26 029
    Billets dans le blog
    34
    Par défaut
    Bonjour,
    Dans les cellules des colonnes de gauche, cela correspond à ce qu’on saisit comme données ?
    Effectivement ce sont les données issues d'un tableau structuré

    Comment passes tu ensuite au tableau récapitulatif ?
    A l'aide du tableau croisé dynamique. L'un des plus fantastiques outil d'excel

    Liens sur developpez.com

    Pour le second sujet, une simple recherche sur le net, te permettra d'avoir un éclaircissement sur cette fonctionnalité
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Ma dernière contribution : VBA - Les macros complémentaires

  9. #9
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    juillet 2016
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : juillet 2016
    Messages : 2 938
    Points : 5 128
    Points
    5 128
    Par défaut
    Bonjour,

    Malheureusement, je ne peux pas trop changer.
    Si vous ne pouvez pas modifier votre fichier et suivre les recommandations de Philippe Tulliez que je salue, je pense que pour faire simple, il ne vous reste plus qu'une solution VBA.
    Sinon il y a encore plus simple, c'est la Mise en Forme Conditionnelle pour mettre en surbrillance les doublons.

    Voici un petit fichier qui cumule les 2 options.
    nibmoi_Tester si un texte existe déjà dans une cellule.xlsm

    le code dans le module de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Dim DerLig As Long, DerCol As Long, L As Long, C As Long, I As Long, Col As Long
    Dim Valeur As String, Nom As String
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        On Error GoTo Sortie
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        DerCol = Range("A1").End(xlToRight).Column
        For C = 1 To DerCol - 1 Step 2
            DerLig = Cells(1, C).End(xlDown).Row
            For L = 2 To DerLig
                Nom = Cells(L, C)
                Detect
                Cells(L, C + 1) = Valeur
            Next L
        Next C
    Sortie:
        Application.EnableEvents = True
    End Sub
     
    Sub Detect()
        Dim DerCol As Long, I As Long, DerLig As Long, Nb As Long
        DerCol = Range("A1").End(xlToRight).Column
        For I = 2 To DerCol Step 2
            Valeur = "NON"
            If C <> I - 1 Then
                DerLig = Cells(1, I - 1).End(xlDown).Row
                On Error Resume Next
                Nb = Application.WorksheetFunction.Match(Nom, Range(Cells(2, I - 1), Cells(DerLig, I - 1)), 0)
                If Err.Number = 0 Then
                    Valeur = "OUI"
                    Exit For
                End If
                On Error GoTo 0
            End If
        Next I
    End Sub
    Cdlt

  10. #10
    Membre éprouvé

    Homme Profil pro
    Technicien
    Inscrit en
    août 2013
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2013
    Messages : 366
    Points : 1 060
    Points
    1 060
    Par défaut
    Merci pour ces précieux conseils.

    Je vais regarder de plus près la solution du tableau structuré.
    [Nouveau] Envie de tracer des circuits électriques : essayez le package LaTeX CircuiTikZ

    Pour créer une belle table des matières sur LibreOffice - N'oubliez pas de consulter les FAQ en cas de question !

    Envie de se lancer dans l'aventure Arduino : allez faire un tour sur ce cours.


    Ma réponse vous a plu ? Un petit vote serait sympa

  11. #11
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    7 524
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 7 524
    Points : 14 398
    Points
    14 398
    Par défaut
    Bonjour à tous
    Citation Envoyé par ARTURO83 Voir le message
    Si vous ne pouvez pas modifier votre fichier et suivre les recommandations de Philippe Tulliez que je salue, je pense que pour faire simple, il ne vous reste plus qu'une solution VBA.
    En analyse on utilise souvent la méthode QQOQCCP : Qui ? Quoi ? Où ? Quand ? Comment ? Combien ? Pourquoi ?

    Si la réponse au pourquoi parait peu justifiée, le pourquoi doit être reposé jusqu'à 7 fois : je n'ai quasiment jamais eu de cas où la justification a résisté aux 7 pourquoi...
    Chris
    PowerQuery existe depuis plus de 10 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

Discussions similaires

  1. Texte très long dans une cellule
    Par rpapa dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 01/02/2019, 16h45
  2. [Débutant] requete Linq pour tester si un mot existe déja dans une BDD SQL
    Par Teclys dans le forum ASP.NET
    Réponses: 10
    Dernier message: 05/03/2015, 17h15
  3. Texte trop long dans une cellule
    Par Ekimasu dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 06/02/2007, 12h07
  4. [JXL]Récupérer le texte en gras dans une cellule
    Par Kobee1203 dans le forum Documents
    Réponses: 2
    Dernier message: 28/10/2006, 15h27
  5. Réponses: 3
    Dernier message: 31/07/2006, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo