Suppression ligne multi classeur

Résolu
stitchbouck Messages postés 117 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 18 avril 2024 - 3 août 2023 à 16:53
stitchbouck Messages postés 117 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 18 avril 2024 - 8 août 2023 à 08:19

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

A voir également:

2 réponses

via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703
4 août 2023 à 11:45

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


1
stitchbouck Messages postés 117 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 18 avril 2024 2
8 août 2023 à 08:19

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 !

0