Insérer une ligne dans chaque fichier du dossier

  • Initiateur de la discussion Initiateur de la discussion shenmicke
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

shenmicke

XLDnaute Junior
Voilà, j'aimerai insérer une ligne dans chaque fichier d'un dossier.
Je pense ne pas en être très loin car pour le moment le code insère des lignes que dans le fichier d'où je lance la macro.
Par exemple: j'ai 10 fichiers dans mon dossier, il va m'insérer 10 lignes dans mon fichier d'où je lance la macro alors que je voudrais qu'il insère qu'une seule ligne dans tous les fichiers du dossier !

Code:
Option Explicit

Sub Macro()

Dim chem As String
Dim fs, d, f1, fd
Dim cl As Workbook
Dim cel As Range

chem = ThisWorkbook.Path & "\" 'définit le chemin, ici c'est le dossier courant
Set fs = CreateObject("Scripting.FileSystemObject") 'définit la variable fs (Fichiers Système)
Set d = fs.GetFolder(chem) 'definit la variable d (dossier)
Set fd = d.Files 'définit la variable fd (Fichiers du Dossier)
    
For Each f1 In fd 'boucle sur tous les fichier du dossier
    
If f1.Name <> "Decleor - TOTAL.xls" Then
Workbooks.Open chem & f1.Name

    End If

Next f1

For Each cl In ThisWorkbook

Rows(10).Insert

Next cl
              
For Each cl In Workbooks

If cl.Name <> ThisWorkbook.Name Then cl.Close SaveChanges:=True
    
Next cl
               
End Sub

Merci de votre aide !
 
Re : Insérer une ligne dans chaque fichier du dossier

Bonjour,

j'ai 10 fichiers dans mon dossier, il va m'insérer 10 lignes dans mon fichier d'où je lance la macro alors que je voudrais qu'il insère qu'une seule ligne dans tous les fichiers du dossier !

normal l'insertion se fait dans "thisworkbook" qui représente le classeur dans lequel est exécuté le code de la macro....

remplace :
Code:
For Each cl In ThisWorkbook
Rows(10).Insert
Next cl

par :
Code:
ActiveWorkbook.activeSheet.Rows(10).Insert

l'insertion se fera sur la feuille active du classeur actif... pas sur que cela s'inscrive bien dans ton process, mais ses lignes pourront te faire avance, enfin j'espère....

bon après midi
@+
 
Re : Insérer une ligne dans chaque fichier du dossier

Bonjour schenmicke,

1) Il manque une notion dans ton code : les feuilles
Un classeur peut contenir plusieurs feuilles, veux-tu traiter toutes les feuilles de tous les classeurs ou bien ici tes classeurs ne contiennent qu'une feuille ?

2) Que veux-tu essayer de faire avec ta boucle ?

Code:
For Each cl In ThisWorkbook

Rows(10).Insert

Next cl
Je ne comprend pas bien

Edit : bing, Salut Pierrot 🙂
 
Re : Insérer une ligne dans chaque fichier du dossier

bonjour tototiti2008,

1) mes classeurs n'ont qu'une feuille en effet
2) je voulais boucler sur tous les workbooks car je n'arrivais pas à insérer des lignes à l'ouverture des classeurs 😀
 
Re : Insérer une ligne dans chaque fichier du dossier

Re,

En modifiant seulement

Code:
For Each cl In ThisWorkbook

Rows(10).Insert

Next cl

en

Code:
For Each cl In Workbooks

cl.Activesheet.Rows(10).Insert

Next cl

ça devrait le faire, mais l'ensemble du code devrait pouvoir s'écrire

Code:
Sub Macro()

Dim chem As String
Dim fs, d, f1, fd
Dim cl As Workbook

chem = ThisWorkbook.Path & "\" 'définit le chemin, ici c'est le dossier courant
Set fs = CreateObject("Scripting.FileSystemObject") 'définit la variable fs (Fichiers Système)
Set d = fs.GetFolder(chem) 'definit la variable d (dossier)
Set fd = d.Files 'définit la variable fd (Fichiers du Dossier)
    
For Each f1 In fd 'boucle sur tous les fichier du dossier
    
If f1.Name <> "Decleor - TOTAL.xls" Then
set cl = Workbooks.Open (chem & f1.Name)
cl.activesheet.rows(10).insert
cl.close True
    End If

Next f1
Set f1 = nothing
Set fd = nothing
set d = nothing
set fs = nothing
set cl = nothing              
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
177
Réponses
3
Affichages
665
Réponses
3
Affichages
582
Retour