modifier code de sauvegarde

  • Initiateur de la discussion Initiateur de la discussion GHISLAIN
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

GHISLAIN

XLDnaute Impliqué
bonsoir a tous ,

j ai un code qui fonctionne du tonerre( merci a son createur) pour executer une sauvegarde de document en creant un nouveau classeur et le nomant avec le nom d une cellule
j aimerai effectuer exactement la meme operation , mais que ce ne soit pas un nouveau classeur qui soit crée mais que soit utiliser une copie d'un classeur existant et ensuite renomér ce classeur avec le nom de la cellule

dans le code que je vous transmet une seule feuille est copiée collée
je voudrais modifier cette fonction pour que soit copié et collé deux feuilles apres la creation du classeur




nb j avais posé ce fil mais n ayant pas eu de reponse je le reedite
merci de votre comprehention

ci joint le fichier avec les codes que j utilise

merci de votre aide amicalement

ghislain
 

Pièces jointes

Re : modifier code de sauvegarde

Bonjour GHISKAIN,

Pas très clair tout ceci, d'autant que je ne peux tester la bonne marche sans les bons répertoires sur mon poste de travail.

Je te propose quand-même de modifier ton code comme suit (pour le principe de la démarche) :

Code:
Sub copieclasseur()

'copie du classeur nomé "ModeleSauvegardeProd.xls" et renomé en "copieclasseur.xls"
' la copie et la creation s'effectue sans ouvrir les classeurs
Dim filesys
Set filesys = CreateObject("Scripting.FileSystemObject")
If Not filesys.FileExists("C:\Sauvegarde feuille Prod\ModeleSauvegardeProd.xls") Then
  MsgBox "Fichier non trouvé !"
  Exit Sub
  Else
  Workbooks.Open Filename:="C:\Sauvegarde feuille Prod\ModeleSauvegardeProd.xls"
  Windows("CC:\AlbaProduction\Sauvegarde feuille Prod\copieclasseur.xls").Activate
  Sheets(Array("jour30", "code30")).Copy Before:=Workbooks("C:\Sauvegarde feuille Prod\ModeleSauvegardeProd.xls").Sheets(1)
  With Workbooks("C:\Sauvegarde feuille Prod\ModeleSauvegardeProd.xls")
    Application.DisplayAlerts = False
    For Each sh In .Sheets
      If Not sh.Name = "jour30" And Not sh.Name = "code30" Then sh.Delete
    Next
    .SaveAs (ThisWorkbook.Path & "\" & .Range("A1") & ".xls")
    Application.DisplayAlerts = True
  End With
End If
End Sub

Il te reste à corriger éventuellement les noms de fichiers ainsi que la référence de la cellule qui contient le nom du nouveau fichier, Range("A1") dans mon exemple.

Espérant avoir répondu.

Cordialement.
 
Re : modifier code de sauvegarde

bonjour papou-net,

merci de te pencher sur mon fil


je viens de tester et tenter de manipuler le code mais je ny parviens pas

je vais tenter de redonner les explications de ce que je souhaite :


1- classeur actif d'ou se deroule le code il est appelé "BonV19.xls"
2- de ce classeur actif je souhaite exporter deux feuilles nomées "jour30" et "code30"
3- j ai en ("C:\Sauvegarde feuille Prod\") un modele de classeur existant appelé " ModeleSauvegardeProd.xls" (je souhaite copier ce classeur pour utiliser les modules si trouvant)

4 - une fois la copie du classeur effectuée je voudrais coller les deux feuilles de mon classeur actif nomées "jour30" et "code30"

5 - et enfin enregistrer ce classeur sous le nom de la cellule f7

merci encore de ton aide precieuse

amicalement ghislain
 
Re : modifier code de sauvegarde

bonjour papou-net,

merci de te pencher sur mon fil


je viens de tester et tenter de manipuler le code mais je ny parviens pas

je vais tenter de redonner les explications de ce que je souhaite :


1- classeur actif d'ou se deroule le code il est appelé "BonV19.xls"
2- de ce classeur actif je souhaite exporter deux feuilles nomées "jour30" et "code30"
3- j ai en ("C:\Sauvegarde feuille Prod\") un modele de classeur existant appelé " ModeleSauvegardeProd.xls" (je souhaite copier ce classeur pour utiliser les modules si trouvant)

4 - une fois la copie du classeur effectuée je voudrais coller les deux feuilles de mon classeur actif nomées "jour30" et "code30"

5 - et enfin enregistrer ce classeur sous le nom de la cellule f7

merci encore de ton aide precieuse

amicalement ghislain

Avec ces explications, je pense avoir mieux compris le problème.

Voici donc ta macro modifiée (j'ai ajouté des commentaires afin de vérifier ma bonne compréhension de ta demande) :

Code:
Sub copieclasseur()

'copie du classeur nomé "ModeleSauvegardeProd.xls" et renomé en "copieclasseur.xls"
' la copie et la creation s'effectue sans ouvrir les classeurs

Dim filesys
Set filesys = CreateObject("Scripting.FileSystemObject")

' Vérification de l'existence du fichier modèle
If Not filesys.FileExists("C:\Sauvegarde feuille Prod\ModeleSauvegardeProd.xls") Then
  MsgBox "Fichier non trouvé !"
  Exit Sub
End If
' Ouverture du fichier modèle
Workbooks.Open Filename:="C:\Sauvegarde feuille Prod\ModeleSauvegardeProd.xls"
' Copie des feuilles du fichier actuel dans le fichier modèle
ThisWorkbook.Sheets(Array("jour30", "code30")).Copy after:=ActiveWorkbook.Sheets(Sheets.Count)
' Sauvegarde du fichier modèle modifié sous le nom contenu en cellule F7
ActiveWorkbook.SaveAs (ThisWorkbook.Path & "\" & ThisWorkbook.Sheets("jour30").Range("F7") & ".xls")

End Sub

Espérant avoir répondu, et restant à ton écoute.

Cordialement.
 
Re : modifier code de sauvegarde

bonjour bonjour papou-net,


je viens de tester le code que tu ma confectionnée il fonctionne a merveille .

les deux feuilles sont copiées et collées

le seul hic c est que les formules sont copiées egalement
il y a t il la possibilité de ne coller que les valeurs?? des cellules??


merci de ton aide

amicalement ghislain
 
Re : modifier code de sauvegarde

les deux feuilles sont copiées et collées

le seul hic c est que les formules sont copiées egalement
il y a t il la possibilité de ne coller que les valeurs?? des cellules??

Bonsoir GHISLAIN,

Peut-être comme ceci :

Code:
Sub copieclasseur()

'copie du classeur nomé "ModeleSauvegardeProd.xls" et renomé en "copieclasseur.xls"
' la copie et la creation s'effectue sans ouvrir les classeurs

Dim filesys
Set filesys = CreateObject("Scripting.FileSystemObject")

' Vérification de l'existence du fichier modèle
If Not filesys.FileExists("C:\Sauvegarde feuille Prod\ModeleSauvegardeProd.xls") Then
  MsgBox "Fichier non trouvé !"
  Exit Sub
End If
Workbooks.Open Filename:="C:\Sauvegarde feuille Prod\ModeleSauvegardeProd.xls"
ThisWorkbook.Sheets(Array("jour30", "code30")).Copy after:=ActiveWorkbook.Sheets(Sheets.Count)
ActiveWorkbook.SaveAs (ThisWorkbook.Path & "\" & ThisWorkbook.Sheets("jour30").Range("F7") & ".xls")
ThisWorkbook.Sheets("jour30").Cells.Copy
With ActiveWorkbook.Sheets("jour30").Range("A1")
  .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  :=False, Transpose:=False
  .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
  SkipBlanks:=False, Transpose:=False
End With
ThisWorkbook.Sheets("code30").Cells.Copy
With ActiveWorkbook.Sheets("code30").Range("A1")
  .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  :=False, Transpose:=False
  .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
  SkipBlanks:=False, Transpose:=False
End With
End Sub

Espérant avoir résolu.

Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
380
Réponses
4
Affichages
709
Réponses
3
Affichages
606
Réponses
3
Affichages
611
Retour