recherche chaine de caractères avec prise en compte de chaine inexistante

pitufo2804

XLDnaute Junior
Bonjour a tous,

apres pas mal de recherches sur notre ami google, je n'obtiens pas la réponse a mon problème alors soit je cherche mal soit je suis mauvais....

j'effectue une recherche de chaine de caractères dans une colonne.
si je trouve la chaine pas de soucis mais erreur 1004 quand la chaine n'existe pas.
quand je lance le debogage, il bloque sur la ligne de recherche.
comment fait-on pour éviter ce blocage et afficher une msgbox disant que la chaine n'existe pas ?

merci pour vos réponses.
 

sousou

XLDnaute Barbatruc
Re : recherche chaine de caractères avec prise en compte de chaine inexistante

Bonjour pitufo2804
L'erreur 1004 n'est pas une erreur qui provient de la recherche
en cas de nnon existance de la chaine, la recherche(find) devrait te renvoyer nothing
et la tu test si le résukltat est nothins alors message
 

pitufo2804

XLDnaute Junior
Re : recherche chaine de caractères avec prise en compte de chaine inexistante

D'accord merci...
voila mon code :
Code:
Application.ScreenUpdating = False

DernLignPAMO = sheets("suivi_dossier_(3)").Range("A65536").End(xlUp).Row
DernLignCollabo = ActiveSheet.Range("A65536").End(xlUp).Row

For i = 2 To DernLignCollabo

    Nom = ActiveSheet.Range("A" & i).Value
    ActiveSheet.Rows(i).Copy
    NomPAMO = sheets("suivi_dossier_(3)").Columns(1).Find(Nom, _
        lookat:=xlWhole)
    If NomPAMO Is Nothing Then
    MsgBox ("inexistant")
    Else
    LigneNomPAMO = sheets("suivi_dossier_(3)").Columns(1).Find(Nom, _
        lookat:=xlWhole).Row
    sheets("suivi_dossier_(3)").Range("A" & LigneNomPAMO).PasteSpecial
    End If
        
Next i

d'ou pourrai venir le soucis alors ?
 

pitufo2804

XLDnaute Junior
Re : recherche chaine de caractères avec prise en compte de chaine inexistante

C'est bon j'ai trouvé ! Merci pour ton indication ;)
voila le code :
Code:
Application.ScreenUpdating = False

DernLignPAMO = sheets("suivi_dossier_(3)").Range("A65536").End(xlUp).Row
DernLignCollabo = ActiveSheet.Range("A65536").End(xlUp).Row
Dim NomPAMO As Object
For i = 2 To DernLignCollabo

    Nom = ActiveSheet.Range("A" & i).Value
    ActiveSheet.Rows(i).Copy
    Set NomPAMO = sheets("suivi_dossier_(3)").Columns(1).Find(Nom, _
        lookat:=xlWhole)
    If NomPAMO Is Nothing Then
    MsgBox ("inexistant")
    Else
    LigneNomPAMO = sheets("suivi_dossier_(3)").Columns(1).Find(Nom, _
        lookat:=xlWhole).Row
    sheets("suivi_dossier_(3)").Range("A" & LigneNomPAMO).PasteSpecial
    End If
    
    
Next i
 

sousou

XLDnaute Barbatruc
Re : recherche chaine de caractères avec prise en compte de chaine inexistante

Voici le principe
la fonction find renvoi un objet i (set i)
et je test si l'objet est nothing

Sub deb()
Set i = ActiveSheet.UsedRange.Find("a")
If i Is Nothing Then MsgBox "innexistant"
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 563
Messages
2 089 681
Membres
104 252
dernier inscrit
dbsromaric