Suppression ligne multi classeur
Résolustitchbouck Messages postés 137 Statut Membre -
Bonjour,
Je cherche à supprimer des lignes selon le critère (différent de "01"), si possible sur l'ensemble d'un dossier contenant plusieurs fichiers Excel.
Le critère se trouve toujours dans la colonne "A" de chaque feuille, et ce sur chaque fichier (6 fichiers actuellement). Il peut y avoir un nombre différent de feuille dans les fichiers, il peut y avoir plus de 6 fichiers. Le dossier ne contient QUE des fichiers Excel que je veux manipuler.
Supprimer dans une même feuille, j'ai trouvé :
Sub effacer()
dl = Range("A65356").End(xlUp).Row
For n = dl To 2 Step -1
If Range("A" & n) <> "01" Then Range("A" & n).EntireRow.Delete
Next n
End Sub
Merci à @via55 StatutMembre, j'ai repris son travail sur un autre sujet et je l'ai adapté à ma première feuille d'un de mes fichiers.
Mais comment appliquer cela à tout le classeur ? Régler ce point est déjà super.
Si en plus, une solution existe pour appliquer le code à l'ensemble des fichiers d'un dossier depuis un seul fichier Excel... (UN fichier pour les contrôler tous ! haha !), ben ça serait encore plus fort. et encore plus pratique.
Un grand merci à vous, et en espérant être compréhensible.
Windows / Edge 115.0.1901.188
- Suppression ligne multi classeur
- Forcer suppression fichier - Guide
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Suppression compte gmail - Guide
- Formulaire en ligne de meta - Guide
2 réponses
Bonjour
Heureux que mon travail ait pu t’être utile
Pour boucler sur toutes les feuilles d'un classeur :
For n = 1 To Sheets.Count Sheets(n).Select Next
Il suffit ensuite d'insérer ta macro d'effacement avant le Next
Pour boucler sur tous les classeurs d'un dossier :
https://excelcorpo.com/ouverture-de-tous-les-classeurs-a-partir-dun-dossier-avec-excel-vba/
Cdlmnt
Via
Bonjour,
super merci beaucoup !!
Au final ça donne :
Sub OuvertureTousClasseurs()
'Étape 1: Déclaration des variables
Dim MesFichiers As String
'Étape 2: Indication du répertoire cible
MesFichiers = Dir("chemin accès jusqu'au dossier\*.xlsx")
Do While MesFichiers <> ""
'Étape 3: Ouvrez plus de classeurs
Updatingscreen = False
Workbooks.Open "chemin accès jusqu'au dossier\" & MesFichiers
For b = 1 To Sheets.Count
Sheets(b).Select
dl = Range("A1048576").End(xlUp).Row
For n = dl To 2 Step -1
If Range("A" & n) <> "01" Then Range("A" & n).EntireRow.Clear 'clear va plus vite que delete, dans mon cas ça suffit car tout est trié
Next n
Next b
'Exécution de certains codes
MsgBox ActiveWorkbook.Name 'perso je l'ai désactivé
ActiveWorkbook.Close SaveChanges:=True
'Étape 4: Le fichier suivant du dossier
MesFichiers = Dir
Loop
End Sub
Ca fonctionne très bien. par contre une fois fait, vaut mieux que je relance mon pc car je me retrouve avec des lenteurs...
Merci à tous !