| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il me
pose tjrs la question, avez vous une idée ?
Merci
Manu
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
uc0f74LOHHA.992@TK2MSFTNGP06.phx.gbl...
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il me
pose tjrs la question, avez vous une idée ?
Merci
Manu
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il me
pose tjrs la question, avez vous une idée ?
Merci
Manu
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il me
pose tjrs la question, avez vous une idée ?
Merci
Manu
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
uc0f74LOHHA.992@TK2MSFTNGP06.phx.gbl...
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il me
pose tjrs la question, avez vous une idée ?
Merci
Manu
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable (il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
OwRx$LMOHHA.4172@TK2MSFTNGP04.phx.gbl...
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable (il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les macros
des modules)
Je ne comprend rien.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23LWsxCMOHHA.1252@TK2MSFTNGP02.phx.gbl...
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
uc0f74LOHHA.992@TK2MSFTNGP06.phx.gbl...
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable (il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable (il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
OwRx$LMOHHA.4172@TK2MSFTNGP04.phx.gbl...
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable (il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les macros
des modules)
Je ne comprend rien.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23LWsxCMOHHA.1252@TK2MSFTNGP02.phx.gbl...
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
uc0f74LOHHA.992@TK2MSFTNGP06.phx.gbl...
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable (il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"BureauHistorique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" a écrit dans le message de news:
Owr$
j'ouvre un fichier xls en lecture seul , puis je lui demande de se mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. + jour
+
mois + année
Repertoire = "C:Documents and SettingsAdministrateurBureauHistorique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" a écrit dans le message de news:Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"Bureau\Historique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
Owr$jZMOHHA.4720@TK2MSFTNGP03.phx.gbl...
j'ouvre un fichier xls en lecture seul , puis je lui demande de se mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. + jour
+
mois + année
Repertoire = "C:Documents and SettingsAdministrateurBureau\Historique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
u0phLRMOHHA.5104@TK2MSFTNGP06.phx.gbl...
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
OwRx$LMOHHA.4172@TK2MSFTNGP04.phx.gbl...
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les macros
des modules)
Je ne comprend rien.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23LWsxCMOHHA.1252@TK2MSFTNGP02.phx.gbl...
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
uc0f74LOHHA.992@TK2MSFTNGP06.phx.gbl...
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"BureauHistorique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" a écrit dans le message de news:
Owr$
j'ouvre un fichier xls en lecture seul , puis je lui demande de se mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. + jour
+
mois + année
Repertoire = "C:Documents and SettingsAdministrateurBureauHistorique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" a écrit dans le message de news:Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Merci, je suis en déplacement pendant 2 jours, je travaille dessus et te
tiens au courant jeudi.
Merci encore !
Manu
"MichDenis" a écrit dans le message de news:Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"BureauHistorique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" a écrit dans le message de news:
Owr$
j'ouvre un fichier xls en lecture seul , puis je lui demande de se mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La
macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. +
jour +
mois + année
Repertoire = "C:Documents and SettingsAdministrateurBureauHistorique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" a écrit dans le message de news:Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les
macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux
pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Merci, je suis en déplacement pendant 2 jours, je travaille dessus et te
tiens au courant jeudi.
Merci encore !
Manu
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
u4WTcQNOHHA.4376@TK2MSFTNGP03.phx.gbl...
Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"Bureau\Historique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
Owr$jZMOHHA.4720@TK2MSFTNGP03.phx.gbl...
j'ouvre un fichier xls en lecture seul , puis je lui demande de se mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La
macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. +
jour +
mois + année
Repertoire = "C:Documents and SettingsAdministrateurBureau\Historique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
u0phLRMOHHA.5104@TK2MSFTNGP06.phx.gbl...
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
OwRx$LMOHHA.4172@TK2MSFTNGP04.phx.gbl...
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les
macros
des modules)
Je ne comprend rien.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23LWsxCMOHHA.1252@TK2MSFTNGP02.phx.gbl...
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
uc0f74LOHHA.992@TK2MSFTNGP06.phx.gbl...
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux
pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Merci, je suis en déplacement pendant 2 jours, je travaille dessus et te
tiens au courant jeudi.
Merci encore !
Manu
"MichDenis" a écrit dans le message de news:Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"BureauHistorique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" a écrit dans le message de news:
Owr$
j'ouvre un fichier xls en lecture seul , puis je lui demande de se mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La
macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. +
jour +
mois + année
Repertoire = "C:Documents and SettingsAdministrateurBureauHistorique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" a écrit dans le message de news:Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les
macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux
pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Merci, je suis en déplacement pendant 2 jours, je travaille dessus et te
tiens au courant jeudi.
Merci encore !
Manu
"MichDenis" a écrit dans le message de news:Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"BureauHistorique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" a écrit dans le message de news:
Owr$
j'ouvre un fichier xls en lecture seul , puis je lui demande de se mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La
macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. +
jour +
mois + année
Repertoire = "C:Documents and SettingsAdministrateurBureauHistorique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" a écrit dans le message de news:Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les
macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux
pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Merci, je suis en déplacement pendant 2 jours, je travaille dessus et te
tiens au courant jeudi.
Merci encore !
Manu
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
u4WTcQNOHHA.4376@TK2MSFTNGP03.phx.gbl...
Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"Bureau\Historique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
Owr$jZMOHHA.4720@TK2MSFTNGP03.phx.gbl...
j'ouvre un fichier xls en lecture seul , puis je lui demande de se mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La
macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. +
jour +
mois + année
Repertoire = "C:Documents and SettingsAdministrateurBureau\Historique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
u0phLRMOHHA.5104@TK2MSFTNGP06.phx.gbl...
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
OwRx$LMOHHA.4172@TK2MSFTNGP04.phx.gbl...
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les
macros
des modules)
Je ne comprend rien.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23LWsxCMOHHA.1252@TK2MSFTNGP02.phx.gbl...
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
uc0f74LOHHA.992@TK2MSFTNGP06.phx.gbl...
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux
pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
Merci, je suis en déplacement pendant 2 jours, je travaille dessus et te
tiens au courant jeudi.
Merci encore !
Manu
"MichDenis" a écrit dans le message de news:Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"BureauHistorique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" a écrit dans le message de news:
Owr$
j'ouvre un fichier xls en lecture seul , puis je lui demande de se mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La
macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. +
jour +
mois + année
Repertoire = "C:Documents and SettingsAdministrateurBureauHistorique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" a écrit dans le message de news:Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne à
moitié (il ne supprime que les macros dans thisworkbook et non les
macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux
pas
qu'il me pose cette question je veux qu'il enregistre sans rien me dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire, il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
| fichier final il n'y a plus de macros nul part, j'ai vérifier et pourtant
à l'ouverture il me
demande si
| je veux activer les macros .... Bizarre non ?
le classeur ne doit pas contenir des modules "standard",
de "classe" ou "Formulaire" mais ci ces derniers objets ne
contiennent pas de code.
"Manu" a écrit dans le message de news:
Bonsoir,
J'ai trouvé une solution de rechange, Mich ton code faisait tout pareil
que
le précédent, il me demandait tjrs d'enregistrer à la fin, du coup j'ai
juste déplacer ma macro "mis-a-jour" qui etait dans un module et je l'ais
mis dans thisworkbook, et ca fonctionne, apparement ca ne lui plaisait pas
de supprimer le module. Il enregistrait (sans le demander) un coup la
suppression des macros de thisworkbook et pour confirmer la suppression du
module il me demandait à nouveau l'enregistrement si je disait oui c'etait
bon sinon il me gardait tjrs la macro du module.
Ceci dis il reste un elements etrange, dans le fichier final il n'y a plus
de macros nul part, j'ai vérifier et pourtant à l'ouverture il me demande
si
je veux activer les macros .... Bizarre non ? comment que ca se fait ?
Merci encore
Manu
"Manu" a écrit dans le message de news:Merci, je suis en déplacement pendant 2 jours, je travaille dessus et te
tiens au courant jeudi.
Merci encore !
Manu
"MichDenis" a écrit dans le message de news:Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"BureauHistorique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" a écrit dans le message de news:
Owr$
j'ouvre un fichier xls en lecture seul , puis je lui demande de se
mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La
macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des
modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. +
jour +
mois + année
Repertoire = "C:Documents and
SettingsAdministrateurBureauHistorique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & "
"
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" a écrit dans le message de news:Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne
à
moitié (il ne supprime que les macros dans thisworkbook et non les
macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux
pas
qu'il me pose cette question je veux qu'il enregistre sans rien me
dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire,
il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
| fichier final il n'y a plus de macros nul part, j'ai vérifier et pourtant
à l'ouverture il me
demande si
| je veux activer les macros .... Bizarre non ?
le classeur ne doit pas contenir des modules "standard",
de "classe" ou "Formulaire" mais ci ces derniers objets ne
contiennent pas de code.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
uN79r9ZOHHA.2312@TK2MSFTNGP04.phx.gbl...
Bonsoir,
J'ai trouvé une solution de rechange, Mich ton code faisait tout pareil
que
le précédent, il me demandait tjrs d'enregistrer à la fin, du coup j'ai
juste déplacer ma macro "mis-a-jour" qui etait dans un module et je l'ais
mis dans thisworkbook, et ca fonctionne, apparement ca ne lui plaisait pas
de supprimer le module. Il enregistrait (sans le demander) un coup la
suppression des macros de thisworkbook et pour confirmer la suppression du
module il me demandait à nouveau l'enregistrement si je disait oui c'etait
bon sinon il me gardait tjrs la macro du module.
Ceci dis il reste un elements etrange, dans le fichier final il n'y a plus
de macros nul part, j'ai vérifier et pourtant à l'ouverture il me demande
si
je veux activer les macros .... Bizarre non ? comment que ca se fait ?
Merci encore
Manu
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
OWeZLrNOHHA.780@TK2MSFTNGP03.phx.gbl...
Merci, je suis en déplacement pendant 2 jours, je travaille dessus et te
tiens au courant jeudi.
Merci encore !
Manu
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
u4WTcQNOHHA.4376@TK2MSFTNGP03.phx.gbl...
Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"Bureau\Historique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
Owr$jZMOHHA.4720@TK2MSFTNGP03.phx.gbl...
j'ouvre un fichier xls en lecture seul , puis je lui demande de se
mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La
macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des
modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. +
jour +
mois + année
Repertoire = "C:Documents and
SettingsAdministrateurBureau\Historique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & "
"
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
u0phLRMOHHA.5104@TK2MSFTNGP06.phx.gbl...
Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
OwRx$LMOHHA.4172@TK2MSFTNGP04.phx.gbl...
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne
à
moitié (il ne supprime que les macros dans thisworkbook et non les
macros
des modules)
Je ne comprend rien.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23LWsxCMOHHA.1252@TK2MSFTNGP02.phx.gbl...
| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
uc0f74LOHHA.992@TK2MSFTNGP06.phx.gbl...
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux
pas
qu'il me pose cette question je veux qu'il enregistre sans rien me
dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire,
il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu
| fichier final il n'y a plus de macros nul part, j'ai vérifier et pourtant
à l'ouverture il me
demande si
| je veux activer les macros .... Bizarre non ?
le classeur ne doit pas contenir des modules "standard",
de "classe" ou "Formulaire" mais ci ces derniers objets ne
contiennent pas de code.
"Manu" a écrit dans le message de news:
Bonsoir,
J'ai trouvé une solution de rechange, Mich ton code faisait tout pareil
que
le précédent, il me demandait tjrs d'enregistrer à la fin, du coup j'ai
juste déplacer ma macro "mis-a-jour" qui etait dans un module et je l'ais
mis dans thisworkbook, et ca fonctionne, apparement ca ne lui plaisait pas
de supprimer le module. Il enregistrait (sans le demander) un coup la
suppression des macros de thisworkbook et pour confirmer la suppression du
module il me demandait à nouveau l'enregistrement si je disait oui c'etait
bon sinon il me gardait tjrs la macro du module.
Ceci dis il reste un elements etrange, dans le fichier final il n'y a plus
de macros nul part, j'ai vérifier et pourtant à l'ouverture il me demande
si
je veux activer les macros .... Bizarre non ? comment que ca se fait ?
Merci encore
Manu
"Manu" a écrit dans le message de news:Merci, je suis en déplacement pendant 2 jours, je travaille dessus et te
tiens au courant jeudi.
Merci encore !
Manu
"MichDenis" a écrit dans le message de news:Essaie ceci :
A ) Déclarations des variables se fait en début de procédure
ça rend le code plus lisible
B ) Apporter une attention à l'indentation du code facilite aussi
sa lecture et la compréhension de ce dernier.
C ) Qand tu emploie l'exprenssion "ActiveWorkbook", est-ce
du classeur actif dont tu parles ou le classeur qui contient le code
dont tu fais référence ? Le résultat n'est pas le même .
Ce code n'a pas été testé. Nom feuille à adapter.
'------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
Repertoire = "C:Documents and SettingsAdministrateur" & _
"BureauHistorique Bon de Commande"
With Worksheets("Feuil1") ' Nom de la feuille à adapter
Fichier = "Com" & " " & .Cells(3, 3).Value & " " & _
.Cells(3, 5).Value & " " & .Cells(13, 7).Value & _
" " & Day(Now) & "-" & Month(Now) & "-" & _
Year(Now) & ".xls"
End With
'test si On valide ou pas
If MsgBox("Voulez-Vous valider ce Bon de Commande et " & _
"mettre à jour votre historique ?", vbYesNo) = vbYes Then
'Met le fichier en écriture
Call Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en
'commencant par Bon com. + jour + mois année
'Est-ce le fichier qui contient ce code que tu veux
'enregistrer ou un autre classeur qui est
'le classeur actif ouvert ?
ThisWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
' il appelle le code michdenis
SupprimeToutCodeEtFormulaire nomFichier
ThisWorkbook.Save
Else
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ThisWorkbook.Save
End If
End Sub
'------------------------------------
"Manu" a écrit dans le message de news:
Owr$
j'ouvre un fichier xls en lecture seul , puis je lui demande de se
mettre
en
lecture ecriture sous un autre nom comme tu le verras ci dessous. La
macro
fonctionne impec, il enregistre tres vite sous un autre nom sans rien
demander, mais à la fin il me redande de réenregistrer le fichier. si je
dis
oui ton code de suppression des macros fonctionne bien (il me supprime
bien
toutes les macros) mais si je dis non, ton code fonctionne à moitié (il
ne
supprime que les macros dans thisworkbook et non les macros des
modules).
J'espere avoir été plus clair.
Manu
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce Bon de Commande et mettre à jour
votre
historique ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
'Enregistre le fichier dans l'historique en commencant par Bon com. +
jour +
mois + année
Repertoire = "C:Documents and
SettingsAdministrateurBureauHistorique
Bon de Commande"
Fichier = "Com" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & "
"
&
Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'Supprime les macros du classeur final
Dim nomFichier As String
nomFichier = ThisWorkbook.Name ' Ou le nom d'un autre fichier
SupprimeToutCodeEtFormulaire nomFichier ' il appelle le code michdenis
Else
Fichier_Lecture_Ecriture 'met le fichier en lecture ecriture
mis_a_jour 'appelle d'un macro dans un module
[E3] = [E3] - 1
ActiveWorkbook.Saved = True
ActiveWorkbook.Save
End If
End Sub
"MichDenis" a écrit dans le message de news:Il faut prendre le temps de poser ta question :
La procédure que tu mentionnes supprimes toutes les procédures
d'un classeur. Si c'est ce classeur que tu veux fermer sans qu'il te
demande rien, tu devrais utiliser ceci :
Workbooks(nomFichier).Save
NomFichier est le nom du fichier auquel la procédure fait référence !
Quel est ton besoin, ce n'est pas évident.
"Manu" a écrit dans le message de news:
OwRx$
Oui, mais rien n'y fait.
tu m'avais donner cela :
Sub SupprimeToutCodeEtFormulaire(nomFichier As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(nomFichier).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
ThisWorkbook.Save
end sub
Que j'ai integré dans mon Private Sub Workbook_BeforeClose(Cancel As
Boolean) et à la fin il me demande si je veux enregistrer les modifs
avant
de quitter.
Alors 2 choses se passent, si je dis oui ton code fonctionne impecable
(il
me supprime bien toutes les macros) si je dis non, ton code fonctionne
à
moitié (il ne supprime que les macros dans thisworkbook et non les
macros
des modules)
Je ne comprend rien.
"MichDenis" a écrit dans le message de news:
%| je veux enregistrer les modifs, je ne veux pas qu'il me pose cette
question
As-tu essayé ceci :
ThisWorkbook.save
"Manu" a écrit dans le message de news:
Bonjour,
a la fin d'un : Private Sub Workbook_BeforeClose(Cancel As Boolean)
il me demande toujours si je veux enregistrer les modifs, je ne veux
pas
qu'il me pose cette question je veux qu'il enregistre sans rien me
dire
alors j'ai mis cela : ActiveWorkbook.Saved = True Mais rien à faire,
il
me
pose tjrs la question, avez vous une idée ?
Merci
Manu