MODIFICATION SUR 400 FICHIERS EXCEL

Gwen -  
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,

Je dispose d'un répertoire avec 400 fichiers excel identiques (sinon que les données) nommés du fichier 1.xls au fichier 400.xls.
Sur un fichier modèle nommé modele.xls, j'ai effectué une mise en forme conditionnelle afin que toutes les valeurs inférieures à 0 s'affichent en rouge et les valeurs supérieures ou égales à 0 en vert.
Il y a t'il une macro qui me permetterai de modifier l'ensemble de mes 400 fichiers en une seule fois ?

Merci d'avance,

6 réponses

Bidouilleu_R Messages postés 1209 Statut Membre 295
 
Bonjour,
dans ton cas .... il faut simplement recopier le format de ton modèle.
procède comme ça :
1) dans un fichier xl moi je l'appelle modelesav.xlsm parcequ'il contiendra cette macro
prend ton modèle initial puis ajoute lui cette macro.
2) place tous les fichiers que tu veux modifier dans un dossier et seulement ceux-là.
3) modifie la macro en indiquant le bon chemin ..moi j'ai mis c:\Data
4) fais un test avec 2 fichiers
5) lit les notes en gras
6) pense à mettre en résolu après.


Sub Modifie_Format_fichiers()
Dim fso, oDossier, oFichier, Fichier
Dim s As String
Set fso = CreateObject("Scripting.FileSystemObject")
Set oDossier = fso.getfolder("C:\Data")

Set oFichier = oDossier.Files
For Each Fichier In oFichier
Workbooks.Open Filename:=oDossier & "\" & Fichier
Windows("modelesav.xlsm").Activate
Cells.Select
Selection.Copy
Windows(Fichier).Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
Workbooks(Fichier).Save
Workbooks(Fichier).Close

Next



End Sub


A+
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
Bonjour,

je croyais que c'était un nouveau post donc j'ai répondu.
je vous souhaite une bonne journée.

Je vais me venger sur une entrecôte sauce au poivre ( tant pis pour les végétariens... )
A+
0
Gwen
 
Bonjour,
J'ai effectué la manip comme convenu mais j'ai un message d'erreur 400. Vois tu de quoi ça peut provenir ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
Bonjour,
je repost car j'avais une erreur
ce que je ne comprends pas c'est pourquoi tu ne suis pas les instructions
de Michel_m ? La réponse t'avais été donnée.
Et si tu as une réponse ... je veux bien la lire.

Ci-dessous ma correction à ma procédure.

Sub Modifie_Format_fichiers()
Dim fso, oDossier, oFichier, Fichier
Dim s As String
Set fso = CreateObject("Scripting.FileSystemObject")
Set oDossier = fso.getfolder("C:\Data")

Set oFichier = oDossier.Files
For Each Fichier In oFichier
Workbooks.Open Filename:=Fichier
Windows("modelesav.xlsm").Activate
Cells.Select
Selection.Copy
Windows(2).Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
Workbooks(2).Save
Workbooks(2).Close

Next



End Sub
0
Gwen
 
Bonjour,

Voilà seulement quelques jours que je me familiarise avec ce forum. Michel m'a effectivement donné une réponse pour copier les formules mais il me semble qu'il n'y en a pas pour les formats ou alors je ne regarde pas ou il faut.
Si mes démarches vous paraissent hasardeuses, ne soyez pas étonnés, le temps que je découvre les fonctions de ce site.

Merci,
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
C'est dommage de ne pas l'avoir dis dès le départ comme ça
1) jevoudrais recopier des formules 2) garder le format.

Ma procedure fait une copie du fichier modelesav.xlsm puis ouvre le 1er fichier parmi 400 (ou plus)
du repertoire c:\data ( à modifier...) puis colle seulement le format
enregistre le fichier le ferme et au suivant.

Spécifiquement, si les cellules que Michel_m à copier doivent prendre un format particulier
tu comprends sans doute que cela aurait pu être fait en même temps.

pour plus d'infos regarde aussi avec .interior.colorindex(n°decouleur)
A+
0