copier n fois un classeur dans un dossier

  • Initiateur de la discussion Initiateur de la discussion bica
  • 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 !

bica

XLDnaute Nouveau
Bonjour à toutes et à tous ,
je demande le concours des EXCELlentisimes membres de ce forum de m'aider à copier un classeur (52 fois pour 52 semaines) dans un dossier , sans pour autant ouvrir ce dernier.
Pour être plus clair j'ai un classeur du type S1.xls dans un dossier "Semaine"que j'aimerai copier 52 fois (dans ce même dossier) pour avoir des classeurs S2.xls , S3.xls etc....
Ce classeur S1.xls ne comporte que quelques formules pas de vba...

Merci pour vôtre aide .

Bica.
 
Re : copier n fois un classeur dans un dossier

Bonjour à tous,

Peux-tu essayer avec :

Code:
Option Explicit

Sub Duplique()
Dim X As Integer

ActiveWorkbook.Save
For X = 1 To 52
With ActiveWorkbook
    Range("A1") = "Semaine " & Format(X, "00")
    .SaveAs "S" & Format(X, "00") & ".xls"
End With
Next X
End Sub

A+ à tous
 
Re : copier n fois un classeur dans un dossier

slt,

le classeur contient combien de pages ?

Si une page ... pourquoi pas 1 classeur de 52 pages ...

sinon voila :
Code:
[COLOR="Blue"]Sub copieur()

Dim copie As Byte
Dim chemin As String: chemin = "C:\Nouveau dossier\"
Dim fichier As String: fichier = "exemple.xls"
Dim Wkb As Workbook

Set Wkb = Workbooks.Open(chemin & fichier)

For copie = 1 To 52
    Wkb.SaveAs (chemin & "S" & copie)
Next copie

Wkb.Close

MsgBox "fin de copie"

End Sub[/COLOR]

Nomme ton fichier de base "exemple.xls" comme indiqué ici.

Ouvre un nouveau classeur vide, appuie alt+F11
dans la colonne de gauche double click "this workbook"
copie colle tout le code, et modifie la variable chemin selon
l'emplacement du fichier "exemple.xls" :

place le curseur a l'interieur des lignes de programme appuie sur F5

en fin d'opération un message te préviendra.

Enjoy @+

PS : le nouveau classeur ou tu as placé le code de copie est bon a jeter ... (ne sert plus)
 
Dernière édition:
Re : copier n fois un classeur dans un dossier

Bonjour JCGL ,

merci de m'accorder de ton temps seulement après essai de ton code ce n'est pas ma requête , ton code m'affiche en A1 "semaine52" après ouverture du workbook ( "active workbook").Or je désire simplement copier dans un dossier le classeur sans forcément l'ouvrir pour éviter de copier/coller 52 fois et de renommer "copie S1.xls "en S2.xls.

merci .

Bica.
 
Re : copier n fois un classeur dans un dossier

Bonjour tora ,

merci pour ton aide le classeur comporte bien une page mais j'ai besoin d'envoyer par semaine le tableau avec une page , je cherche plutôt une astuce pour simplement copier ce classeur dans un dossier 52 fois pour éviter d'avoir à faire 52 fois copier/coller et de renommer des classeurs du genre "copie S1.xls" en S2.xls...
C'est plus une façon de copier/coller rapidement un nombre de fois puis éventuellement de renommer en bloc avec une fonctionnalité d'excel que je recherche.

merci
Bica.
 
Re : copier n fois un classeur dans un dossier

si la page envoyée n'est pas modifiée par le receveur,
tu as la fonction d'envoi par mail ...

Fichier > Envoyer vers > Destinataire
qui sauf erreur n'enverra que la page en cours de visu ....

Donc inutile d'avoir 52 pages divisées en 52 classeurs ...
 
Re : copier n fois un classeur dans un dossier

Merci Tora ,

c'est vrai mais tu ne bosses pas avec des gens qui sont progressistes mais plutôt archaïque , les ordres sont les ordres ...
Cela dit JCGL vient de m'envoyer un code qui correspond à mon attente .

@ bientôt sur cet ECELlentisime forum
Bica
 
Re : copier n fois un classeur dans un dossier

Bonsoir Bica, Tora, JCGL, le Forum

Une approche avec un simple "FileCopy"

Code:
Sub FileCopyX()
Dim NbCopy As Integer
Dim FileToCopy As Variant
Dim FileName As String
Dim i As Integer
FileToCopy = Application.GetOpenFilename("Excel File (*.xls), *.xls")
    If FileToCopy <> False Then
        NbCopy = Application.InputBox("Nombre de Copies", "CopyX", Type:=1)
                For i = 1 To NbCopy
                    FileCopy FileToCopy, Left(FileToCopy, Len(FileToCopy) - 4) & "_" & Format(i, "00") & ".xls"
                Next i
    End If
End Sub

C'est sans toucher au fichier, ni ouverture ni rien, même la date de création du fichier XLS restera celle d'origine sur les copies.

Bonne Soirée
@+Thierry
 
- 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
4
Affichages
377
  • Question Question
Microsoft 365 Classeur Disparu
Réponses
2
Affichages
516
Retour