Chercher une valeur dans une colonne er renvoyer le numero de la ligne

diego3110

XLDnaute Junior
Bonjour le forum,

J'arrive à faire ce qui est inscrit dans mon titre:

Exemple : je recherche la valeur "Forum" dans une colonne et cela me donne la ligne sur laquelle se trouve cette valeur.

Mot= "Forum"
Workbooks.Open Filename:=mon classeur

L = Columns("A").Find(MOT, LookIn:=xlValues, LookAt:=xlPart).Row

Mon pb est que si ce mot est présent cela me renvoie bien le numero de ligne mais si ce mot n'est pas présent cela BUG : "erreur d'execution '91 Variable objet ou variable bloc with non définie" alors que je voudrais que l'on me renvoie la valeur 0 ou vide.

Quelqu'un aurait une idée?

Merci d'avance
A+
 

pijaku

XLDnaute Occasionnel
Re : Chercher une valeur dans une colonne er renvoyer le numero de la ligne

Bonjour,
Pour la méthode Find, j'aime bien personnellement chercher le Range qui contient la valeur. Comme ceci :
Code:
Dim Trouve As Range
Dim Valeur_Cherchee As String
Set Trouve = Columns(1).Find(Valeur_Cherchee , LookIn:=xlValues, LookAt:=xlPart)
If Trouve Is Nothing Then
    MsgBox "Ah zut, je n'ai pas trouvé la valeur : " & Valeur_Cherchee
Else
    MsgBox "Valeur trouvée à la ligne : " & Trouve.row
End If
Set Trouve = Nothing
Tu dis...
 
Dernière édition:

diego3110

XLDnaute Junior
Re : Chercher une valeur dans une colonne er renvoyer le numero de la ligne

Bonjour pijaku,

Merci . Ta solution est bien mais ne correspond pas tout à fait à ma problématique. De plus même en copiant ta solution cela me renvoie la même erreur si la donnée n'existe pas.

Est il possible sans ecrire de Msgbox (je me sert de la valeur "trouve" pour ensuite copier des données sur la ligne trouvée) d'arriver à ce que cela ne bug pas si il ne trouve pas la valeur ?
Si il ne trouve pas de valeur (si valeur = nothing ou vide ou 0 alors copie les données sur la premiere ligne vide).

Merci
a+
 

pijaku

XLDnaute Occasionnel
Re : Chercher une valeur dans une colonne er renvoyer le numero de la ligne

Dans le code donné plus haut, suffit de changer le message d'erreur, en y mettant la valeur que tu souhaites pour ta variable Ligne :
Code:
Dim Trouve As Range
Dim Valeur_Cherchee As String
Dim MaLigne As Long

Set Trouve = Columns(1).Find(Valeur_Cherchee , LookIn:=xlValues, LookAt:=xlPart)
If Trouve Is Nothing Then
    'MsgBox "Ah zut, je n'ai pas trouvé la valeur : " & Valeur_Cherchee
    MaLigne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1
Else
    MaLigne = Trouve.row
End If
Set Trouve = Nothing
Cells(MaLigne, 1).Select 'même si on évite un maximum les Select.....
 

diego3110

XLDnaute Junior
Re : Chercher une valeur dans une colonne er renvoyer le numero de la ligne

re ,

Merci pour ton aide pijaku.

En fait, j'ai juste ecrit : On Error Resume Next
qui me permet de sauter le message d'erreur et d'avoir ma valeur à 0.

Merci encore pour ton aide

a+
 

Discussions similaires

Statistiques des forums

Discussions
312 747
Messages
2 091 604
Membres
105 007
dernier inscrit
adla