[VBA excel] phénomène inexpliqué sur excel !

annyong Messages postés 38 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 25 février 2015 - 17 juin 2007 à 13:40
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 - 18 juin 2007 à 07:12
Bonjour,

je rencontre des problèmes sur Excel, des phénomènes assez étranges :
j'ai un peu de code que lorsque j'exécute, tout se passe comme prévu. le même code réexécuté, ça produit un effet différent.
et j'arrive pas à comprendre pourquoi.
Voici le code en question :

'dim monfichier as string
'dim mon_fichier as excel.workbook

Set mon_classeur = ActiveWorkbook
monfichier = UserForm2.TextBox6.Text
Workbooks.Open (monfichier)
Set mon_fichier = ActiveWorkbook

voila, j'ai exécuté ce code pas à pas sans problème jusqu'à maintenant. puis j'ai modifié un truc, et je suis revenu au code que j'avais initiallement (cad ce qu'il y a ci-dessus) et je n'ai plus la meme chose lors de l'exécution :  arrivé à : workbooks.open(monfichier), après il sort de la procédure, je ne comprends pas pour quelle raison. du coup je ne peux pas continuer à exécuter la suite du code :-(

est ce que vous voyez pourquoi SVP ??      

2 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
17 juin 2007 à 15:16
Avec si peu, je dirais que tu dois t'assurer d'avoir le bon programme activé avant d'appeler cette ligne. La première fois, ça passe peut-être bien, mais quand tu reviens une deuxième fois, est-ce encore le bon Workbook ?

Set mon_classeur = ActiveWorkbook

Et est-ce que tu utilises quelque chose comme On Error Resume Next ?

MPi
0
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
18 juin 2007 à 07:12
Bonjour

Avec si peu de code, pas évident à t'aider mais une remarque toutefois : quelle est la différence entre mon_classeur et mon_fichier ?  

Est-ce que UserForm2.TextBox6.Text contient effectivement un nom de fichier existant lors de ton second appel ?   Il serait bon de vérifier l'existence du fichier...

Dernier conseil : pense à donner des noms logiques à tes variables et objets.    UserForm2 ne veut rien dire; TextBox6 encore moins.   Mon_Classeur et Mon_Fichier : à quoi sert le premier, à quoi sert le second.   Si tu donnes des noms plus logique, cela serait plus facile à relire.

Set mon_classeur = ActiveWorkbook
monfichier = UserForm2.TextBox6.Text
Workbooks.Open (monfichier)
Set mon_fichier = ActiveWorkbook

Christophe
0