wilbur11
XLDnaute Junior
Bonjour à tous,
Étant assez débutant avec les macros, je ne comprends pas tout les subtilités du langage.
J’ai par contre réussi à faire ma macro.
Il me reste quelque bogue que j’essaye de régler 1 par 1 dont celui-ci.
Mon fichier étant trop gros pour être en PJ même en .ZIP, je mets donc ma macro.
J’ai de la misère avec le pastespecial dans la première partie de la macro. Lorsque j’exécute la macro il me donne une erreur du type : erreur d’exécution 1004. erreur défini par l’application pour la l’objet.
Si quelqu’un pouvait m’aider…
Sub essai()
Dim Nomfichier As String, chemin As String
ActiveSheet.Unprotect
With Sheets("Soumission client")
.Activate
.Copy
Nomfichier = "Soumission_" & Range("a4") & "_" & Range("b8")
ActiveSheet.UsedRange
.Copy
.PasteSpecial Paste:=xlValues
End With
'répertoire de sauvegarde
chemin = "D:\Mes documents\ebenisterie\soumission\"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'on définit le nom du futur fichier et son extension en tant que fichier xls
ActiveWorkbook.SaveAs Filename:=chemin & Nomfichier & ".xls"
Sheets("Soumission client").Name = Nomfichier
'là un petit message pour faire joli et indiquer que la sauvegarde a bien été exécutée
msg = "Votre Facture a été sauvegardée sous le nom et n° que vous lui avez donné."
Title = "Sauvegarde de la facture actuelle"
Style = vbOKOnly + vbInformation
Reponse = MsgBox(msg, Style, Title)
ActiveSheet.Protect
ActiveWorkbook.Close (False)
'sur le fichier d'origine on incrémente la cellule a7 de 1 et on efface les cellules
Sheets("Soumission client").Range("a4") = Range("a4") + 1
Sheets("devis").Range("b2:b5") = ""
Sheets("devis").Range("b7:b8") = ""
Sheets("devis").Range("b10") = "non"
Sheets("devis").Range("f14:s15") = ""
Sheets("devis").Range("c14:c14") = ""
Sheets("devis").Range("b17:b17") = ""
'on reprotège la feuille
ActiveSheet.Protect
End Sub
Étant assez débutant avec les macros, je ne comprends pas tout les subtilités du langage.
J’ai par contre réussi à faire ma macro.
Il me reste quelque bogue que j’essaye de régler 1 par 1 dont celui-ci.
Mon fichier étant trop gros pour être en PJ même en .ZIP, je mets donc ma macro.
J’ai de la misère avec le pastespecial dans la première partie de la macro. Lorsque j’exécute la macro il me donne une erreur du type : erreur d’exécution 1004. erreur défini par l’application pour la l’objet.
Si quelqu’un pouvait m’aider…
Sub essai()
Dim Nomfichier As String, chemin As String
ActiveSheet.Unprotect
With Sheets("Soumission client")
.Activate
.Copy
Nomfichier = "Soumission_" & Range("a4") & "_" & Range("b8")
ActiveSheet.UsedRange
.Copy
.PasteSpecial Paste:=xlValues
End With
'répertoire de sauvegarde
chemin = "D:\Mes documents\ebenisterie\soumission\"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'on définit le nom du futur fichier et son extension en tant que fichier xls
ActiveWorkbook.SaveAs Filename:=chemin & Nomfichier & ".xls"
Sheets("Soumission client").Name = Nomfichier
'là un petit message pour faire joli et indiquer que la sauvegarde a bien été exécutée
msg = "Votre Facture a été sauvegardée sous le nom et n° que vous lui avez donné."
Title = "Sauvegarde de la facture actuelle"
Style = vbOKOnly + vbInformation
Reponse = MsgBox(msg, Style, Title)
ActiveSheet.Protect
ActiveWorkbook.Close (False)
'sur le fichier d'origine on incrémente la cellule a7 de 1 et on efface les cellules
Sheets("Soumission client").Range("a4") = Range("a4") + 1
Sheets("devis").Range("b2:b5") = ""
Sheets("devis").Range("b7:b8") = ""
Sheets("devis").Range("b10") = "non"
Sheets("devis").Range("f14:s15") = ""
Sheets("devis").Range("c14:c14") = ""
Sheets("devis").Range("b17:b17") = ""
'on reprotège la feuille
ActiveSheet.Protect
End Sub