Bonjour,
Travaillant avc excel 200, j'ai cree ds VBA (this workbook) les instructions suivantes:
' ici je cherche a gere la fonction sauvegarder sous ( pr obliger les user a renommer le fichier)
Private Const dsWarningSheet As String = "sheet2" 'Enter name of the Entry/Warning Page
Private Sub Workbook_Beforesave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = False Then
Cancel = True
MsgBox "The 'Save' function for this workbook has been disabled. " & Chr(10) & " You will only save this document if you rename the workbook" & Chr(10) & "" & Chr(10) & " Click Ok, If you want to rename this forder", vbOKOnly + vbInformation, "Save Disabled"
Application.Dialogs(xlDialogSaveAs).Show CStr(ThisWorkbook.ActiveSheet.Range("A1").Value)
End If
End Sub
Ensuite, je cherche a cacher ma feuille de donnees sources, quand l'utilisateur a travailler avec mon fichier.
Dans thisworkbook ( VBA), j'ai donne l'instruction ( copier, collee en dessous) qui me permet:
- d'aficher mon classeur entier ( a part, la page ou j'ai mes donnees sources) et de cache ma page warning Si l'utilisateur n'accepte pas les macros, un msg d'erreur (contenu ds une autre feuille apparait)
- de masquer les feuilles de mon classeur, sauf la page warning dans le cas ou l'utilisateur ouvre le classeur sans accepter les macros.
Mon soucis est que la tt ce systeme marche une fois sur deux!!!
Quand j'ouvre mon classeur et approuve les macros pr la 1ere fois, pas de soucis tt est bon.
Des lors que je sauvegarde mon travail, le ferme et le re-ouvre ( tjrs en acceptant les macros), la macro plante.
dans la cas ou je n'accepte pas les macros, ma page warning ne s'affiche plus.
Es ce un pb de ma fonction sauvegarder?
Ou autre???
Je vous ai colle mes instructions apres.... Je sais que j'y suis presque...Si qqn pouvais m'aider, ca serait fantastiq!!
Merci d'avance....
VN.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each ds In ActiveWorkbook.Sheets
If LCase(dsWarningSheet) = LCase(ds.Name) Then
ds.Visible = True
Else
ds.Visible = xlVeryHidden
End If
Next
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal ds As Object, ByVal Target As Excel.Range)
If LCase(ds.Name) = LCase(dsWarningSheet) Then
For Each ds In ActiveWorkbook.Sheets
ds.Visible = True
Next
ActiveSheet.Visible = xlVeryHidden
Sheets("Sheet1").Visible = False
End If
End Sub
Private Sub workbook_open()
Sheets(dsWarningSheet).Select
For Each ds In ActiveWorkbook.Sheets
ds.Visible = True
Next
ActiveSheet.Visible = xlVeryHidden
End Sub
Travaillant avc excel 200, j'ai cree ds VBA (this workbook) les instructions suivantes:
' ici je cherche a gere la fonction sauvegarder sous ( pr obliger les user a renommer le fichier)
Private Const dsWarningSheet As String = "sheet2" 'Enter name of the Entry/Warning Page
Private Sub Workbook_Beforesave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = False Then
Cancel = True
MsgBox "The 'Save' function for this workbook has been disabled. " & Chr(10) & " You will only save this document if you rename the workbook" & Chr(10) & "" & Chr(10) & " Click Ok, If you want to rename this forder", vbOKOnly + vbInformation, "Save Disabled"
Application.Dialogs(xlDialogSaveAs).Show CStr(ThisWorkbook.ActiveSheet.Range("A1").Value)
End If
End Sub
Ensuite, je cherche a cacher ma feuille de donnees sources, quand l'utilisateur a travailler avec mon fichier.
Dans thisworkbook ( VBA), j'ai donne l'instruction ( copier, collee en dessous) qui me permet:
- d'aficher mon classeur entier ( a part, la page ou j'ai mes donnees sources) et de cache ma page warning Si l'utilisateur n'accepte pas les macros, un msg d'erreur (contenu ds une autre feuille apparait)
- de masquer les feuilles de mon classeur, sauf la page warning dans le cas ou l'utilisateur ouvre le classeur sans accepter les macros.
Mon soucis est que la tt ce systeme marche une fois sur deux!!!
Quand j'ouvre mon classeur et approuve les macros pr la 1ere fois, pas de soucis tt est bon.
Des lors que je sauvegarde mon travail, le ferme et le re-ouvre ( tjrs en acceptant les macros), la macro plante.
dans la cas ou je n'accepte pas les macros, ma page warning ne s'affiche plus.
Es ce un pb de ma fonction sauvegarder?
Ou autre???
Je vous ai colle mes instructions apres.... Je sais que j'y suis presque...Si qqn pouvais m'aider, ca serait fantastiq!!
Merci d'avance....
VN.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each ds In ActiveWorkbook.Sheets
If LCase(dsWarningSheet) = LCase(ds.Name) Then
ds.Visible = True
Else
ds.Visible = xlVeryHidden
End If
Next
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal ds As Object, ByVal Target As Excel.Range)
If LCase(ds.Name) = LCase(dsWarningSheet) Then
For Each ds In ActiveWorkbook.Sheets
ds.Visible = True
Next
ActiveSheet.Visible = xlVeryHidden
Sheets("Sheet1").Visible = False
End If
End Sub
Private Sub workbook_open()
Sheets(dsWarningSheet).Select
For Each ds In ActiveWorkbook.Sheets
ds.Visible = True
Next
ActiveSheet.Visible = xlVeryHidden
End Sub