Message d'erreur

thomasdu40

XLDnaute Occasionnel
Bonjour,

J'ai un fichier qui est constitué de 3 feuilles dont 2 feuilles masquées. Dans ce fichier sont présentes différentes macros. Lorsque je fais apparaître une des deux feuilles masquées systématiquement j'ai le message suivant qui apparaît :
Erreur d'éxécution '438' :
Propriété ou méthode non gérée par cet objet.

Lorsque je clique sur "Débogage" jai la ligne suivante qui est en jaune
Code:
ActiveSheet.TextBox5.Value = Txt


Le code complet est
Code:
Sub Macro1()
    Txt = Range("B4").Value
    Arreter_macro = False
    
    Do
        ActiveSheet.TextBox5.Value = Txt
        W = 0.2
        Temp = Timer
        Do While Timer < Temp + W
          If Arreter_macro = True Then Exit Do
          DoEvents
        Loop
        Txt1 = Right(Txt, Len(Txt) - 1)
        Txt2 = Left(Txt, 1)
        Txt = Txt1 & Txt2
    Loop Until Arreter_macro = True
    ActiveSheet.TextBox5.Value = ""
End Sub

Si vous savez pourquoi.

Merci.
 

Dranreb

XLDnaute Barbatruc
Re : Message d'erreur

Bonsoir.
Ne pouvez vous remplacer ActiveSheet par le CodeName de la feuille contenant la TextBox5 ? ou bien Me si c'est écrit dans module de la feuille ? Parce que là ActiveSheet pouvant être n’importe quelle feuille au gré des activations, on ne lui connait pas d'objets spécifiques à une feuille particulière connu au moment de la compilation.
À +
 

thomasdu40

XLDnaute Occasionnel
Re : Message d'erreur

Bonjour Dranreb,

Voici mon code modifié
Code:
Sub Macro1()
    Txt = Range("B4").Value
    Arreter_macro = False
    
    Do

        Feuil2.TextBox5.Value = Txt
        W = 0.2
        Temp = Timer
        Do While Timer < Temp + W
          If Arreter_macro = True Then Exit Do
          DoEvents
        Loop
        Txt1 = Right(Txt, Len(Txt) - 1)
        Txt2 = Left(Txt, 1)
        Txt = Txt1 & Txt2
    Loop Until Arreter_macro = True
    Feuil2.TextBox5.Value = ""
End Sub

mais maintenant c'est la ligne ci-après qui est en jaune
Code:
Txt1 = Right(Txt, Len(Txt) - 1)

Merci.
 

thomasdu40

XLDnaute Occasionnel
Re : Message d'erreur

Bonjour,

Logiquement et pour résumé la fonction de ce code, j'ai dans la feuille 2 dans la cellule B4 un textequi est saisi. Ce même texte défile automatiquement dans le TextBox 5.

Si j'enregistre mon fichier en masquant les feuilles 1 et 3 et que je réouvre le fichier où n'apparaîtra que la feuille 2, je n'ai plus de message d'erreur "Erreur d'éxécution 5 : argument ou appel de procédure incorrect".

Par contre si je réouvre le fichier où les feuilles 1 et 3 ne sont plus masquées, c'est à ce moment que le message d'erreur apparaît. Dans le code ci-dessus, la feuille 2 est également précisée.

Je pensais que TXT indiquait le texte qui devait défiler dans la TextBox et qui était saisi en B4.
 

Dranreb

XLDnaute Barbatruc
Re : Message d'erreur

Préfixez autant que possible vos méthodes Cells et Range d'une espression worksheet sinon il prend par défaut la méthode Range de l'objet Application (appelé "Global", allez savoir pourquoi, dans le message qui dit qu'elle a échoué) et celle ci assume la feuille active du classeur actif. Même quand je ne peux éviter d'utiliser la casse gueule je précise exprès lourdement Application.Range...
VB:
Txt = Feuil2.Range("B4").Value
À +
 

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso