Je vous envoi ce message pour avoir une piste d amelioration sur une procedure evenementielle. En effet a l ouverture de mon fichier, enormement de chose se desactive automatiquemnt :
Code:
Private Sub Workbook_Open()
Feuil1.ScrollArea = "A1:P41"
Application.DisplayFullScreen = True
With ActiveWindow
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.DisplayHeadings = False
End With
Sheets(2).Select
UserForm1.Show
End Sub
Mon souci est que sur l office 2003, il reste la barre des menus et j ai la possibilité d aller dans option et afficher l entete de lignes et colonnes ainsi que les onglets de classeur etc...Je veux pas avoir cette possibilité, comment faire svp?
Bon effectivement la démarche n'est pas logique mais il est vrai que plusieurs choses se rejoingnent, d'où, et je reconnais, une demande qui peut "faire peur".
Je vais etre simple et dire ce que je veux en une phrase :
Je souhaite cacher les onglets à l'ouverture de mon fichier.
Cela sous entend que la possibilité de les afficher soit nulle car je pouvais les afficher comme grace a "outils - options - afficher les onglets".
J espere que j'ai été clair, peut etre faudrait il créer un autre post pour faciliter la compréhension et la cohérence.
Voilà mj13, sinon j espere quelqu un pourra m aider
Julien: Sinon si tu veux masquer toutes les feuilles sauf celle sélectionnée, voici une macro:
Code:
Sub Masque_Toutes_Feuilles_SAuf_Sel()
'Stop
'Minick
Dim Sht As Worksheet
Dim nom(1000)
For Each Sht In ActiveWindow.SelectedSheets
iFsel = iFsel + 1
nom(iFsel) = Sht.Name
Next Sht
nc = ActiveWorkbook.Sheets.Count
'For O = 1 To iFsel
For N = 1 To nc
If Sheets(N).Visible = True Then Sheets(N).Select
If ActiveSheet.Name = nom(iFsel) Then GoTo suite Else Sheets(N).Visible = False
suite:
Next
'Stop
For O = 1 To iFsel
Sheets(nom(O)).Visible = True
Next
'Next
End Sub
J'ai placé tel quel ta formule mj 13 sans pour avoir compris plusieurs éléments, malgré tout il y a deboggage et en cliquant sur ce bouton cette partie est surlignée
Code:
sheets2.select
. Il me semble que je t'avais un fichier test. Tu t'es basé par rapport a ce fichier ? Car ca ne marche pas chez moi/
Quant à toi titoo, j avais déjà éssayé, et ca marchait pas mais là bizarrement ca fonctionne. Je travail avec la feuille 1 (ou se situe mes listes deroulantes) et en feuille2 (ou se situe le formulaire), les autres feuilles sont mes sources d'info qui alimentent les listes déroulantes.
Julien, si tu veux masquer des feuilles de ton classeur pour empêcher l'utilisateur de corrompre tes calculs intermédiaires, la solution t'a été donnée par tototiti, utilise la propriété :
Worksheet.visible = xlSheetVeryHidden
Cette méthode a ses limites :
elle ne marche pas pour la dernière feuille (un classeur doit toujours avoir 1 feuille visible)
Si ton code cherche à accéder à une feuille ainsi cachée => plantage. Ton code doit débloquer la feuille avant d'y accéder et la re-bloquer après.
Je te propose une autre solution (elle aussi valable tant que l'utilisateur n'a pas accès à ton code) :
Crée un userform de grande dimension (plus grand que ton écran)
Propriété Height = 1500
Propriété Width = 2000
Place son origine en haut et à gauche du coin supérieur gauche de ton écran
Propriété Top = -30
Propriété Left = -30
Définit son affichage prioritaire
Propriété ShowModal = True
Affiche cet UserForm à l'ouverture du fichier
en plaçant cette procédure évènementielle dans le Classeur :
Code:
Private Sub Workbook_Open()
UserForm1.Show
'
'
'[COLOR="Red"]ENTRE LES DEUX TON CODE EST PROTEGE[/COLOR]
'
'
UserForm1.Hide
End Sub
Si, en cours de test, tu fais une fausse manœuvre, pas nécessaire d'enlever la prise !
Ctrl + Alt + Del pour le gestionnaire de tâche,
sélectionne Excel dans l'onglet Applications
Fin de Tâche.
Pour tuer l'application Excel en cours(et tous les classeurs non sauvegardés)
Ne commencez pas les tests avant que je me sois mis à l'abri !