MagicDoctor
Messages postés7Date d'inscriptionmardi 20 novembre 2007StatutMembreDernière intervention19 décembre 2007
-
18 déc. 2007 à 23:27
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
19 déc. 2007 à 22:56
Bonsoir à tous,
Je voudrais, au moyen d'une macro savoir si une certaine valeur, par exemple "zaza" se trouve dans une colonne d'un tableau d'une feuille d'Excel. En d'autres termes, je voudrais que la macro analyse son contenu et vérifie si une certaine valeur s'y trouve.
Merci pour toute réponse.
A voir également:
Vérifier dans une macro si une valeur déterminée se trouve dans un tableau d'Exc
MagicDoctor
Messages postés7Date d'inscriptionmardi 20 novembre 2007StatutMembreDernière intervention19 décembre 2007 19 déc. 2007 à 13:52
Bonjour à tous et merci de vos réponses
J'ai essayé la solution de MPi sur Excel (puisque je travaille dans cet environement), malheureusemet, chaque fois la macro plante, et toujours le même message d'erreur (Err. 13). Les types ne coïncideraient pas... (enfin c'est ce que dit mon programme en espagnol, puisque je suis en Uruguay)
Apparemment il y a un problème avec la fonction "Find".
Pour être plus précis, voilà exactement ce que j'avais écrit :
'je cherche si "Julie" se trouve dans la colonne "JamaisContente"
Sub test()
Dim Recherche As Range, MaValeur As String
MaValeur = "Julie"
Set Recherche = Columns("ColonneJamaisContente").Find(MaValeur, LookIn:=xlValues, LookAt:=xlPart)
If Not Recherche Is Nothing Then
MsgBox "Trouvé à l'adresse " & Recherche.Address
'Msgbox "Trouvé à la ligne " & recherche.Row
'Msgbox "Trouvé dans la colonne " & recherche.Column
End If
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 19 déc. 2007 à 00:07
Salut,
tu as pas du chercher ou essayer longtemps pour nous poser une question pareil !
Aujourd'hui, y a une personne plus avancée que toi qui a posée une question sur le sujet, en d'autre terme elle a essayée . Comme je veux pas te macher le boulot je te donne juste le sujet :
Sujet : fonction find prenant en compte 2 critères entrés dans des combobox.
Vas voir j'y ais poser un bout de code qui fait exactement ce que tu cherches.
Et STP ne soit pas susceptible a propos de ce que je t'ais dit plus haut. Tu peux revenir si tu as un probleme.
Je te repondrais mais essaye.
En faite j'arrive pas a etre aussi dure que les grandes pontes de ce site ^^... Dite les gars, il faut combien de temps pour y arriver ?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 19 déc. 2007 à 00:46
Salut MPi,
non non, je ne confonds pas lit le sujet... et puis je te met le bout code ici ce sera mieux qu'un long discour.
Sub essai()
Dim macelule As Range, maligne As Single, lastvalue As Single, Nom As String
lastvalue = Range("A:A").Find("*", [a1], , , xlByRows, xlPrevious).Row
For Each macelule In Range([a1], Cells(lastvalue, 1))
On Error Resume Next
Nom = Left(macelule.Value, Application.Search(" ", macelule.Value, 1) - 1)
If Nom = mavaleur1 Then 'dans ce if tu met un deuxieme if pour verifier la deuxieme valeur (le prenom par exemple)
maligne = macelule.Row
MsgBox maligne
Exit For
End If
Next
End Sub
la variable "mavaleur1" peu venir de n'importe ou une celule, une textebox, une combobox, etc. ici l'interet est que tu peux chercher plusieurs valeur dans une meme celule (dans le if existant).
mais effectivement pour une seul valeur on peu faire plus simple comme:
pour chercher un nom par exemple, si la celule contient le nom et le prenom avec un espace entre les 2
Sub essai()
Dim maligne As Single, Nom As String
Nom = Left(mavaleur1, Application.Search(" ", mavaleur1, 1) - 1)
maligne = Range("A:A").Find(Nom, [a1], , , xlByRows, xlPrevious).Row
MsgBox maligne
End Sub
Et desolé si finalement je parait dure cela n'etait pas mon intention.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 19 déc. 2007 à 01:28
Re-salut,
J'ai bien vu le sujet et il me semble que MagicDoctor recherche une valeur dans une feuille et non pas dans une cellule (?)
De là ma suggestion d'utiliser Find qui ne prend qu'un critère (et je répète... ou je radote (?) )
Le critère dont je parle est en bleu
La recherche se fait dans la colonne A, ici...
Dim Recherche As RangeSet Recherche Columns(" A ").Find(<gras>MaValeur, LookIn:</gras>xlValues, LookAt:= xlPart)
If Not Recherche Is Nothing Then
Msgbox "Trouvé à l'adresse " & recherche.Address
'Msgbox "Trouvé à la ligne " & recherche.Row
'Msgbox "Trouvé dans la colonne " & recherche.Column
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 19 déc. 2007 à 02:01
... non non MPi ! ni tu te repetes ni tu radotes
on dit la meme chose.
Tu as raison une fonction find fait tres bien l'affaire et c'est bien une fonction find que j'utilise dans mon deuxieme bout de code. Comme tu peux le voir je cherche dans la colonne A une valeur Nom mais je lui
ai juste ajouté la possibilité de faire une recherche sur les celules d'une colonne qui contiendrais un nom et un prenom separés par un espace puis je renvois via une msgbox le numero de la ligne qui contient la valeur recherchée.
Enfin pour etre plus precis quand j'ai dit regarde le sujet il ne s'agissait pas du present sujet mais du sujet que j'ai suggeré a MagicDoctor.
Et encore une fois desolé de la confusion et de l'emcombrement de ce sujet.