Bonjour,
J'ai pris en considération toutes vos remarque et il est vrais qu'il existe des risques à masquer une application surtout si il subviens des problèmes de plantage de l'application.
Je me base sur l'idées de plusieurs personne et essaye de prendre le meilleur des idées.
Que penser vous de la démarche suivante :
Je lance mon exécuteur qui contient dans workbook_Open :
1 2 3 4
| Private Sub workbook_open()
Shell ("excel C:\Users\X2018958\Desktop\Test_executeur\Fichier.xlsm /x")
Thisworkbook.close
End Sub |
Mon but ici est qu'il soit invisible pour l'utilisateur, Il se lance, lance le fichier principale et ce ferme. Cependant la fermeture ne s'effectue plus une fois l'autre fichier lancer, je mettrait donc dans l'autre fichier une ligne du genre :
Workbooks("executeur.xlsm").Activate
Si vous avez d'autre solution pour que le fichier se ferme correctement de lui même je suis tout ouïl.
Dans le second fichier je ne souhaite plus donc le rendre invisible afin d'évité les problème cependant j'aimerais le forcer a se minimized.
avec la ligne :
Application.WindowState = xlMinimized
Cependant quand je fais cela le formulaire ne se lance pas correctement, il se lance mais en tout petit (à cause du minimized je pense) ... Sachant que je l'affiche sur tout l'écrans avec le code :
1 2 3 4 5 6 7
| With Me 'Met le formulaire en pleine écran
.StartUpPosition = 3 'le formulaire s'ouvre en plein écrans
.Width = Application.Width
.Height = Application.Height
.Left = 0 'a gauche
.Top = 0
End With 'en haut |
une fois que j'aurais la solution pour ses deux petit problème :
- fermer l'exécuteur proprement même au lancement d'un autre fichier.
- Lancer l'userform proprement même au minimized de l'application.
Je souhaiterais forcé le minimized de l'application (ici dans une instance séparé et qui n'affectera pas l'utilisateur).
Par exemple :
1 2 3
| If userformactif <>Admin then
If Application.WindowState <> minimized Then Application.WindowState = minimized
end if |
Dans le formulaire il sera toujours possible d'excéder au ficher.
J'ai donc un début de solution mais je ne sais pas si il est possible d'avoir l'evenement windowState_Change dans un userform. et je préfère vous demander conseil avant de faire n'importe quoi.
Cette solution permettrait :
- D'évité de masqué l'application Excel et donc de créer des moment gênant.
- De ne pas contraindre l'utilisateur à aller cherche le formulaire derrière les pages il aura juste a cliqué sur Excel.
- De laisser visible le fichier Excel
- D'avoir l'ouverture qui n'influence pas les autre application présente.
Que pensez-vous de cela, cela est-il possible ? Si cela n'est pas possible il y a t'il d'autre idées qui vous passe par la tête.
Sachant que mon besoin je le rappel :
- Avoir l'affichage d'un formulaire Excel qui n'influence pas les Excel déjà présent,
- Que l'utilisateur ne soit pas contraint dans le placement de ses fenêtres,
- Que l'accès au fichier Excel ne soit pas possible, et que ses informations ne soit pas disponible.(d'où l'accès administrateur)
Je tiens à vous remercier tous autant que vous êtes pour vos remarques vos conseils et vos solutions. Je suis encore en apprentissage de codage et reste à l'écoute de vos conseils.
Cordialement,
Passepartout007
Partager