Bug d'activation d'une feuille Excel

Bonjour,

J'ai développé une petite macro pour extraire des informations d'une base de données sur un fichier Excel. Tout marche comme sur des roulettes excepté lorsque la macro est terminée ; malgré que le fichier nouvellement crée s'affiche, les menus de l'application ne réagissent pas. Si j'essaie de saisir une valeur dans une case, la valeur se met sur le fichier qui contient la macro. Voici le déroulement du programme et les bouts de code qui me semblent importants pour mon problème :

J'ouvre mon fichier qui contient la macro depuis le bureau. Le classeur contient un bouton pour lancer un formulaire mais celui-ci apparait déjà à l'ouverture grâce à la ligne

Private Sub Workbook_Open()
    UserForm2.Show
End Sub 

A l'ouverture, un formulaire apparait avec une TextBox que l'on rempli avec un nombre, un bouton annuler et un bouton valider qui lance l'exécution.

Public Sub CommandButton2_Click()

'déclaration des variables
'(...)

'récupère les infos de la textbox
'
numero = TextBox1.Value

'spécifie le chemin d'accès complet où sont sauvées les fichiers crées
'
path = "C:\........."

'Initialise la connection à la base de donnée
'(...)

'récupère les infos dans la base de données. On en extrait un fichier ***.xls  brut (remplace le fichier si deja existant)
'(...)

'ouvre le fichier nouvellement crée et lui applique la mise en forme selon une macro de mise en page
'
Application.DisplayAlerts = False

Workbooks.Open (path & "\" & numero & ".xls")

Application.DisplayAlerts = True

Module111.MISE_EN_PAGE            'le module de mise en forme

Application.WindowState = xlMaximized

'Puis j'ai essayé 2 solutions pour résoudre le problème avec la ligne suivante
'
Workbooks(numero & ".xls").Sheets(numero).Select          '1ere "solution"

'Insère 2 valeurs dans le fichier crée (jusque là pas de problème, les valeurs rentrées par les 2 lignes suivantes vont au bon endroit)
'
Range("C1").Value = variable1
Range("C2").Value = variable2

Unload Me

'En désactivant la ligne "1ere "solution"", j'ai essayé de mettre les 2 lignes suivantes en fin de code
'Car en revenant sur le fichierMacro.xlsm  (Alt-Tab) puis denouveau sur mon fichier crée, j'arrive à accéder aux menus
'
Workbooks("fichierMacro.xlsm").Activate    '2eme "solution"
Workbooks(numero & ".xls").Activate         '2eme "solution"

End Sub

Avec la 1ere solution, les menus ne réagissent pas et si je rentre une valeur dans une case de mon nouveau fichier, la valeur vient se mettre sur mon fichierMacro.xlsm. En rebasculant sur le fichier crée alors les menus s'activent

Avec la 2eme solution, les menus sont réactifs mais si je veux imprimer la feuille créee, Excel me dit qu'il n y a rien à afficher et j'ai le même problème que pour la solution précédente lors d'une saisie de valeur (on dirait que la valeur se met au bon endroit mais après avoir appuyé sur Entrée, j'ai mon fichierMacro qui s'affiche avec la valeur saisie dans une case).

J'espère que j'ai réussi à me faire comprendre. Si quelqu'un à une idée à me proposer, j'essaierai. Ca fait plusieurs jours que je bute sur ce problème.

L'idée étant que le fichier crée doit s'afficher en fin d'exécution et on doit pouvoir l'imprimer directement.

Merci et bonne journée

Sardaukar

Après moult investigations, il semble qu'il y a un bug avec les Userforms.

Dans mon cas, j'ai ajouté vbModeless dans l'appel du Userform

Private Sub Workbook_Open()
    UserForm2.Show vbModeless
End Sub 

Et jusque-là, plus de problème !

Salutations

Sardaukar

Rechercher des sujets similaires à "bug activation feuille"