Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 !

P

Perth

Guest
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 modification par un modérateur:
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…