Ouvrir plusieurs fichiers d'un dossier et y supp. des lignes

moseca Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je voudrais une macro qui ouvrent chaque fichier d'un dossier et supprime les ligne selon une condition (valeur de la colonne A = X) puis les referme. J'ai une macro qui ouvre les fichiers mais ne fait aucune action, les lettre X ne sont pas enlevées.

Voici la macro :

Sub Suppression_dones_boucles()
'


Dim ClasseurSource As Workbook
Set ClasseurSource = ThisWorkbook

Dim N As Name
Dim i As Long

Dim chemin As String
chemin = "C:\Users\*.*"

ChDir chemin
RetVal = Application.Dialogs(xlDialogOpen).Show(chemin & "\*.*")
'ouverture de la boite de dialogue
'Ce bout de code sert à montrer à la macro le chemin du dossier des fichiers
If RetVal = True Then Exit Sub 'Pressez "annuler" si le chemin est CORRECT


' Turn off screen updating.
Application.ScreenUpdating = False

'Y a t'il des fichiers dans le répertoire ?

If Dir(chemintypedonnees) <> "" Then
ClasseurSource.Activate

'Gérer le répertoire de fichiers excel
fichier = Dir(chemintypedonnees)
Do While fichier <> ""
Set wbsource = Workbooks.Open(fichier) 'open the file
'activation de la première feuille du fichier excel. Cela peut etre modifié
Sheets(1).Activate

Worksheets(1).Activate

End Sub
For i = 20 To 2 Step -1

If Cells(i, 1).Value = "X" Then


Rows(i).EntireRow.Delete


End If

Next j
Next i

Application.Calculation = xlCalculationAutomatic





'***************************************************
wbsource.Close True 'close the current source file and save
fichier = Dir 'go to next file in the directory
Loop 'restart the process with next file

Else
Application.ScreenUpdating = True
MsgBox "Aucun fichier présent!!!"
Exit Sub
End If

Application.ScreenUpdating = True
A voir également:

3 réponses

Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Il me semble que l'instruction [End Sub] n'est pas au bonne emdroit:

Worksheets(1).Activate

End Sub
For i = 20 To 2 Step -1

If Cells(i, 1).Value = "X" Then
0
moseca Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

C'est une erreur de ma part, lorsque je copiais la macro, mais ce n'est pas ça le problème.
En mettant le End Sub à la toute fin de la macro, le problème demeure.

Merci.
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Ou avez-vous mis le End Sub ?
Merci de poster le code complet en utilisant la balise ; exemple
Sub Suppression_dones_boucles()
Dim ClasseurSource As Workbook
Set ClasseurSource = ThisWorkbook

Dim N As Name
Dim i As Long
Dim chemin As String
chemin = "C:\Users\*.*"
ChDir chemin
RetVal = Application.Dialogs(xlDialogOpen).Show(chemin & "\*.*")
'ouverture de la boite de dialogue
'Ce bout de code sert à montrer à la macro le chemin du dossier des fichiers
If RetVal = True Then Exit Sub 'Pressez "annuler" si le chemin est CORRECT


' Turn off screen updating.
Application.ScreenUpdating = False

'Y a t'il des fichiers dans le répertoire ?

0