VBA : ouvrir tous les fichiers xls du répertoire courant

  • Initiateur de la discussion Initiateur de la discussion C@thy
  • 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 !

C

C@thy

Guest
Bonjour tout le monde,

c'est tout bête, mais j'ai oublié comment on fait en VBA pour ouvrir tous les fichiers .xls du répertoire courant

quelquechose comme :

for each wb in workbooks... j'ai fait une recherche dans le forum mais je dois mal poser la question car j'ai plein de réponses mais qui ne correspondent pas.

en fait je veux supprimer tous les onglets feuil3 de tous les fichiers .xls du répertoire. Quelqu'un(e) peut-il (elle) venir à mon secours?

Merci pour votre aide et à bientôt

C@thy (je ne suis pas dans mon bureau donc je n'ai pas le lien du bip bip sous la main, mais il est sur TiVéri rubrique image des excelliennes.

Biz et bonne journée
 
Bonjour,

tu trouveras un exemple dans le fichier joint mais je fais l'ouverture dans un sous-répertoire et non le répertoire courant (qui contient le fichier qui contient la macro et qui voudra donc s'ouvrir lui-même)


Sheets("Feuil3").Select
ActiveWindow.SelectedSheets.Delete


A+
Eric
 
re

voilà le code qui va chercher les fichiers du sous répertoire Données, les parties critère, tri et copier coller ne te concernent pas :

chemin = ThisWorkbook.Path & "\Données\"
nomfichier = ActiveWorkbook.Name
critère = "dupont"
'
Set fs = Application.FileSearch
With fs
.LookIn = chemin
If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
MsgBox "Ce dossier contient " & .FoundFiles.Count & _
" fichier(s) répondant aux critères."
For i = 1 To .FoundFiles.Count
fichierlu = .FoundFiles(i)
MsgBox .FoundFiles(i)
Workbooks.Open FileName:=fichierlu
fenêtrelue = ActiveWorkbook.Name
Range("a1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:=critère
' taille de la sélection à copier
Range("a65536").Select
Selection.End(xlUp).Select
If ActiveCell.Value <> 1 Then
dernière_ligne = ActiveCell.Row
Range("A2:E" & dernière_ligne).Select
Selection.Copy
Windows(nomfichier).Activate
'mettre à la suite
Range("a65536").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
End If
Windows(fenêtrelue).Activate
' Selection.AutoFilter Field:=2
Application.CutCopyMode = False
Selection.AutoFilter
ActiveWindow.Close SaveChanges:=False
Windows(nomfichier).Activate
Range("A1").Select

Next i
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
End With

si dans le répertoire tu as différents fichiers (xls et autres), il faudra sans doute adapter

A+
Eric
 
Merci EricS,
ou la la, y'a beaucoup trop de code pour ce que je veux faire :

juste ouvrir tous les fichiers excel et supprimer l'onglet feuil3 si ce nom existe.

quelqu'un a-t-il (elle) plus simple???

MERCI

C@thy
 
RE

tu sais, beaucoup d'hypothèses (tous les fichiers XL, si feuil3 existe) te génère du code...

essaie le fichier joint (si il passe) sinon le code suit

tu places le fichier dans un répertoire et tu mets tous les autres dans un sous répertoire Données (fichiers xl, textes....) normalement seul les xl seront touchés

code :

Sub suppression()
chemin = ThisWorkbook.Path & "\Données\"
nomfichier = ActiveWorkbook.Name
'
Set fs = Application.FileSearch
With fs
.LookIn = chemin
If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
fichierlu = .FoundFiles(i)
If Right(fichierlu, 4) = ".xls" Then
Workbooks.Open FileName:=fichierlu
existe = 0
For j = 1 To Sheets.Count
If Sheets(j).Name = "Feuil3" Then existe = j
Next j
Application.DisplayAlerts = False
If existe <> 0 Then
Sheets(existe).Delete
Application.DisplayAlerts = True
ActiveWindow.Close SaveChanges:=True
End If
Windows(nomfichier).Activate
Range("A1").Select
End If
Next i
Else
MsgBox "Aucun fichier n'a été trouvé dans Données."
End If
End With

End Sub



A+

Eric
 

Pièces jointes

Salur C@thy sans bipbiphelas, Eric

Ci joint une proposition (XL2000/win98.2)

Home.xls doit se trouver dans le m^me répertoire que les classeurs à travailler

J'ai écrit une sous-macro pour utiliser le systme à d'autres boulots avec la fonction "dir"

A+

Michel
 

Pièces jointes

Merci michel_m, ça fonctionne bien. J'ai pu lire la P.J. car je suis revenue à mon bureau.

Biz et @+

C@thy
BipBip.gif
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
861
Réponses
15
Affichages
1 K
Retour