apnart
XLDnaute Occasionnel
Bonjour,
J'ai fait une "application" excel, je dis "application", car j'ai tout masqué dans excel (barres outils, barre formule,...) pour n'avoir qu'une sorte de formulaire de saisie qui fait plein de trucs. J'ai fait ça à l'aide du code ci dessous qui s'éxécute à l'ouverture du fichier excel.
Tout ça fonctionne bien mais si j'ai un autre fichier excel ouvert avant, la macro s'éxécute également dessus... et ça c'est problématique pour les utilisateurs de mon "application".
Avez-vous des idées pour que cette macro de démarrage ne s'éxécute QUE sur mon application ?
Merci d'avance à vous ;-)
J'ai fait une "application" excel, je dis "application", car j'ai tout masqué dans excel (barres outils, barre formule,...) pour n'avoir qu'une sorte de formulaire de saisie qui fait plein de trucs. J'ai fait ça à l'aide du code ci dessous qui s'éxécute à l'ouverture du fichier excel.
Code:
Sub Workbook_Open() ' Macro d'ouverture excel
Application.ScreenUpdating = False ' Affichage des action de la macro OFF
Dim CmdB As CommandBar
Application.DisplayFormulaBar = False ' Masque la barre formule
For Each CmdB In Application.CommandBars ' Masque toutes les barres d'outil
CmdB.Enabled = False ' "
Next CmdB ' "
For Boucle = 1 To Sheets.Count ' Boucle pour lire tous les onglets
Sheets(Boucle).ScrollArea = TailleFenetre ' Fixe le scroll à la zone "TailleFenetre"
Sheets(Array(Boucle)).Select ' Sélectionne l'onglet en cours
With ActiveWindow ' Pour la fenêtre active =>
.DisplayHeadings = False ' SUPPRIME : Entêtes lignes / colonnes
.DisplayHorizontalScrollBar = False ' SUPPRIME : Ascenseur horizontal
.DisplayVerticalScrollBar = False ' SUPPRIME : Ascenseur vertical
.DisplayWorkbookTabs = False ' SUPPRIME : Onglets
End With
Next Boucle ' Fin boucle lecture onglets
Sheets("Aide").ScrollArea = "" ' Libère le scroll pour onglet "Aide"
Sheets("Aide").Select ' Sélectionne l'onglet "Aide"
Sheets(1).Select ' Activation de la 1ère feuille
Application.WindowState = xlNormal ' Affichage "normal" de excel
Application.Width = Range(TailleFenetre).Width ' Fixe la Largeur de la fenêtre
Application.Height = Range(TailleFenetre).Height ' Fixe la Hauteur de la fenêtre
Dim FIcone As String ' Icone dans la barre excel (en haut)
FIcone = Me.Path & "\" & FichierIco
If Dir$(FIcone) <> "" Then
hWnd = FindWindowA(vbNullString, Application.Caption)
HIcon = GetClassLongA(hWnd, -14)
SetClassLongA hWnd, -14, LoadImageA(0, FIcone, 1, 0, 0, &H10)
End If
End Sub
Tout ça fonctionne bien mais si j'ai un autre fichier excel ouvert avant, la macro s'éxécute également dessus... et ça c'est problématique pour les utilisateurs de mon "application".
Avez-vous des idées pour que cette macro de démarrage ne s'éxécute QUE sur mon application ?
Merci d'avance à vous ;-)