Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim NomFich As String
NomFich =3D "c:\TEMP\" & Day(Date) & Month(Date) & Year(Date) &
"=2Exls"
ActiveWorkbook.SaveCopyAs NomFich
End Sub
J'aimerais pouvoir sauvegarder seulement les valeurs de la feuille et
non les formules qu'il y a dans les cellules. Que dois-je rajouter =E0
ma macro pour cela?
Le plus simple est à mon avis de copier-coller par valeurs les plages de cellules utilisées de chaque feuille. Comme ceci :
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String Dim Fich as Workbook Dim Feuil As Worksheet NomFich = "c:TEMP" & Day(Date) & Month(Date) & Year(Date) & ".xls" ActiveWorkbook.SaveCopyAs NomFich Set Fich = Application.Workbooks.Open(NomFich) For Each Feuil In Fich Feuil.UsedRange.Copy Feuil.UsedRange.PasteSpecial xlPasteValues Application.CutCopyMode = False Next Feuil Fich.Close SaveChanges:=True End Sub
Cela dit, j'ai pas testé, il va peut-être te falloir débugger un bout du machin... -- A+
V.
Bonjour,
J'ai ce code dans un fichier excel:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String NomFich = "c:TEMP" & Day(Date) & Month(Date) & Year(Date) & ".xls" ActiveWorkbook.SaveCopyAs NomFich End Sub
J'aimerais pouvoir sauvegarder seulement les valeurs de la feuille et non les formules qu'il y a dans les cellules. Que dois-je rajouter à ma macro pour cela?
Merci MP
Bonjour,
Le plus simple est à mon avis de copier-coller par valeurs les plages de
cellules utilisées de chaque feuille. Comme ceci :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim NomFich As String
Dim Fich as Workbook
Dim Feuil As Worksheet
NomFich = "c:TEMP" & Day(Date) & Month(Date) & Year(Date) &
".xls"
ActiveWorkbook.SaveCopyAs NomFich
Set Fich = Application.Workbooks.Open(NomFich)
For Each Feuil In Fich
Feuil.UsedRange.Copy
Feuil.UsedRange.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Next Feuil
Fich.Close SaveChanges:=True
End Sub
Cela dit, j'ai pas testé, il va peut-être te falloir débugger un bout du
machin...
--
A+
V.
Bonjour,
J'ai ce code dans un fichier excel:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim NomFich As String
NomFich = "c:TEMP" & Day(Date) & Month(Date) & Year(Date) &
".xls"
ActiveWorkbook.SaveCopyAs NomFich
End Sub
J'aimerais pouvoir sauvegarder seulement les valeurs de la feuille et
non les formules qu'il y a dans les cellules. Que dois-je rajouter à
ma macro pour cela?
Le plus simple est à mon avis de copier-coller par valeurs les plages de cellules utilisées de chaque feuille. Comme ceci :
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String Dim Fich as Workbook Dim Feuil As Worksheet NomFich = "c:TEMP" & Day(Date) & Month(Date) & Year(Date) & ".xls" ActiveWorkbook.SaveCopyAs NomFich Set Fich = Application.Workbooks.Open(NomFich) For Each Feuil In Fich Feuil.UsedRange.Copy Feuil.UsedRange.PasteSpecial xlPasteValues Application.CutCopyMode = False Next Feuil Fich.Close SaveChanges:=True End Sub
Cela dit, j'ai pas testé, il va peut-être te falloir débugger un bout du machin... -- A+
V.
Bonjour,
J'ai ce code dans un fichier excel:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String NomFich = "c:TEMP" & Day(Date) & Month(Date) & Year(Date) & ".xls" ActiveWorkbook.SaveCopyAs NomFich End Sub
J'aimerais pouvoir sauvegarder seulement les valeurs de la feuille et non les formules qu'il y a dans les cellules. Que dois-je rajouter à ma macro pour cela?
Attention si le nombre de cellules est très important il vaut peut-être mieux passer par la création d'une feuille temporaire puis un copier-collage spécial puis la destruction de la feuille à copier puis le renommage de la feuille temporaire avec le nom de la feuille copiée
A+
Bonjour,
J'ai ce code dans un fichier excel:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String NomFich = "c:TEMP" & Day(Date) & Month(Date) & Year(Date) & ".xls" ActiveWorkbook.SaveCopyAs NomFich End Sub
J'aimerais pouvoir sauvegarder seulement les valeurs de la feuille et non les formules qu'il y a dans les cellules. Que dois-je rajouter à ma macro pour cela?
Attention si le nombre de cellules est très important il vaut peut-être
mieux passer par la création d'une feuille temporaire puis un
copier-collage spécial puis la destruction de la feuille à copier puis
le renommage de la feuille temporaire avec le nom de la feuille copiée
A+
Bonjour,
J'ai ce code dans un fichier excel:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim NomFich As String
NomFich = "c:TEMP" & Day(Date) & Month(Date) & Year(Date) &
".xls"
ActiveWorkbook.SaveCopyAs NomFich
End Sub
J'aimerais pouvoir sauvegarder seulement les valeurs de la feuille et
non les formules qu'il y a dans les cellules. Que dois-je rajouter à
ma macro pour cela?
Attention si le nombre de cellules est très important il vaut peut-être mieux passer par la création d'une feuille temporaire puis un copier-collage spécial puis la destruction de la feuille à copier puis le renommage de la feuille temporaire avec le nom de la feuille copiée
A+
Bonjour,
J'ai ce code dans un fichier excel:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String NomFich = "c:TEMP" & Day(Date) & Month(Date) & Year(Date) & ".xls" ActiveWorkbook.SaveCopyAs NomFich End Sub
J'aimerais pouvoir sauvegarder seulement les valeurs de la feuille et non les formules qu'il y a dans les cellules. Que dois-je rajouter à ma macro pour cela?
Merci MP
mboileau
Salut ca ne fonctionne pas à partir de set Fich. Est-ce que tu peux m'aider?
Merci MP
Salut ca ne fonctionne pas à partir de set Fich. Est-ce que tu peux
m'aider?
Remplace For Each Feuil In Fich par For Each Feuil In Fich.Worksheets
docm
wrote in message news:
Salut ca ne fonctionne pas à partir de set Fich. Est-ce que tu peux m'aider?
Merci MP
mboileau
Salut,
J'ai écrit mon code comme suit mais il y a 2 msgbox " voulez-vous sauvegarder" qui m'apparait une après l'autre. Est-ce que tu détectes l'erreur?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String Dim Feuil As Worksheet Select Case MsgBox("Voulez-vous sauvegarder?", vbYesNoCancel) Case vbYes NomFich = "c:TEMP" & Format(Now(), "dd-mmm-yy") & ".xls" For Each Feuil In Workbooks("test").Worksheets Feuil.UsedRange.Copy Feuil.UsedRange.PasteSpecial xlPasteValues Application.CutCopyMode = False Next Feuil ThisWorkbook.SaveCopyAs NomFich Workbooks("test").Close SaveChanges:úlse Case vbNo ThisWorkbook.Saved = True Case vbCancel Cancel = True End Select
End Sub
Merci MP
Salut,
J'ai écrit mon code comme suit mais il y a 2 msgbox " voulez-vous
sauvegarder" qui m'apparait une après l'autre. Est-ce que tu
détectes l'erreur?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim NomFich As String
Dim Feuil As Worksheet
Select Case MsgBox("Voulez-vous sauvegarder?", vbYesNoCancel)
Case vbYes
NomFich = "c:TEMP" & Format(Now(), "dd-mmm-yy") & ".xls"
For Each Feuil In Workbooks("test").Worksheets
Feuil.UsedRange.Copy
Feuil.UsedRange.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Next Feuil
ThisWorkbook.SaveCopyAs NomFich
Workbooks("test").Close SaveChanges:=False
Case vbNo
ThisWorkbook.Saved = True
Case vbCancel
Cancel = True
End Select
J'ai écrit mon code comme suit mais il y a 2 msgbox " voulez-vous sauvegarder" qui m'apparait une après l'autre. Est-ce que tu détectes l'erreur?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String Dim Feuil As Worksheet Select Case MsgBox("Voulez-vous sauvegarder?", vbYesNoCancel) Case vbYes NomFich = "c:TEMP" & Format(Now(), "dd-mmm-yy") & ".xls" For Each Feuil In Workbooks("test").Worksheets Feuil.UsedRange.Copy Feuil.UsedRange.PasteSpecial xlPasteValues Application.CutCopyMode = False Next Feuil ThisWorkbook.SaveCopyAs NomFich Workbooks("test").Close SaveChanges:úlse Case vbNo ThisWorkbook.Saved = True Case vbCancel Cancel = True End Select
End Sub
Merci MP
docm
L'erreur vient de la commande Workbooks("test").Close SaveChanges:úlse qui provoque un nouvel événement Workbook_BeforeClose non désiré.
Essaie avec ces modifications.
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String Dim Feuil As Worksheet Select Case MsgBox("Voulez-vous sauvegarder?", vbYesNoCancel) Case vbYes NomFich = "c:TEMP" & Format(Now(), "dd-mmm-yy") & ".xls" 'For Each Feuil In Workbooks("test").Worksheets For Each Feuil In ThisWorkbook.Worksheets Feuil.UsedRange.Copy Feuil.UsedRange.PasteSpecial xlPasteValues Application.CutCopyMode = False Next Feuil ThisWorkbook.SaveCopyAs NomFich 'Workbooks("test").Close SaveChanges:úlse ThisWorkbook.Saved = True Case vbNo ThisWorkbook.Saved = True Case vbCancel Cancel = True End Select End Sub
docm
wrote in message news: Salut,
J'ai écrit mon code comme suit mais il y a 2 msgbox " voulez-vous sauvegarder" qui m'apparait une après l'autre. Est-ce que tu détectes l'erreur?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String Dim Feuil As Worksheet Select Case MsgBox("Voulez-vous sauvegarder?", vbYesNoCancel) Case vbYes NomFich = "c:TEMP" & Format(Now(), "dd-mmm-yy") & ".xls" For Each Feuil In Workbooks("test").Worksheets Feuil.UsedRange.Copy Feuil.UsedRange.PasteSpecial xlPasteValues Application.CutCopyMode = False Next Feuil ThisWorkbook.SaveCopyAs NomFich Workbooks("test").Close SaveChanges:úlse Case vbNo ThisWorkbook.Saved = True Case vbCancel Cancel = True End Select
End Sub
Merci MP
L'erreur vient de la commande
Workbooks("test").Close SaveChanges:úlse
qui provoque un nouvel événement Workbook_BeforeClose
non désiré.
Essaie avec ces modifications.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim NomFich As String
Dim Feuil As Worksheet
Select Case MsgBox("Voulez-vous sauvegarder?", vbYesNoCancel)
Case vbYes
NomFich = "c:TEMP" & Format(Now(), "dd-mmm-yy") & ".xls"
'For Each Feuil In Workbooks("test").Worksheets
For Each Feuil In ThisWorkbook.Worksheets
Feuil.UsedRange.Copy
Feuil.UsedRange.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Next Feuil
ThisWorkbook.SaveCopyAs NomFich
'Workbooks("test").Close SaveChanges:úlse
ThisWorkbook.Saved = True
Case vbNo
ThisWorkbook.Saved = True
Case vbCancel
Cancel = True
End Select
End Sub
docm
<mboileau@hotmail.com> wrote in message
news:1152737824.200361.99690@m73g2000cwd.googlegroups.com...
Salut,
J'ai écrit mon code comme suit mais il y a 2 msgbox " voulez-vous
sauvegarder" qui m'apparait une après l'autre. Est-ce que tu
détectes l'erreur?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim NomFich As String
Dim Feuil As Worksheet
Select Case MsgBox("Voulez-vous sauvegarder?", vbYesNoCancel)
Case vbYes
NomFich = "c:TEMP" & Format(Now(), "dd-mmm-yy") & ".xls"
For Each Feuil In Workbooks("test").Worksheets
Feuil.UsedRange.Copy
Feuil.UsedRange.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Next Feuil
ThisWorkbook.SaveCopyAs NomFich
Workbooks("test").Close SaveChanges:úlse
Case vbNo
ThisWorkbook.Saved = True
Case vbCancel
Cancel = True
End Select
L'erreur vient de la commande Workbooks("test").Close SaveChanges:úlse qui provoque un nouvel événement Workbook_BeforeClose non désiré.
Essaie avec ces modifications.
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String Dim Feuil As Worksheet Select Case MsgBox("Voulez-vous sauvegarder?", vbYesNoCancel) Case vbYes NomFich = "c:TEMP" & Format(Now(), "dd-mmm-yy") & ".xls" 'For Each Feuil In Workbooks("test").Worksheets For Each Feuil In ThisWorkbook.Worksheets Feuil.UsedRange.Copy Feuil.UsedRange.PasteSpecial xlPasteValues Application.CutCopyMode = False Next Feuil ThisWorkbook.SaveCopyAs NomFich 'Workbooks("test").Close SaveChanges:úlse ThisWorkbook.Saved = True Case vbNo ThisWorkbook.Saved = True Case vbCancel Cancel = True End Select End Sub
docm
wrote in message news: Salut,
J'ai écrit mon code comme suit mais il y a 2 msgbox " voulez-vous sauvegarder" qui m'apparait une après l'autre. Est-ce que tu détectes l'erreur?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NomFich As String Dim Feuil As Worksheet Select Case MsgBox("Voulez-vous sauvegarder?", vbYesNoCancel) Case vbYes NomFich = "c:TEMP" & Format(Now(), "dd-mmm-yy") & ".xls" For Each Feuil In Workbooks("test").Worksheets Feuil.UsedRange.Copy Feuil.UsedRange.PasteSpecial xlPasteValues Application.CutCopyMode = False Next Feuil ThisWorkbook.SaveCopyAs NomFich Workbooks("test").Close SaveChanges:úlse Case vbNo ThisWorkbook.Saved = True Case vbCancel Cancel = True End Select