Vider des fichiers de leurs contenus VBA

Résolu
ben -  
 ben -
Bonjour,
Voici ce que je voudrais faire : je voudrais que lorsque je clique sur un bouton de mon interface VBA sous Excel tous les fichiers Excel (de toute façon il n'y a que ça) de mon dossier soient vidés. Pour cela j'ai écrit un code qui liste "mes idées" sur la manière de procédé mais il est surement bourré de fautes qui me dépassent.

Private Sub CommandButton3_Click()

ChDir "G:\PPV\_Benjamin\2eme programme\fichiers obtenus\"

For Each Excel.Application In ChDir 'pour chaque fichier du dossier ci-dessus
Sheets.Add 'j'ajoute une feuille
For i = 1 To Sheets.Count 'et je supprime toutes les autres
If Sheets(i).Name <> "Feuil1" Then
Sheets(i).Delete
End If
Next i
Next

MsgBox "les fichiers ont été vidés"

End Sub

j'ai une erreur dès la ligne "for each..."
erreur de compilation argument non facultatif

J'ajoute une feuille car il faut que la dernière feuille restante est un nom différent de celles déjà dans le fichier.

Si quelqu'un pouvait m'aider je lui serai très reconnaissant,
Merci

1 réponse

  1. ben
     
    C bon j'ai trouvé une réponse en remaniant un code trouver sur internet, voici la réponse à mon problème si un jour quelqu'un en a besoin :

    Sub VideFichier()

    Const Chemin = "G:\...........\"

    Dim oFs As Variant
    Dim NomFichier As String
    Dim I As Integer
    Application.DisplayAlerts = False
    Set oFs = Application.FileSearch

    With oFs
    .LookIn = Chemin
    .FileType = msoFileTypeExcelWorkbooks
    If .Execute > 0 Then
    'MsgBox "Il y a " & .FoundFiles.Count & " fichier(s) de trouvé."
    For I = 1 To .FoundFiles.Count
    NomFichier = .FoundFiles(I)
    If Right(NomFichier, 8) = "abcd.xls" Then
    Workbooks.Open Filename:=NomFichier
    Workbooks(Right(NomFichier, 12)).Activate
    For Each mafeuille In Worksheets
    If mafeuille.Name <> "ne pas supprimer" And Worksheets.Count > 1 Then

    mafeuille.Delete
    End If
    Next
    ActiveWorkbook.Close True
    End If
    Next I
    Else
    MsgBox "Aucun fichier n'a été trouvé."
    End If
    End With

    'MsgBox "Fin de recherche"
    Application.DisplayAlerts = False
    End Sub

    Private Sub CommandButton3_Click()

    Dim mafeuille As Object
    Call VideFichier

    MsgBox "les fichiers ont été vidés"

    End Sub

    ici je supprime tous les onglets qui ne s'appellent pas "ne pas supprimer"
    voilà!
    0