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
- Aller à la ligne excel - Guide
- Suppression compte gmail - 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 !