Création de macro supression de ligne
Résolu/Fermé
A voir également:
- Création de macro supression de ligne
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Apparaitre hors ligne instagram - Guide
- Creation compte gmail - Guide
- Aller à la ligne excel - Guide
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
13 avril 2010 à 09:02
13 avril 2010 à 09:02
Bonjour,
Effectivement, ce sujet a déjà été abordé.
Pour cela il nous faut tout d'abord une boucle qui va "regarder" dans chaque cellule de ta colonne F.
Boucle que l'on va faire commencer par la dernière ligne pour remonter jusqu"à la 2ème. Pourquoi dans ce sens? Parce que lors de la suppression complète d'une ligne, le num de la ligne ou l'on se trouve "remonte" d'un "cran" et donc en commençant par le début, il va nous en oublier.
Pour une boucle, il faut tout d'abord connaitre la dernière ligne :
Pour la boucle, on a besoin d'une deuxième variable qui va changer à chaque étape et représentera le numéro de la ligne sur laquelle on se situe :
Pour faire fonctionner ce code :
TESTEZ LE SUR UN FICHIER EXEMPLE à partir du moment ou on "delete", mieux vaux perdre 5 minutes qu'une base de données... Les "manipulations" réalisées par une macro sont définitives (à moins de ne pas enregistrer les modifications)...
Dans votre fichier, taper : ALT+F11
Dans la fenêtre Visual Basic ainsi ouverte : Insertion/Modules.
Copier coller ce code dans la fenêtre du module ainsi créé.
Fermer visual basic puis :
ALT+F8 choisir "effacelignes" et cliquer sur exécuter.
Effectivement, ce sujet a déjà été abordé.
Pour cela il nous faut tout d'abord une boucle qui va "regarder" dans chaque cellule de ta colonne F.
Boucle que l'on va faire commencer par la dernière ligne pour remonter jusqu"à la 2ème. Pourquoi dans ce sens? Parce que lors de la suppression complète d'une ligne, le num de la ligne ou l'on se trouve "remonte" d'un "cran" et donc en commençant par le début, il va nous en oublier.
Pour une boucle, il faut tout d'abord connaitre la dernière ligne :
Dim derniereligne As Integeron détermine une variable comme étant un nombre entier (un numéro de ligne est forcément entier)
derniereligne = Sheets("Feuil1").Range("A65536").End(xlUp).Rowon lui affecte ici le numéro de la dernière ligne de la feuille Feuil1 colonne A
Pour la boucle, on a besoin d'une deuxième variable qui va changer à chaque étape et représentera le numéro de la ligne sur laquelle on se situe :
Sub effacelignes() Dim i As Integer Dim derniereligne As Integer derniereligne = Sheets("Feuil1").Range("A65536").End(xlUp).Row For i = derniereligne To 2 Step -1 'de la dernière à la 2ème ligne (step -1 signifie que l'on enlève 1 à la valeur de i à chaque étape) If Sheets("Feuil1").Range("F" & i).Value <> 333 Then 'Si F... est différent de 333 Sheets("Feuil1").Range("F" & i).EntireRow.Delete 'alors on supprime la ligne End If 'fin du test "SI" Next i 'i suivant (ligne précédente) End Sub
Pour faire fonctionner ce code :
TESTEZ LE SUR UN FICHIER EXEMPLE à partir du moment ou on "delete", mieux vaux perdre 5 minutes qu'une base de données... Les "manipulations" réalisées par une macro sont définitives (à moins de ne pas enregistrer les modifications)...
Dans votre fichier, taper : ALT+F11
Dans la fenêtre Visual Basic ainsi ouverte : Insertion/Modules.
Copier coller ce code dans la fenêtre du module ainsi créé.
Fermer visual basic puis :
ALT+F8 choisir "effacelignes" et cliquer sur exécuter.