Ecriture dans plusieurs classeurs en même temps

Résolu/Fermé
Banshor Messages postés 10 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 6 mai 2014 - Modifié par Banshor le 6/05/2014 à 10:07
Banshor Messages postés 10 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 6 mai 2014 - 6 mai 2014 à 11:45
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 mai 2014 à 10:21
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 mercredi 30 avril 2014 Statut Membre Dernière intervention 6 mai 2014
Modifié par Banshor le 6/05/2014 à 10:33
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 6/05/2014 à 11:09
il faut mettre des parenthèses

Set wk = Workbooks.Open(Cells(1, 12) & "\" & File_Is)
0
Banshor Messages postés 10 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 6 mai 2014
6 mai 2014 à 11:45
Merci
0