Recherche de valeur dans liste d'arguments
Résolu
Nimsir
Messages postés
54
Statut
Membre
-
Nimsir Messages postés 54 Statut Membre -
Nimsir Messages postés 54 Statut Membre -
Bonjour,
Tout d'abord, une bonne et heureuse année 2010 à toutes et à tous ;-)
Ensuite, mon problème...
J'ai une feuille excel avec différentes valeurs... J'aimerai une formule qui me rendre un "TRUE" si cette une valeur est présente dans une liste d'arguments, et "FALSE" si elle ne l'est pas.
Donc en admettant que dans A1 j'ai une valeur "papa" et que de C1 à C5 j'ai "soeur, frère, maman, chien, chat, poisson rouge", j'aimerai que dans B1 il me mette un FALSE (car pas dans la liste) et un "TRUE" si cela avait été "chien" par exemple dans A1... Vous me suivez ? ^^
D'autre part, il faudrait que cela respecte la casse. Il devrait me renvoyer "TRUE" quand "chien" se trouve dans la liste, mais "FALSE" quand "Chien" se trouve dans la liste... idem pour "chienne" (FALSE), ...
A vi, tout ça en sachant que j'ai excel en anglais :-)
Merci d'avance pour l'aide que vous pourrez me fournir !
Bonne journée,
Nim
Tout d'abord, une bonne et heureuse année 2010 à toutes et à tous ;-)
Ensuite, mon problème...
J'ai une feuille excel avec différentes valeurs... J'aimerai une formule qui me rendre un "TRUE" si cette une valeur est présente dans une liste d'arguments, et "FALSE" si elle ne l'est pas.
Donc en admettant que dans A1 j'ai une valeur "papa" et que de C1 à C5 j'ai "soeur, frère, maman, chien, chat, poisson rouge", j'aimerai que dans B1 il me mette un FALSE (car pas dans la liste) et un "TRUE" si cela avait été "chien" par exemple dans A1... Vous me suivez ? ^^
D'autre part, il faudrait que cela respecte la casse. Il devrait me renvoyer "TRUE" quand "chien" se trouve dans la liste, mais "FALSE" quand "Chien" se trouve dans la liste... idem pour "chienne" (FALSE), ...
A vi, tout ça en sachant que j'ai excel en anglais :-)
Merci d'avance pour l'aide que vous pourrez me fournir !
Bonne journée,
Nim
A voir également:
- Recherche de valeur dans liste d'arguments
- Liste déroulante excel - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Liste déroulante en cascade - Guide
- Liste de diffusion whatsapp - Guide
- Site dangereux liste - Guide
26 réponses
Bonjour tout le monde,
Si j'ai bien suivi, ça pourrait être fait par formule si tu inscris (ou concatène) tous les mots dans une même cellule.
D'autre part : dès lors il mettra "Test JDG" ou "test jdg"
Pourquoi s'embeter avec la casse alors ?
Je t'ai fait les 2 cas : trouve() tient compte de la casse, chercher() n'en tient pas compte.
Sous forme de fichier que tu aies la traduction : nimsir.xls
eric
Si j'ai bien suivi, ça pourrait être fait par formule si tu inscris (ou concatène) tous les mots dans une même cellule.
D'autre part : dès lors il mettra "Test JDG" ou "test jdg"
Pourquoi s'embeter avec la casse alors ?
Je t'ai fait les 2 cas : trouve() tient compte de la casse, chercher() n'en tient pas compte.
Sous forme de fichier que tu aies la traduction : nimsir.xls
eric
Moui, c'est un peu gênant que ça dure aussi longtemps... Je tentais justement d'automatiser tout ça pour que ça aille plus vite. Car tout faire à la main...
En ce qui concerne le code, j'ai mis celui que tu m'as passé... à savoir:
Sub test()
Dim cel As Range
Dim derlig As Integer, j As Integer, numlig As Integer
derlig = Sheets("Datas").Range("A65536").End(xlUp).Row
numlig = Sheets("Test List").Range("A65536").End(xlUp).Row
With Worksheets("Test List")
For j = 7 To derlig
For Each cel In .Range("A1:A" & numlig)
If cel.Value Like Range("D" & j).Value Then
Range("I" & j) = 0
GoTo suivant
Else
If Range("C" & j) = "" Then
Range("I" & j) = 0
Else
Range("I" & j) = 1
End If
End If
Next cel
suivant:
Next j
End With
End Sub
EDIT: Bon, ça semble fonctionner.
Mais ça dur trop trop longtemps... j'ai 471 ligne à vérifier rien que pour hier... dans quelques jours je vais devoir vérifier pour tous le mois de janvier... ça va être galère.... non faisable...
En ce qui concerne le code, j'ai mis celui que tu m'as passé... à savoir:
Sub test()
Dim cel As Range
Dim derlig As Integer, j As Integer, numlig As Integer
derlig = Sheets("Datas").Range("A65536").End(xlUp).Row
numlig = Sheets("Test List").Range("A65536").End(xlUp).Row
With Worksheets("Test List")
For j = 7 To derlig
For Each cel In .Range("A1:A" & numlig)
If cel.Value Like Range("D" & j).Value Then
Range("I" & j) = 0
GoTo suivant
Else
If Range("C" & j) = "" Then
Range("I" & j) = 0
Else
Range("I" & j) = 1
End If
End If
Next cel
suivant:
Next j
End With
End Sub
EDIT: Bon, ça semble fonctionner.
Mais ça dur trop trop longtemps... j'ai 471 ligne à vérifier rien que pour hier... dans quelques jours je vais devoir vérifier pour tous le mois de janvier... ça va être galère.... non faisable...
Salut Eriic,
Il est vrai également qu'une bonne formule est préférable à une mauvaise macro.
Bonne journée
Il est vrai également qu'une bonne formule est préférable à une mauvaise macro.
Bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci eriic, il semble que ce soit ce bon :-)
Je vais tester ça plus amplement dans un proche avenir. Mais je dirais à première vue que c'est ok.
Et bien sûr un grand merci à pijaku de s'être penché longuement sur mon cas !
Je vais mettre le topic en résolu, mais gardez-le à l'oeil un p'tit temps... on sait jamais ;-)
Encore un tout grand merci !
Et pour te répondre, eriic, pourquoi faire attention à la casse ? Afin que ce soit précis. Aucune mauvaise surprise, on sait jamais.
Allez, bonne journée ;-)
Je vais tester ça plus amplement dans un proche avenir. Mais je dirais à première vue que c'est ok.
Et bien sûr un grand merci à pijaku de s'être penché longuement sur mon cas !
Je vais mettre le topic en résolu, mais gardez-le à l'oeil un p'tit temps... on sait jamais ;-)
Encore un tout grand merci !
Et pour te répondre, eriic, pourquoi faire attention à la casse ? Afin que ce soit précis. Aucune mauvaise surprise, on sait jamais.
Allez, bonne journée ;-)