copier n fois un classeur dans un dossier

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.
 

JCGL

XLDnaute Barbatruc
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
 

tora

XLDnaute Occasionnel
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:

bica

XLDnaute Nouveau
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.
 

bica

XLDnaute Nouveau
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.
 

JCGL

XLDnaute Barbatruc
Re : copier n fois un classeur dans un dossier

Bonjour à tous,

Peux-tu tester ce fichier ?

Par Alt F8 :
Exécuter 'Duplique'

Si je suis hors sujet, tu jettes...

A+ à tous
 

Pièces jointes

  • Modele Semaine.xls
    20.5 KB · Affichages: 51

tora

XLDnaute Occasionnel
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 ...
 

bica

XLDnaute Nouveau
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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 836
Messages
2 092 652
Membres
105 479
dernier inscrit
chaussadas.renaud