MODE ARRET au démarrage d'un userform

Bonjour,

J'ai un programme VBA Excel sur lequel je lance un userform à partir d'un macro dans un module.

La macro du Module1 est tout simplement la suivante:

Sub imp_ress()
Imp_resources.Show
End Sub

Lapartie "Initialise" suivante du userform se déroule correctement:

Private Sub UserForm_Initialize()
Dim i As Integer
i = 5
Me.ComboBox1.AddItem "Import timesheets only where time spent is not reported"
For i = 5 To ThisWorkbook.Sheets.Count
    Me.ComboBox1.AddItem ThisWorkbook.Sheets(i).Name
Next i
Me.ComboBox1.ListIndex = 0
End Sub

Mais à la fin de cette partie, l'userform est inutilisable et le code VBA apparaît à l'utilisateur en Mode Arrêt.

L'utilisateur voit donc "Imp_resources.Show" du Module1 en surbrillance jaune et doit cliquer sur "continuer" pour que la macro se relance. Avez-vous une explication à cela, car je ne comprends pas du tout d'où cela peut venir.

Merci par avance

Thibault

Bonjour,

Lapartie "Initialise" suivante du userform se déroule correctement:

(...)

Mais à la fin de cette partie, l'userform est inutilisable et le code VBA apparaît à l'utilisateur en Mode Arrêt.

L'utilisateur voit donc "Imp_resources.Show" du Module1 en surbrillance jaune

C'est que ça ne se déroule pas comme prévu et que la proc; Initialize plante !

Comme cela ne devrait pas, même si moins de 5 feuilles dans le classeur, on ne pourra voir ça que sur ton fichier car ce doit être lié à une particularité...

Cordialement.

Le voici,

il s'agit de la macro "Module1 > imp_ress()" qui est censée lancer le formulaire "Imp_resources"

Le même problème se pose avec les macro:

  • Module1 > create_FS() censée lancer le formulaire "Create_form"
  • Module1 > create_inv() censée lancer le formulaire "Create_Invoice"

Tous les formulaires se mettent en mode arrêt à la fin de la partie "Initialize".

Si je relance la macro, la suite se déroule sans problèmes.

Merci pour l'aide !

Comme je l'avais dit... même si le code n'est pas indenté, comporte quelques absurdités, etc. rien à priori ne l'empêchait de fonctionner ! Et il fonctionne : la feuille DEC-2016 qui doit donc être la 5e feuille (puisqu'il n'y en a que 5) figure bien dans la liste...

(Et le Userform s'affiche normalement).

Hormis le conseil d'écrire un peu mieux le code et de l'indenter correctement, si problème il ne semble pas être dans le fichier !

Cordialement.

C'est étrange car quand je lance l'une des 3 macros sur le fichier joint, l'erreur apparaît (voir screenshot joint).

Mais ça a l'air de fonctionner lorsque c'est utilisé sur un autre PC.

C'est peut-être dû à une erreur de configuration de mon Excel?

test

Tes deux moitiés d'images ne vont pas ensemble !

A droite affichage normal du Userform, donc pas d'erreur !!!

A gauche une signalisation d'erreur qui implique qu'avant le Userform ne se soit pas affiché, à la place un message d'erreur, et clic sur Débogage dans ce message.

Les deux morceaux sont donc incompatibles !

En effet, d'où mon incompréhension.

Étrangement ces 2 images sont prises au même instant sur les 2 écrans de mon ordinateur (le code est apparaît sur l'écran de gauche et la fichier Excel sur l'écran de droite.

Si je pose un STOP dans le code "Initialize" du userform (point rouge), alors il s'arrêt bien au STOP indiqué, et affiche bien le code "Initialize". C'est donc une preuve que le userform s'initie normalement.

Mais dès qu'il est initialisé, le code me ramène à l'erreur sur le Module1 (voir écran de gauche sur le screenshot).

Et il devient alors impossible de déclencher les actions du userform via son bouton "OK" ou "CANCEL" sans avoir débloqué la macro (bouton "play" dans la fenêtre VBA).

Je ne comprend spas bien car hier encore le code fonctionnait et je n'ai appliqué aucun changement...

Sur 2 écrans, en mode extension, tu dois pouvoir effectivement afficher l'éditeur sur l'un des deux.

Le Stop, ça dépend où tu le places ! Mais dès lors que tu mets un Stop, tu seras en mode Arrêt au Stop !

Okay,

donc pour être plus clair:

Si je place le stop dans la partie "Private Sub UserForm_Initialize()" du userform, le code s'arrêt dans le userform au niveau du stop (voir image 1 ci-dessous):

Si je place le stop dans la partie "Private Sub OK_Click()" du userform, le userform apparaît bien sur ma page Excel, mais le code s'arrête sur dans Module1 avant même de pouvoir utiliser le formulaire (voir image 2 ci-dessous).

Ce qui me paraît incohérent, c'est que puisque l'étape "Initialize" du formulaire se déroule normalement (et le formulaire est déjà chargé, il apparaît), l'étape "Userform.Show" devrait avoir été terminée au préalable... non?

Et le plus important, le problème persiste si je ne mets aucun STOP.

Du coup mon problème persiste toujours...

Thibault

arret anormal stop1

Soyons simple ! Si tu ne mets aucun Stop dans initialize et que le Userform s'affiche normalement, que la liste est dans la Combo, c'est bien que le problème posé, tel qu'il est posé est d'ores et déjà résolu !

Si le problème apparaît en cliquant sur OK, c'est un autre problème ! Je conseille déjà de ne pas décharger le Userform (unload) avant la fin de la procédure. Si tu veux le masquer dès le clic, tu utilises Hide : il est tout de même logique de conserver le Userform en mémoire tant qu'on exécute une procédure qui y est attachée ! Et tu peux même le décharger au retour dans la procédure appelante.

bonsoir,

Je n'ai pas d'erreur non plus sur le fichier joint.

A+

Meilleurs voeux Galopin !

Je ne me souviens pas avoir eu l'occasion de le faire...

Bonjour,

MFerrand a écrit :

Meilleurs voeux Galopin !

Je ne me souviens pas avoir eu l'occasion de le faire...

Pfui... !!! Moi j'y ai renoncé ! J'ai juste fait le 1er janvier pour les ceusses qui lisent tout et puis basta !

Sinon YFO que j'embauche tous les ans à cette période, rien que pour ça !

Mais c'est de bon cœur quand même :

A+

Rechercher des sujets similaires à "mode arret demarrage userform"