Probleme avec la Procedure Evenementielle

Julien77

XLDnaute Junior
Bonjour A Toutes et a Tous,

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?
 

Julien77

XLDnaute Junior
Re : Probleme avec la Procedure Evenementielle

Bonjour a tous,

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

Merci d avance
 

MJ13

XLDnaute Barbatruc
Re : Probleme avec la Procedure Evenementielle

Re à tous, Bonjour Tototiti.

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
 

Julien77

XLDnaute Junior
Re : Probleme avec la Procedure Evenementielle

Bonjour a vous;

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.
 

sigismond

XLDnaute Occasionnel
Re : Probleme avec la Procedure Evenementielle

Bonjour à tous

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 :
  1. elle ne marche pas pour la dernière feuille (un classeur doit toujours avoir 1 feuille visible)
  2. 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 ! :eek:

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 ! :D :D

Bonne chance.

Sigismond
 
Dernière édition:

Statistiques des forums

Discussions
312 839
Messages
2 092 678
Membres
105 508
dernier inscrit
Albator