laurent56380
Messages postés21Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention27 janvier 2008
-
24 janv. 2008 à 02:55
laurent56380
Messages postés21Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention27 janvier 2008
-
24 janv. 2008 à 18:09
Bonjour,
Voila mon problème, j’ai un ensemble de lignes ( de la ligne 3500 à 3600 ) donc 100 lignes de ma feuil1 du classeur nommé 1.xls, à recopier dans 1000 classeurs nommés 2.xls jusqu'à 1000.xls.
J’y arrive très bien à la main, mais quel boulot !
Existe-t-il une Macro pour réaliser ce travail.
Sachant que tous les classeurs devront êtres sauvegardés biensur.
Merci d’avance
A voir également:
"Le code à recopier et à mettre sur votre site avant de commencer"
rbidocho
Messages postés41Date d'inscriptionjeudi 7 juin 2007StatutMembreDernière intervention15 septembre 2008 24 janv. 2008 à 07:59
bonjour,
voici une macro à mettre dans le classeur 1.xls
Sub CopiePlage()
Répertoire = "répertoire où se trouve les classeurs" 'C:\xxx\
For i = 2 To 1000
Workbooks(Répertoire + "" + CStr(i) + ".xls").Open 'ouverture du classeur i
ThisWorkbook.Worksheets("Feuil1").Rows("3500:3600").Select 'selection des formules à copier
Selection.Copy 'copie
Workbooks(CStr(i)).Activate 'on selectionne le classeur
Workbooks(CStr(i)).Worksheets("Feuil1").Select
Range("A3500").Select 'on slectionne la première cellule du classeur où copier les valeurs
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False 'on copie
Workbooks(CStr(i)).Save 'on sauve
Workbooks(CStr(i)).Close 'on ferme
Next i
End Sub
le tout est de savoir si les classeurs i.xls sont déjà créés ou non !!
laurent56380
Messages postés21Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention27 janvier 2008 24 janv. 2008 à 11:17
Merci je vais essayer.
Par contre je viens de voir que certains de mes fichiers xls ont un nom différent, est ce que la macro va ouvrir tous les fichiers xls quand même?
a+
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 24 janv. 2008 à 11:59
Non, pas avec ce genre de code qui utilise un index 2 à 1000
Il faudra que tu regardes la fonction DIR pour lire tous les fichiers du répertoire, peu importe leur nom. Et il te faudra mettre une condition/validation du nom pour être certain que le fichier à lire fait partie de la liste "à lire" ou l'inverse, qui ne fait pas partie de cette liste...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
laurent56380
Messages postés21Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention27 janvier 2008 24 janv. 2008 à 12:20
Pour moi, c’est très difficile je ne connais pas vba.
J’ai renommé tous mes fichiers grace à une macro.
Voilà donc ce que j’ai a présent.
Le 1er fichier d’où je veux copier les lignes, se nomme 00001(01.10.1999).xls, et je veux coller ces lignes dans les fichiers suivant, 00002(02.10.1999).xls à 01000(11.07.2002).xls
Pouvez-vous m’aider pour une macro ?
Merci d’avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
rbidocho
Messages postés41Date d'inscriptionjeudi 7 juin 2007StatutMembreDernière intervention15 septembre 2008 24 janv. 2008 à 15:25
Deuxième version
Il faut créer la macro dans un classeur différent des classeurs de travail
Sub CopiePlage()
Dim Nomfichier As String
Dim NomPremFichier As String
Dim DateFichier As Long
NomPremFichier = "00001(01.10.1999)"
Répertoire = "répertoire où se trouve les classeurs" 'C:\xxx\
Workbooks(Répertoire + "" + NomPremFichier + ".xls").Open
For i = 2 To 1000
'création du nom du fichier
DateFichier = CDate("01/10/1999") + i - 1
Nomfichier = Format(i, "00000")
Nomfichier = Nomfichier + "(" + Format(Day(DateFichier), "00") + "."
Nomfichier = Nomfichier + Format(Month(DateFichier), "00") + "."
Nomfichier = Nomfichier + Format(Year(DateFichier), "0000") + ")"
Workbooks(Répertoire + "" + Nomfichier + ".xls").Open 'ouverture du classeur i
Workbooks(NomPremFichier).Worksheets("Feuil1").Rows("3500:3600").Select 'selection des formules à copier
Selection.Copy 'copie
Workbooks(Nomfichier).Activate 'on selectionne le classeur
Workbooks(Nomfichier).Worksheets("Feuil1").Select
Range("A3500").Select 'on slectionne la première cellule du classeur où copier les valeurs
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False 'on copie
Workbooks(Nomfichier).Save 'on sauve
Workbooks(Nomfichier).Close 'on ferme
Next i
Workbooks(NomPremFichier).Close 'on ferme
End Sub