Recherche de valeurs dans plages nommées
Résolu
Clem
-
Clem -
Clem -
Bonjour,
Je suis débutante en VBA et doit effectuer la macro suivante:
"Ecrivez une macro VerifValeur qui recherche une valeur dans une plage nommée.
La macro prendra deux arguments en paramètre :
valeur, représentant la valeur cherchée
zone, représentant le nom de la zone nommée dans laquelle se fera la recherche
La macro aura donc pour entête : Sub VerifValeur(valeur,zone)
Vous utiliserez la macro TestVerif pour tester votre macro"
Voilà ce que j'ai réussi à faire jusque là... évidemment ça ne fonctionne pas encore mais je bloque depuis un certain temps déjà! à l'aide!
Il y a trois plages nommées en tout (UE, ESA et CE)
---------------------
Sub VerifValeur(valeur, zone)
Trouvé = False
Dim zone As Range
For Each cellule In zone
If cellule.Value = valeur Then
Debug.Print "la valeur" + valeur + "existe"
Trouvé = True
End If
Next
If Trouvé = False Then
Debug.Print "la valeur n'existe pas"
End If
End Sub
------------------------
Sub TestVerif()
VerifValeur "France", "UE"
VerifValeur "France", "ESA"
VerifValeur "France", "CE"
VerifValeur "Allemagne", "UE"
VerifValeur "Allemagne", "ESA"
VerifValeur "Allemagne", "CE"
VerifValeur "Pologne", "UE"
VerifValeur "Pologne", "ESA"
VerifValeur "Pologne", "CE"
VerifValeur "Monaco", "UE"
VerifValeur "Monaco", "ESA"
VerifValeur "Monaco", "CE"
End Sub
---------------------------
Merci d'avance!
Clémentine
Je suis débutante en VBA et doit effectuer la macro suivante:
"Ecrivez une macro VerifValeur qui recherche une valeur dans une plage nommée.
La macro prendra deux arguments en paramètre :
valeur, représentant la valeur cherchée
zone, représentant le nom de la zone nommée dans laquelle se fera la recherche
La macro aura donc pour entête : Sub VerifValeur(valeur,zone)
Vous utiliserez la macro TestVerif pour tester votre macro"
Voilà ce que j'ai réussi à faire jusque là... évidemment ça ne fonctionne pas encore mais je bloque depuis un certain temps déjà! à l'aide!
Il y a trois plages nommées en tout (UE, ESA et CE)
---------------------
Sub VerifValeur(valeur, zone)
Trouvé = False
Dim zone As Range
For Each cellule In zone
If cellule.Value = valeur Then
Debug.Print "la valeur" + valeur + "existe"
Trouvé = True
End If
Next
If Trouvé = False Then
Debug.Print "la valeur n'existe pas"
End If
End Sub
------------------------
Sub TestVerif()
VerifValeur "France", "UE"
VerifValeur "France", "ESA"
VerifValeur "France", "CE"
VerifValeur "Allemagne", "UE"
VerifValeur "Allemagne", "ESA"
VerifValeur "Allemagne", "CE"
VerifValeur "Pologne", "UE"
VerifValeur "Pologne", "ESA"
VerifValeur "Pologne", "CE"
VerifValeur "Monaco", "UE"
VerifValeur "Monaco", "ESA"
VerifValeur "Monaco", "CE"
End Sub
---------------------------
Merci d'avance!
Clémentine
A voir également:
- Recherche de valeurs dans plages nommées
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche photo - Guide
- Je recherche une chanson - Guide
- Fréquence tnt recherche manuelle - Forum TNT / Satellite / Réception
- Excel liste de valeurs - Guide
3 réponses
Bonjour
la variable zone ne doit pas être déclarée dans la procedure, sinon elle sera ré-initialisée à nothing en attendant d'être affectée et celle passée à la procedure n'est plus visible dans la procedure
Essaies ceci
De plus lors de l'appel le second paramètre est une plage
Cdlmnt
la variable zone ne doit pas être déclarée dans la procedure, sinon elle sera ré-initialisée à nothing en attendant d'être affectée et celle passée à la procedure n'est plus visible dans la procedure
Essaies ceci
Sub VerifValeur(valeur, zone As Range) Dim cellule As Range, trouve As Boolean For Each cellule In zone If cellule.Value = valeur Then MsgBox "la valeur " & valeur & " existe dans la plage " & zone.Address & " en " & cellule.Address trouve = True Exit For End If Next If trouve = False Then MsgBox "la valeur n'existe pas" End If End Sub
De plus lors de l'appel le second paramètre est une plage
Sub TestVerif() VerifValeur "France", Range("UE") ... End Sub
Cdlmnt
Eh oui, tu as peut être un autre problème dans la deuxième procedure
J'ai pris comme option que zone est de type Range
j'ai modifié et complété le code, vois ce que ça donne
http://www.cjoint.com/c/GJCpysZQPpB
Cdlmnt
J'ai pris comme option que zone est de type Range
j'ai modifié et complété le code, vois ce que ça donne
http://www.cjoint.com/c/GJCpysZQPpB
Cdlmnt
Bonjour
Juste au cas où tu voudrais un truc mieux que des boucles....
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
.
Juste au cas où tu voudrais un truc mieux que des boucles....
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
.
merci beaucoup pour cette réponse rapide et les modifications apportées !
Hélas, ça ne fonctionne toujours pas (message d'erreur 1004 la méthode Range de l'objet _Global a échoué)
Cordialement,