Modifier des fichiers Excel en lot

Bonjour,

J'aimerais savoir s'il existe un utilitaire qui permettrait de modifier en lot plusieurs fichiers Excel sans les ouvrir un par un.

J'aimerais changer certains paramètres de cellules, validations de données, règles, contenu etc.. d'un seul coup dans plusieurs fichiers. le fichiers de base est un modèle, par la suite je crée des fichiers à partir de ce modèle que je nommes en numéros. J'ai choisi de ne pas fonctionner par feuillets pour des raisons pratiques. J'aurais eu de toute façon le même problème avec des feuillets, puisque il y aurait eu quand même plusieurs fichiers.

Le problème est que parfois je fais des modifications sur le modèle et du coup je dois faire cette modification sur chaque fichier créé depuis ce modèle, ce qui est fastidieux.

Si quelqu'un a une idée je suis preneur.

Merci d'avance infiniment!

Salut,

En logique ce code VBA devrait marcher :

Sub ModifierEnLot()
    Dim cheminDossier As String
    Dim fichier As String
    Dim classeur As Workbook
    Dim feuille As Worksheet

    ' Spécifiez le chemin du dossier contenant les fichiers
    cheminDossier = "C:\Chemin\Vers\Votre\Dossier\"

    ' Parcours tous les fichiers dans le dossier
    fichier = Dir(cheminDossier & "*.xlsx")
    Do While fichier <> ""
        ' Ouvre le fichier
        Set classeur = Workbooks.Open(cheminDossier & fichier)

        ' Modifie la cellule A1 dans la première feuille
        Set feuille = classeur.Sheets(1)
        feuille.Range("A1").Value = "Nouvelle valeur"

        ' Enregistre et ferme le fichier
        classeur.Close SaveChanges:=True

        ' Passe au fichier suivant
        fichier = Dir
    Loop
End Sub

bien sur il faut l'adapter (actuellement il ne change que le contenue de la case A1 pour des fichier enregistré en xlsx (sans macro)

Merci beaucoup pour ce code VBA, j'ai fait un test ça marche bien sur un fichier vierge mais pas sur mes fichiers que j'aimerais modifier. Y aurait-il quelque chose qui ne joue pas avec l'activation des macros ou le nom des classeurs?

Bonjour

j'ai fait un test ça marche bien sur un fichier vierge mais pas sur mes fichiers que j'aimerais modifier.

Mais encore ? Message d'erreur ?

J'imagine que tu as modifié le code pour tester la partie modification...

Désolé, en fait ça marche, ç'est moi qui dit n'importe quoi. Par contre ça doit être plus compliqué de faire un code VBA pour modifier des formats de cellules, des listes (validation des données) ou la mise en forme conditionnelle je suppose..

bonjour,

en repartant de la proposition de Parrish

Sub ModifierEnLot()
    Dim cheminDossier As String
    Dim fichier As String
    Dim classeur As Workbook
    Dim feuille As Worksheet
    Set modele = ThisWorkbook.Sheets("modele") 'le modele se trouve dans le classeur contenant cette macro
    ' Spécifiez le chemin du dossier contenant les fichiers
    cheminDossier = "C:\Chemin\Vers\Votre\Dossier\"

    ' Parcours tous les fichiers dans le dossier
    fichier = Dir(cheminDossier & "*.xlsx") 'on modifie tous les fichiers xlsx dans le dossier, attention !!!!!!!
    Do While fichier <> ""
        ' Ouvre le fichier
        Set classeur = Workbooks.Open(cheminDossier & fichier)

        ' Modifie la cellule A1 dans la première feuille
        Set feuille = classeur.Sheets(1)
       feuille.Range("A1").Value = "Nouvelle valeur" ' edit ajout de cette instruction comme mentionné dans mon message ci-dessous
       modele.Cells.Copy
       feuille.Cells.PasteSpecial xlPasteFormats 'copie les formats, y compris MFC
       feuille.Cells.PasteSpecial xlPasteValidation 'copie les listes de validation

        ' Enregistre et ferme le fichier
        classeur.Close SaveChanges:=True

        ' Passe au fichier suivant
        fichier = Dir
    Loop
End Sub

Attention ! prendre une copie des fichiers avant de lancer la macro

Merci h2so4 pour cette proposition, est-ce que je dois mettre le nom de la feuille à la place de "modèle" ?

J'aimerais savoir où est la modification de la cellule A1 dans ton code?.

bonsoir,

Merci h2so4 pour cette proposition, est-ce que je dois mettre le nom de la feuille à la place de "modèle" ?

J'aimerais savoir où est la modification de la cellule A1 dans ton code?.

modele est le nom de ta feuille modèle dans ton fichier de base qui contient tes adaptations de format et de liste de validation. ce modèle sera utilisé pour mettre à jour en masse (par lot) tes autres classeurs.

pour A1, je n'avais pas repris le code, mais je viens de l'ajouter dans le code que j'ai fourni précédemment.

Rechercher des sujets similaires à "modifier fichiers lot"