Pour les purs et durs excel

AKSooL

XLDnaute Occasionnel
Bonjour mes futurs sauveurs

j ai un fichier excel ( 4 onglets ) en partagé . et depuis hier mon code se trouvant dans thisworkbook ne marche plus du tout , soit il n active plus par defaut l ouverture d un onglet et le Imputbox ne s affiche plus . il garde toujours la derniere config sauvegarder ( niveau affichage onglet )
voici le code tout simple

Private Sub Workbook_Open()
Sheets("Demande").Activate

'Masque directement la feuille si cette derniere est visible
If Sheets("Résultats").Visible = True Then Sheets("Résultats").Visible = xlVeryHidden


'Rend la feuille visible si mot de passe OK
If InputBox("Veuillez saisir un Mot de passe", "Données Résultats") = "di-ipau" Then
Sheets("Résultats").Visible = True
End If

End Sub

le plus marrant j ai 2 versions de ce fichier, un pour les données 2008- et pour 2009. 2008 marche plus , mais le 2009 oui , memes codes vba pourtant , meme classeur partagé , juste les données qui changent...

donc est ce une corruption de fichier (lors d une sauvegarde), ou un bug excel , ou une option decoché par qqun ( alors que le fichier est protégé) , pkoi mon code du workbook open ne marche plus ( uniquement si je rentre en VBA , alt +F11et que je fais F8 , il va marcher , lol ) , active x, un dll, bref je suis perdu

je suis en version 2003


Merci de m aider
 

Staple1600

XLDnaute Barbatruc
Re : Pour les purs et durs excel

Bonsoir


Essaie dans un premier temps cette macro

(en adaptant le nom des feuilles : tu remplaces 1 par "Résultats"

Code:
Sub test()
Sheets([COLOR=Blue][B]1[/B][/COLOR]).Visible = Not Sheets([COLOR=Blue][B]1[/B][/COLOR]).Visible
x = InputBox("Veuillez saisir un Mot de passe", "Données Résultats")
Sheets([COLOR=Blue][B]1[/B][/COLOR]).Visible = (InStr(x, "di-ipau") + (IsNull(x) * 1))
End Sub
Ensuite si cela te conveint

Utilises ce code dans WorkBook_Open
 
Dernière édition:

AKSooL

XLDnaute Occasionnel
Re : Pour les purs et durs excel

merci mais meme bug
il garde en memoire le dernier onglet ou j etais
resultats etait deja visible

j ai l impression que le workbook open est buggé

mot de passe partage classeur ipau
mot de passe feuille ipau

dit moi ce que cela te fait ,

au depart seul demande doit etre activé, et pas l onglet resultat
 

Pièces jointes

  • 563CD000.zip
    38.2 KB · Affichages: 42
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Pour les purs et durs excel

Bonjour Aksool, Stapple :),
J'utilise moi aussi un fichier que j'ai essayé de protéger au mieux (pour les nons initiés on va dire). Pour éviter les problèmes de ce genre, je rends toutes les feuilles visibles à l'ouverture avant de les cacher.
A l'ouverture, j'ai juste une feuille Warning marquée "macros obligatoires", puis j'affiche uniquement en fonction du MdP rentré. Et en Workbook_close, je cache toutes les feuilles sauf Warning.
Voici les codes si ça peut t'aider :
Code:
Private Sub Workbook_Open()
' Envoi vers la macro d'ouverture pour n'afficher que la feuille Warning protégée
' dans le cas où l'utilisateur n'activerait pas les macros
' pour contourner les logins et mots de passe
Opening
' Affiche les 2 feuilles necessaires à la vérification
Commerciaux.Visible = xlSheetVisible
Base.Visible = xlSheetVisible
' Vérifie la présence de la feuille du jour
Dim DateDuJour As String
DateDuJour = Year(Now) & "_" & Month(Now) & "_" & Day(Now)
Dim Existe As Boolean
Existe = False
Dim Feuille As Worksheet, NouvelleFeuille As Worksheet
For Each Feuille In ActiveWorkbook.Worksheets
    If Feuille.Name = DateDuJour Then
        Existe = True
        Exit For
    End If
Next Feuille
If Existe = False Then
    ' Création de la feuille du jour
    Sheets("Base").Copy before:=Sheets("Commerciaux")
    ActiveSheet.Name = DateDuJour
End If
' Cache les feuilles Commerciaux et Base
Base.Visible = xlSheetVeryHidden
Commerciaux.Visible = xlSheetVeryHidden
' Active et protège la feuille du jour
Sheets(DateDuJour).Activate
Sheets(DateDuJour).Protect (Cadenas)
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Envoi vers la macro de fermeture
Closing
End Sub
Code:
Sub Closing()
' Macro de protection masquant toutes les pages sauf Warning à la fermeture
Dim WS As Worksheet
Warning.Visible = xlSheetVisible
Application.ScreenUpdating = False
    For Each WS In ThisWorkbook.Worksheets
        If WS.CodeName = "Warning" Then
            WS.Visible = xlSheetVisible
        Else
            WS.Visible = xlSheetVeryHidden
        End If
    Next
ThisWorkbook.Close True
End Sub
Sub Opening()
' Macro de protection qui ne s'ouvre que si l'utilisateur a activé les macros
Dim WS As Worksheet
Interface.Visible = xlSheetVisible
Warning.Visible = xlSheetVeryHidden
Application.ScreenUpdating = False
    For Each WS In ThisWorkbook.Worksheets
        WS.Protect (Cadenas)
        If WS.CodeName = "Interface" Then
            WS.Visible = xlSheetVisible
        Else
            WS.Visible = xlSheetVeryHidden
        End If
    Next
Application.ScreenUpdating = True
' Chargement de l'UserForm pour se loguer
LoginBàT.Show
End Sub
Bonne journée :cool:
 

AKSooL

XLDnaute Occasionnel
Re : Pour les purs et durs excel

ok je vais essayer ca ce soir et te dit si ca marche
mais ce que j ai peur c est que le code dans le workbook open marche pas

car mon fichier version 2009 , lui marche tres bien , meme code, juste les donnes qui changent , le 2008 a eu un bug en sauvegardant et depuis le workbook open ne marche plus
Bug excel ??
 

Discussions similaires

Statistiques des forums

Discussions
312 221
Messages
2 086 382
Membres
103 199
dernier inscrit
ATS1