VBA ouvir modifier fermer des classeurs

Arpette

XLDnaute Impliqué
Bonsoir à toutes et tous,
suite à la modifation d'une feuille dans un classeur, je souhaiterais y insérer module qui aurait pour but de:
1 ) ouvrir les uns après les autres, tous les classeurs qui se trouvent dans un chemin c:\mes documents...
2 ) remplacer la feuil1 du classeur que je viens d'ouvrir par la feuil1 où il y a le module
3 ) enregistrer et fermer le classeur et ouvrir le second jusqu'à ce tous les classeurs du dossier aient été ouverts.
Je ne sais pas si c'est possible, j'ai 4 dossiers avec environ 150 classeurs chacun à rectifier :p
Merci votre aide
@+
 

job75

XLDnaute Barbatruc
Re : VBA ouvir modifier fermer des classeurs

Bonsoir Arpette,

Cela ne présente guère de difficultés, juste une histoire de 2 jolies petites boucles (blondes bien sûr).

Mais copier la même feuille sur 4 x 150 = 600 autres feuilles, ça me laisse assez perplexe quant à l'utilité...

A+
 

Arpette

XLDnaute Impliqué
Re : VBA ouvir modifier fermer des classeurs

Bonsoir job,
merci de t'intéresser une nouvelle fois à mon post. Il est vrai que cela peut paraitre énorme , mais il fait des contrôles tous les 3, 6, 12, 36 mois et il doit les garder.
Je veux que tous ses contrôles soient homogènes, il faut corriger le passé, de plus certains non pas la même structure en feuil1 alors il faut la remplacer.
J'ai trouvé un post de Pierrot, j'ouvre bien les classeurs, je désactive les macros mais je n'arrive pas à les supprimer. Après je vais les remplacer avec ce que tu m'a donné sur un plateau. Mais là moi sais pas comment faire, mais moi va chercher:confused:
Voici le code de Pierrot sur lequel je suis parti:
Code:
Option Explicit
Sub ouvrir_fichier()
Dim MonRepertoire As String, fichier As Object, f As Object, i As Integer
Set fichier = CreateObject("Scripting.FileSystemObject")
Application.EnableEvents = False

'Désactive les macros à l'ouverture du fichier,car j'ai Workbooks.open
'Le problème, je veux supprimer toutes les macros du fichier que je viens douvrir
'je ne sais comment faire

MonRepertoire = "C:\Documents and Settings\JFL CONTROLE\Bureau\Trames2\"
For Each f In fichier.GetFolder(MonRepertoire).Files
    If Right(f.Name, 4) = ".xls" Then Workbooks.Open MonRepertoire & f.Name
Application.EnableEvents = True
Next f
End Sub
Pour les boucles, je préfère les brunes...mais bon... une belle belle blonde :p
Merci de ton aide
@+
 

job75

XLDnaute Barbatruc
Re : VBA ouvir modifier fermer des classeurs

Bonjour Arpette,

Macro à mettre dans le code de la feuille à copier (clic droit sur l'onglet et Visualiser le code) :

Code:
Sub MaMacro()
Dim CheminDossier$, dossier, i As Byte, chemin$, nomfich$, o As Boolean
CheminDossier = "C:\Documents and Settings\JFL CONTROLE\Bureau\" 'à adapter
dossier = Array("Trames1", "Trames2", "Trames3", "Trames4") 'noms des dossiers
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'pour la supression des feuilles
For i = 0 To UBound(dossier)
  chemin = CheminDossier & dossier(i) & "\"
  nomfich = Dir(chemin & "*.xls*") '1er fichier du dossier
  While nomfich <> ""
    o = False
    On Error Resume Next
    If IsError(Workbooks(nomfich).Name) Then 'si le fichier n'est pas déjà ouvert, on l'ouvre
       Workbooks.Open chemin & nomfich
       o = True
    End If
    On Error GoTo 0
    With Workbooks(nomfich)
      .Sheets(1).Delete 'supprime la 1ère feuille
      Me.Copy Before:=.Sheets(1) 'copie la feuille source
      .Save 'enregistrement
      If o Then .Close 'si le fichier a été ouvert on le ferme
    End With
    nomfich = Dir 'fichier suivant du dossier
  Wend
Next
End Sub
Avec 600 feuilles à remplacer ça prendra un certain temps :rolleyes:

Je n'en ferai pas plus car je vais devoir m'absenter.

Edit : une précision évidente, les fichiers doivent toujours avoir au moins 2 feuilles...

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 079
Membres
103 112
dernier inscrit
cuq-laet