Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro suppression feuil1 dans tous les classeurs d'un répertoire

  • Initiateur de la discussion Initiateur de la discussion vincent76
  • 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 !

V

vincent76

Guest
Bonjour à tous

Je viens de récupérer 700 fichiers xls, dans lesquelles il y a 2 feuilles l'une vide (Feuil1), et l'autre contenant les données.
Je cherche donc à supprimer dans tous ces classeurs la Feuil1

merci pour vos contributions
 
Re : Macro suppression feuil1 dans tous les classeurs d'un répertoire

Bonjour
voici un code à tester -fonctionne avec excel 2003-.
Code:
Sub OpenAllInDir()
Application.ScreenUpdating = False
'Ouverture de tous les fichiers contenus dans un dossier
Dim Directory As String, I&, Actuel As String
Dim Fich As String, EstOuvert As Boolean
EstOuvert = False
Actuel = ThisWorkbook.Name
'LE dossier ou est effectuée la recherche
'Directory = "C:\Documents and Settings\Papa\Mes documents\"
Directory = ThisWorkbook.Path
With Application.FileSearch
    .LookIn = Directory
    .FileType = msoFileTypeExcelWorkbooks 'Type de document excel
 ' Affiche les documents trouves dans ce directory,path + filename
    If .Execute > 0 Then
    MsgBox "" & .FoundFiles.Count & _
        " fichiers trouvés."
'Si tu veux checker le nom des fichiers qu'il ouvre,
'tu enleves les ' devant les 3 lignes suivantes
'Il affichera le nom des fichiers qu'il va ouvrir,
'puis modifier
'For i = 1 To .FoundFiles.Count
'    MsgBox .FoundFiles(I)
'Next i
    Else
        MsgBox "Aucun fichier  trouvé."
    End If
' Ouvre les documents trouves
For I = 1 To .FoundFiles.Count
 Fich = .FoundFiles(I)
 'récupération du nom du fichier
 Fich = Right((Fich), Len(Fich) - InStrRev(Fich, "\"))
'Teste si le fichier à ouvrir est déjà ouvert
If Fich = Actuel Then
     EstOuvert = True
     Else
'ouvre le classeur
    Workbooks.Open Fich
    EstOuvert = False
Application.Goto Reference:=Feuil1.Cells(2, 1), scroll:=False
Sheets(1).delete
activeworkbook.close true
    End If
 Next I
End With
End Sub

Cordialement
Flyonets
 
Re : Macro suppression feuil1 dans tous les classeurs d'un répertoire

merci de cette prompte réponse
ca marche....presque.
"Erreur 1004 - erreur définie par l'application ou l'objet"
sur la ligne= Workbooks.Open Fich

j'ai essayé de trouvé la cause.....sans succés
 
Re : Macro suppression feuil1 dans tous les classeurs d'un répertoire

Bonjour à tous


Essaie ceci (test oOK chez moi)
Pour tester, lancer cette macro : Eraser_I_Take_No_Prisonners
Code:
Private Sub nettoieXLS(chemin$)
Dim nfic$
nfic = Dir(chemin & "*.xls")
Application.DisplayAlerts = False
  Do While nfic <> ""
      Workbooks.Open chemin & nfic
       With Workbooks(nfic)
       .Sheets(1).Delete
      .Close True
      End With
      nfic = Dir
  Loop
End Sub
VB:
Sub Eraser_I_Take_No_Prisonners()
Application.ScreenUpdating = False
nettoieXLS "c:\tempopo\" 'ici mettre le nom du dossier à traiter
End Sub

PS/ ATTENTION testes d'abord sur un répertoire de test contenant des fichiers de test.
 
Dernière édition:
Re : Macro suppression feuil1 dans tous les classeurs d'un répertoire

re bonjour a tous et toutes

bon ben ca marche pas....
je n'arrive pas a faire fonctionner ce code....
desolé je dois etre une buse....
 
Re : Macro suppression feuil1 dans tous les classeurs d'un répertoire

RE


Pour tester le code de mon précédent message
1) Créer un dossier jaune dans C: que tu nommes tempopo

2)Ensuite va dans ce dossier en double-cliquant dessus et fais un clic droit et choisis : Nouvelle Feuille Excel ou nouveau classeur (ce la peut varier selon les PC)

3) Fais cela 2 ou trois fois
Tu auras donc 3 ou quatre fichiers excel présents dans ce dossier.

4) Ensuite ouvres Excel et copie le code de mon précédenet message dans un module que tu auras inséré dans un nouveau classeur puis lances la macro Eraser_I_Take_No_Prisonners

5) Ferme Excel et retournes voir les fichiers dans c:\tempopo et ouvres les dans Excel un par un.
Tu verras que la feuille 1 aura été effacé dans chaque fichier.

EDITION: voir ci-dessous copie écran
 
Dernière édition:
Re : Macro suppression feuil1 dans tous les classeurs d'un répertoire

Bonjour
merci pour l'explication!
ca marche plutot pas mal en fait!
sauf, car il y a a toujours un sauf, la macro bloque quand il n'y a pas de feuilles de feuil1
je m'excuse d'insister, mais il y a un moyen de contourner cette petite contrariété?

merci d'avance
 
- 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

Réponses
9
Affichages
884
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…