Bonjour à tous et à toutes !
J'ai un modèle Excel (.xlt), et je voudrais, lorsque l'on ouvre une copie
(donc par double clique), et lorsqu'on l'enregistre (donc enregistrer
sous),
deux feuilles soient supprimées ainsi que les macros (modules et codes des
feuilles). Mais cela doit se faire uniquement lorsqu'on ouvre une copie,
lorsque ouvre ce modèle par le menu contextuel, on ouvre l'original (non
une
copie), et je ne veux pas que ces manipulations soient faites.
Si vous avez une idée, merci de m'aider ...
Merci d'avance à vous tous.
Bonjour à tous et à toutes !
J'ai un modèle Excel (.xlt), et je voudrais, lorsque l'on ouvre une copie
(donc par double clique), et lorsqu'on l'enregistre (donc enregistrer
sous),
deux feuilles soient supprimées ainsi que les macros (modules et codes des
feuilles). Mais cela doit se faire uniquement lorsqu'on ouvre une copie,
lorsque ouvre ce modèle par le menu contextuel, on ouvre l'original (non
une
copie), et je ne veux pas que ces manipulations soient faites.
Si vous avez une idée, merci de m'aider ...
Merci d'avance à vous tous.
Bonjour à tous et à toutes !
J'ai un modèle Excel (.xlt), et je voudrais, lorsque l'on ouvre une copie
(donc par double clique), et lorsqu'on l'enregistre (donc enregistrer
sous),
deux feuilles soient supprimées ainsi que les macros (modules et codes des
feuilles). Mais cela doit se faire uniquement lorsqu'on ouvre une copie,
lorsque ouvre ce modèle par le menu contextuel, on ouvre l'original (non
une
copie), et je ne veux pas que ces manipulations soient faites.
Si vous avez une idée, merci de m'aider ...
Merci d'avance à vous tous.
Bonjour Aife1,
Voici une procédure à insérer dans le ThisWorkbook de ton classeur.
Lorsque l'usager voudra enregistrer pour la première fois la copie du
modèle, tout le code des feuilles modules, des modules
et Formulaires du classeur sera supprimé + les 2 feuilles que tu définiras
dans la procédure. Cela comprend aussi cette
procédure.
'-------------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim VBComp As Object
Dim VBComps As Object
Dim Arr()
'Liste des noms de feuilles à supprimer
Arr = Array("Feuil2", "Feuil3")
On Error Resume Next
Application.DisplayAlerts = False
Sheets(Arr).Delete
If Err <> 0 Then Err = 0
Application.DisplayAlerts = True
If UCase(Right(ThisWorkbook.Name, 3)) <> "XLT" Then
If MsgBox("Désirez-vous enregistrer ce classeur?", vbYesNo) = vbYes
Then
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show ThisWorkbook.Name
Application.EnableEvents = True
If Me.Saved = True Then
Set VBComps = ThisWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
Me.Save
Else
Cancel = True
End If
Else
Cancel = True
End If
End If
End Sub
'-------------------------------------------------
Salutations!
"aife1" a écrit dans le message de
news:%
Bonjour à tous et à toutes !
J'ai un modèle Excel (.xlt), et je voudrais, lorsque l'on ouvre une copie
(donc par double clique), et lorsqu'on l'enregistre (donc enregistrer
sous),
deux feuilles soient supprimées ainsi que les macros (modules et codes des
feuilles). Mais cela doit se faire uniquement lorsqu'on ouvre une copie,
lorsque ouvre ce modèle par le menu contextuel, on ouvre l'original (non
une
copie), et je ne veux pas que ces manipulations soient faites.
Si vous avez une idée, merci de m'aider ...
Merci d'avance à vous tous.
Bonjour Aife1,
Voici une procédure à insérer dans le ThisWorkbook de ton classeur.
Lorsque l'usager voudra enregistrer pour la première fois la copie du
modèle, tout le code des feuilles modules, des modules
et Formulaires du classeur sera supprimé + les 2 feuilles que tu définiras
dans la procédure. Cela comprend aussi cette
procédure.
'-------------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim VBComp As Object
Dim VBComps As Object
Dim Arr()
'Liste des noms de feuilles à supprimer
Arr = Array("Feuil2", "Feuil3")
On Error Resume Next
Application.DisplayAlerts = False
Sheets(Arr).Delete
If Err <> 0 Then Err = 0
Application.DisplayAlerts = True
If UCase(Right(ThisWorkbook.Name, 3)) <> "XLT" Then
If MsgBox("Désirez-vous enregistrer ce classeur?", vbYesNo) = vbYes
Then
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show ThisWorkbook.Name
Application.EnableEvents = True
If Me.Saved = True Then
Set VBComps = ThisWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
Me.Save
Else
Cancel = True
End If
Else
Cancel = True
End If
End If
End Sub
'-------------------------------------------------
Salutations!
"aife1" <aife1@wanadoo.fr> a écrit dans le message de
news:%23v8EEiHpEHA.324@TK2MSFTNGP11.phx.gbl...
Bonjour à tous et à toutes !
J'ai un modèle Excel (.xlt), et je voudrais, lorsque l'on ouvre une copie
(donc par double clique), et lorsqu'on l'enregistre (donc enregistrer
sous),
deux feuilles soient supprimées ainsi que les macros (modules et codes des
feuilles). Mais cela doit se faire uniquement lorsqu'on ouvre une copie,
lorsque ouvre ce modèle par le menu contextuel, on ouvre l'original (non
une
copie), et je ne veux pas que ces manipulations soient faites.
Si vous avez une idée, merci de m'aider ...
Merci d'avance à vous tous.
Bonjour Aife1,
Voici une procédure à insérer dans le ThisWorkbook de ton classeur.
Lorsque l'usager voudra enregistrer pour la première fois la copie du
modèle, tout le code des feuilles modules, des modules
et Formulaires du classeur sera supprimé + les 2 feuilles que tu définiras
dans la procédure. Cela comprend aussi cette
procédure.
'-------------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim VBComp As Object
Dim VBComps As Object
Dim Arr()
'Liste des noms de feuilles à supprimer
Arr = Array("Feuil2", "Feuil3")
On Error Resume Next
Application.DisplayAlerts = False
Sheets(Arr).Delete
If Err <> 0 Then Err = 0
Application.DisplayAlerts = True
If UCase(Right(ThisWorkbook.Name, 3)) <> "XLT" Then
If MsgBox("Désirez-vous enregistrer ce classeur?", vbYesNo) = vbYes
Then
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show ThisWorkbook.Name
Application.EnableEvents = True
If Me.Saved = True Then
Set VBComps = ThisWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
Me.Save
Else
Cancel = True
End If
Else
Cancel = True
End If
End If
End Sub
'-------------------------------------------------
Salutations!
"aife1" a écrit dans le message de
news:%
Bonjour à tous et à toutes !
J'ai un modèle Excel (.xlt), et je voudrais, lorsque l'on ouvre une copie
(donc par double clique), et lorsqu'on l'enregistre (donc enregistrer
sous),
deux feuilles soient supprimées ainsi que les macros (modules et codes des
feuilles). Mais cela doit se faire uniquement lorsqu'on ouvre une copie,
lorsque ouvre ce modèle par le menu contextuel, on ouvre l'original (non
une
copie), et je ne veux pas que ces manipulations soient faites.
Si vous avez une idée, merci de m'aider ...
Merci d'avance à vous tous.
Bonjour Aife1,
Voici une procédure à insérer dans le ThisWorkbook de ton classeur.
Lorsque l'usager voudra enregistrer pour la première fois la copie du
modèle, tout le code des feuilles modules, des modules
et Formulaires du classeur sera supprimé + les 2 feuilles que tu définiras
dans la procédure. Cela comprend aussi cette
procédure.
'-------------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim VBComp As Object
Dim VBComps As Object
Dim Arr()
'Liste des noms de feuilles à supprimer
Arr = Array("Feuil2", "Feuil3")
On Error Resume Next
Application.DisplayAlerts = False
Sheets(Arr).Delete
If Err <> 0 Then Err = 0
Application.DisplayAlerts = True
If UCase(Right(ThisWorkbook.Name, 3)) <> "XLT" Then
If MsgBox("Désirez-vous enregistrer ce classeur?", vbYesNo) = vbYes
Then
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show ThisWorkbook.Name
Application.EnableEvents = True
If Me.Saved = True Then
Set VBComps = ThisWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
Me.Save
Else
Cancel = True
End If
Else
Cancel = True
End If
End If
End Sub
'-------------------------------------------------
Salutations!
"aife1" a écrit dans le message de
news:%
Bonjour à tous et à toutes !
J'ai un modèle Excel (.xlt), et je voudrais, lorsque l'on ouvre une copie
(donc par double clique), et lorsqu'on l'enregistre (donc enregistrer
sous),
deux feuilles soient supprimées ainsi que les macros (modules et codes des
feuilles). Mais cela doit se faire uniquement lorsqu'on ouvre une copie,
lorsque ouvre ce modèle par le menu contextuel, on ouvre l'original (non
une
copie), et je ne veux pas que ces manipulations soient faites.
Si vous avez une idée, merci de m'aider ...
Merci d'avance à vous tous.
Bonjour Aife1,
Voici une procédure à insérer dans le ThisWorkbook de ton classeur.
Lorsque l'usager voudra enregistrer pour la première fois la copie du
modèle, tout le code des feuilles modules, des modules
et Formulaires du classeur sera supprimé + les 2 feuilles que tu définiras
dans la procédure. Cela comprend aussi cette
procédure.
'-------------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim VBComp As Object
Dim VBComps As Object
Dim Arr()
'Liste des noms de feuilles à supprimer
Arr = Array("Feuil2", "Feuil3")
On Error Resume Next
Application.DisplayAlerts = False
Sheets(Arr).Delete
If Err <> 0 Then Err = 0
Application.DisplayAlerts = True
If UCase(Right(ThisWorkbook.Name, 3)) <> "XLT" Then
If MsgBox("Désirez-vous enregistrer ce classeur?", vbYesNo) = vbYes
Then
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show ThisWorkbook.Name
Application.EnableEvents = True
If Me.Saved = True Then
Set VBComps = ThisWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
Me.Save
Else
Cancel = True
End If
Else
Cancel = True
End If
End If
End Sub
'-------------------------------------------------
Salutations!
"aife1" <aife1@wanadoo.fr> a écrit dans le message de
news:%23v8EEiHpEHA.324@TK2MSFTNGP11.phx.gbl...
Bonjour à tous et à toutes !
J'ai un modèle Excel (.xlt), et je voudrais, lorsque l'on ouvre une copie
(donc par double clique), et lorsqu'on l'enregistre (donc enregistrer
sous),
deux feuilles soient supprimées ainsi que les macros (modules et codes des
feuilles). Mais cela doit se faire uniquement lorsqu'on ouvre une copie,
lorsque ouvre ce modèle par le menu contextuel, on ouvre l'original (non
une
copie), et je ne veux pas que ces manipulations soient faites.
Si vous avez une idée, merci de m'aider ...
Merci d'avance à vous tous.
Bonjour Aife1,
Voici une procédure à insérer dans le ThisWorkbook de ton classeur.
Lorsque l'usager voudra enregistrer pour la première fois la copie du
modèle, tout le code des feuilles modules, des modules
et Formulaires du classeur sera supprimé + les 2 feuilles que tu définiras
dans la procédure. Cela comprend aussi cette
procédure.
'-------------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim VBComp As Object
Dim VBComps As Object
Dim Arr()
'Liste des noms de feuilles à supprimer
Arr = Array("Feuil2", "Feuil3")
On Error Resume Next
Application.DisplayAlerts = False
Sheets(Arr).Delete
If Err <> 0 Then Err = 0
Application.DisplayAlerts = True
If UCase(Right(ThisWorkbook.Name, 3)) <> "XLT" Then
If MsgBox("Désirez-vous enregistrer ce classeur?", vbYesNo) = vbYes
Then
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show ThisWorkbook.Name
Application.EnableEvents = True
If Me.Saved = True Then
Set VBComps = ThisWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
Me.Save
Else
Cancel = True
End If
Else
Cancel = True
End If
End If
End Sub
'-------------------------------------------------
Salutations!
"aife1" a écrit dans le message de
news:%
Bonjour à tous et à toutes !
J'ai un modèle Excel (.xlt), et je voudrais, lorsque l'on ouvre une copie
(donc par double clique), et lorsqu'on l'enregistre (donc enregistrer
sous),
deux feuilles soient supprimées ainsi que les macros (modules et codes des
feuilles). Mais cela doit se faire uniquement lorsqu'on ouvre une copie,
lorsque ouvre ce modèle par le menu contextuel, on ouvre l'original (non
une
copie), et je ne veux pas que ces manipulations soient faites.
Si vous avez une idée, merci de m'aider ...
Merci d'avance à vous tous.