Archivage

wilplan

XLDnaute Nouveau
Bonjour le Fil,

j'enregistre une feuille dans un autre classeur.

Pour ce faire j'utilise la syntaxe suivante.

Dim nomsauvegarde As String
nomsauvegarde = (Feuil4.Range("D7").Value & Date$ & " .xls")
Sheets("dotation").Copy
ChDir "C:\ ' indique le répertoire
ActiveWorkbook.SaveAs Filename:=nomsauvegarde

jusque là tout va bien, mon problème c'est que j'aurai besoin de revenir dans mon autre classeur
pour supprimer les données de la feuille puisqu'elle est sauvegardée.
j'ai donc essayé :
sheet ("dotation").Select
Range("A14:G43").Select
Selection.Clearcontents

Mais seule s'effacent les données sur la sauvegarde alors que c'est l'inverse que je souhaite obtenir.

Si quelqu'un a une idée, elle sera la bienvenue, Merci
 
Dernière édition:

wilplan

XLDnaute Nouveau
Re : Archivage

Bonsoir à tous,
Ouf après trois jours de recherche intense, j'ai trouvé, si ça peut servir voilà ce que j'ai bricolé et qui fonctionne presque:

Dim Sauve As String
Set WS = Worksheets("Dotation")

Sauve = ThisWorkbook.Path & "C:\Users\Bureau\Documents\Boulot\archivage\"
WS.Copy

With ActiveWorkbook
.SaveAs (Feuil4.Range("D7").Value & Format(Now, "DD-MM-YYYY-HH-MM-SS") & " .xls")
.Close
End With

Presque parceque ma feuille va se loger dans les documents plutôt que dans le classeur archivage, aussi si quelqu'un sait pourquoi , je suis preneur, merci
 
Dernière édition:

Kobaya

XLDnaute Occasionnel
Re : Archivage

Bonsoir wilplan,

Si je puis me permettre, je vais corriger deux erreurs :

Sauve = ThisWorkbook.Path & "C:\Users\Bureau\Documents\Boulot\archivage\"
==> Là, tu concatènes dans la variable Sauve le chemin du classeur contenant la macro et "C:\Users\Bureau\Documents\Boulot\archivage\". C'est pas très efficace ;-) ; en plus tu n'utilises pas cette variable dans le code...


.SaveAs (Feuil4.Range("D7").Value & Format(Now, "DD-MM-YYYY-HH-MM-SS") & " .xls")
==> Je suppose que Feuil4.Range("D7").Value contient uniquement le nom du fichier (sans le chemin). Du coup, le nom du fichier est correct, mais comme tu ne précises pas le chemin, le fichier est enregistré dans le répertoire par défaut : Documents.

Je n'ai pas testé ce code, mais je ne dois pas être loin de ce que tu cherches :
Code:
    Dim Sauve As String
    
    Sauve = "C:\Users\Bureau\Documents\Boulot\archivage\"
    Worksheets("Dotation").Copy
    
    With ActiveWorkbook
        .SaveAs Sauve & Feuil4.Range("D7").Value & Format(Now, "DD-MM-YYYY-HH-MM-SS") & " .xls"
        .Close
    End With
En tout cas, c'est un très bon début : continue.
Le VBA, c'est très sympa, surtout que quand on galère, il y a un forum comme celui de excel-downloads :)
 
Dernière édition:

wilplan

XLDnaute Nouveau
Re : Archivage

Bonjour le Forum,
Merci Kobaya, ta formule est exactement ce que je cherchais à faire depuis 3 jours, quand aux explications que tu apportes ,elles permettent d'avancer à pas de géant pour le débutant que je suis.
Bonne journée
 

sago974

XLDnaute Nouveau
Re : Archivage

Code:
    Dim Sauve As String
    
    Sauve = "C:\Users\Bureau\Documents\Boulot\archivage\"
    Worksheets("Dotation").Copy
    
    With ActiveWorkbook
        .SaveAs Sauve & Feuil4.Range("D7").Value & Format(Now, "DD-MM-YYYY-HH-MM-SS") & " .xls"
        .Close
    End With




Bonjour a tous !

J'effectue moi aussi une manip' dans le même genre et vos conseils mon beaucoup aidés. Seulement 2 problèmes me ralentissent :
- J'aimerais copier, pas la feuille "dotation" entière mais les cellules ("A2:EC40"). Mais je n'arrive pas a trouver la syntaxe.

- Et ensuite j aimerais savoir s'il y a une formule me permettant d'éxécuter ma procédure au dernier jours du mois.

Merci, en esperant trouver une réponse ;)
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Archivage

Bonjour Sago,et bienvenue sur le forum

il eut été préférable de créer un nouveau fil de discussion mais comme tu es nouveau il te sera beaucoup pardonné
pour répondre à ta question
- Et ensuite j aimerais savoir s'il y a une formule me permettant d'éxécuter ma procédure au dernier jours du mois.
vois le fichier joint, tout est expliqué

Bonne journée
à+
Philippe
.
 

Pièces jointes

  • 111.xls
    15.5 KB · Affichages: 105
  • 111.xls
    15.5 KB · Affichages: 117
  • 111.xls
    15.5 KB · Affichages: 109

wilplan

XLDnaute Nouveau
Re : Archivage

Bonjour Sago, Phlaurent, le forum

Pour ta première question j'ai pas le temps de faire l'essai cet après-midi, mais je pense que si tu lances l'enregistreur de macro , tu définis la zone que tu veux sauvegarder, puis tu arrêtes l' enregistrement; tu devrais obtenir la syntaxe que tu cherches.

merci à toi pour ta question et à phlaurent pour sa réponse qui va me servir prochainement

bonne journée
 

sago974

XLDnaute Nouveau
Re : Archivage

Merci beaucoup de votre aide ! il me reste un seul soucis concernant la procédure "BeforClose".

extrait de mon code :

Private Sub Beforeclose()
If Feuil4.Range("F1") = 0 Then
Dim Sauve As String
Dim name As String
Sauve = "C:\Documents and Settings\sagory-adr\Cuves\"
Worksheets("Rapport mensuel").Copy
.....

Cette procédure devrait ce lancé au moment ou je ferme mon tableau ? mais cela ne fonctionne pas!
Si je l'exécute manuellement elle marche très bien.

Si quelqu'un à déja utilisé beforeClose ce serait cool :rolleyes:

Merci a vous de votre aide rapide et efficace.
 

sago974

XLDnaute Nouveau
Re : Archivage

Merci Phlaurent ton fichier ma débloqué la situation !!!

Concernant le Beforeclose j'ai trouvé la solution il faut le mettre dans le ThisWork et non dans les modules des pages!

A très bientot pour de nouveaux développements :cool: :eek:
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2