VBA: Fonction Find ne s'éxecute pas/ ne renvoie rien

  • Initiateur de la discussion Initiateur de la discussion Perth
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Perth

XLDnaute Nouveau
Bonjour à tous 🙂

Je suis actuellement en stage (au canada, si mon temps de réponse est long, vous saurez pourquoi 😛) et je travaille sur une macro qui importe des fichiers textes d'un dossier.

Je dois apporter certaines validations sur la conformité de ces fichiers. Je fais donc une recherche dans l'en-tête de chaque fichier texte. Le problème est que, quand la ligne recherchée est effectivement présente dans le fichier, j'arrive à faire un traitement mais quand la ligne recherchée est absente, Excel semble passé au dela de ma recherche et fais comme si de rien étais.

Voici mon code :


VB:
'Parcours de ma collection contenant les fichiers texte
For j = 1 To colWave.Count
        Path = Repertoire + "\" + colWave.Item(j)
                      
        'Ouverture du fichier
        OpenUp (Path)
        
        'Recherche dans chaque fichier si l'étalonnage de la machine a été effectué
        Call RechMeasure
 [...]
Next j


'Fonction recherchant dans l'en-tete du fichier texte
Private Sub RechMeasure()
    'Recherche si l'étalonnage du noir a été éffectué
    Set DarkMeasure = ActiveSheet.Range(Cells(1, 1), Cells(100, 1)).Find(What:="dark measurements", LookIn:=xlValues, lookat:=xlPart)
    MsgBox DarkMeasure
    If DarkMeasure Is Nothing Then
        MsgBox "non trouvé"
    Else
        MsgBox "trouvé"
    End If

End Sub

D'avance merci ! 🙂
 
Dernière édition:
Re : VBA: Fonction Find ne s'éxecute pas/ ne renvoie rien

Bonjour,

modifie peut être ainsi :
Code:
Private Sub RechMeasure()
Dim DarkMeasure As Range
   Set DarkMeasure = ActiveSheet.Range("A1:A100").Find(What:="dark measurements", LookIn:=xlValues, lookat:=xlPart)
    If Not DarkMeasure Is Nothing Then
        MsgBox "trouvé"
    Else
        MsgBox "non trouvé"
    End If
End Sub

A noter qu'en l'état ta recherche s'effectue sur les 100 premières lignes de la colonne A...

bonne journée
@+
 
Re : VBA: Fonction Find ne s'éxecute pas/ ne renvoie rien

Bonjour Pierrot93,

Tout d'abord merci de ta réponse rapide. Tout marche impec', je n'avais pas pensé à déclarer DarkMeasure en tant que Range, l'erreur venais surment de la. ^^

(pour ce qui est des 100lignes, j'importe des fichiers de plus de 3000 lignes de données, l'en tête en prend "seulement" 100 ;P)

Merci encore !
 
Re : VBA: Fonction Find ne s'éxecute pas/ ne renvoie rien

Re,

il faut adapter cette ligne :
Code:
ActiveSheet.Range("A1:A100").Find

pour toute la colonne A :
Code:
ActiveSheet.Columns(1).Find

pour la ligne 1 :
Code:
ActiveSheet.Rows(1).Find
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour