Ecriture dans plusieurs classeurs en même temps

Résolu
Banshor Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
Banshor Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis en train de créer un processus qui à pour but grâce à une macro de :

- Ouvrir tous les fichiers Excel contenu dans un même dossier
- Ecrire un contenu spécifique contenu dans un fichier a part contenant la macro dans deux cellules différentes dans tous les fichiers ouverts. Par exemple dans mon fichier contenant la macro, on a C17="Bonjour" ; F17="Au revoir" et que ceci soit copier dans les cases G20 et H20 de chaque fichiers ouvert.
- Sauvegarder tous les fichiers
- Fermer tous les fichiers (même celui de base à la limite, c'est pas vraiment important)

Pour l'instant j'arrive à ouvrir tous les fichiers Excel contenu dans un même dossier
Mon code ressemble à cela (copier d'internet et modifier afin de pouvoir l'utilisé dans mon cas):

Sub Ouvre_Tous_Fichiers()
'Ouvre tous les fichiers .xls dans la cellule L1
Dim File_Is As String
File_Is = Dir(Cells(1, 12) & "\*.XLS")
Do Until File_Is = ""
Workbooks.Open Cells(1, 12) & "\" & File_Is
File_Is = Dir
Loop
End Sub


Pouvez vous m'aider pour les prochaines étapes ? Je cherche en parallèle. Je vous tiens au courant si je trouve quelque chose qui me semblerai utile. J'utilise Excel 2003.

Merci,


A voir également:

2 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Pourquoi ouvrir tous les fichiers avant de faire le traitement ? Pourquoi ne pas le faire fichier après fichier ?

Sub Ouvre_Tous_Fichiers()
'Ouvre tous les fichiers .xls dans la cellule L1
Dim File_Is As String
'Objet Workbook
Dim wk As Workbook

File_Is = Dir(Cells(1, 12) & "\*.XLS")
Do Until File_Is = ""
set wk = Workbooks.Open Cells(1, 12) & "\" & File_Is
wk.sheets(1).Range("G20").Value = Thisworkbook.Sheet(1).Range("C17").Value
wk.sheets(1).Range("H20").Value = Thisworkbook.Sheet(1).Range("F17").Value
wk.Save
wk.Close
Set wk = Nothing
File_Is = Dir
Loop
End Sub

0
Banshor Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Je débute en Basic. Je me suis dis que si j'ouvrais tous les fichiers ce serait plus simple de trouver quelque chose qui "Ecrit pour tout les fichiers ouvert". Mais c'est vrai que je ne sais pas vraiment si cela est utile.

Dans le code que tu m'as fourni, j'ai la ligne :

set wk = Workbooks.Open Cells(1, 12) & "\" & File_Is


de surligné en rouge et qui me provoque une erreur. Et merci :)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
il faut mettre des parenthèses

Set wk = Workbooks.Open(Cells(1, 12) & "\" & File_Is)
0
Banshor Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Merci
0