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

Erreur définie par l'application ou par l'objet et fonction Find

  • 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 le forum,

J'ai un souci au niveau de ma macro alors que celle ci fonctionnais à merveille hier. Qui l'eu cru ? Bref.

Je cherche à faire exécuté une macro (écrite dans un template.xls) sur un autre classeur (mettons x.xls). Lorsque j'exécute la macro de x.xls celui-ci me sort une erreur: "Erreur définie par l'application ou par l'objet" sur ma ligne où je fait une recherche:

VB:
Set CelluleTrouvee = ActiveSheet.Range("A:XFD").Find(What:="Wavelength", LookAt:=xlWhole)
    If CelluleTrouvee Is Nothing Then
        Set CelluleTrouvee = ActiveSheet.Range("A:XFD").Find(What:="Lambda", LookAt:=xlWhole)
        If CelluleTrouvee Is Nothing Then
            DejaImport = False
        Else
            DejaImport = True
        End If
    Else
        DejaImport = True
    End If

Mon x.xls a cette gueule :
Code:
Lambda	                  345.54	345.76
AVO 3.3.020311 DV000	-1652.174	-1652.174
AVO 3.3.020311 DV001	-1004.348	-1004.348

Merci d'avance de toutes réponses!
 
Re : Erreur définie par l'application ou par l'objet et fonction Find

Bonjour Perth,

Si le Find d'Excel ne trouve rien, cela renvoie un message d'erreur
Ce message d'erreur tu essaye de l'attribuer à une variable objet, d'ou ton message

Ce qu'il faut faire, c'est entourer la fonction find d'une gestion d'erreur
Comment faire, comme cela :
VB:
On Error Resume Next  ' En cas d'erreur on continue sans message
Set CelluleTrouvee = ActiveSheet.Range("A:XFD").Find(What:="Wavelength", LookAt:=xlWhole)
On Error Goto 0 ' En cas d'erreur on affiche un message
     If CelluleTrouvee Is Nothing Then
         Set CelluleTrouvee = ActiveSheet.Range("A:XFD").Find(What:="Lambda", LookAt:=xlWhole)
         If CelluleTrouvee Is Nothing Then
             DejaImport = False
         Else
             DejaImport = True
         End If
     Else
         DejaImport = True
     End If

A+
 
Dernière modification par un modérateur:
- 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.

Discussions similaires

P
Réponses
8
Affichages
1 K
J
Réponses
13
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…