Suppression ligne sous condition

cs_debutantvba Messages postés 9 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 18 novembre 2007 - 10 nov. 2007 à 20:44
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 11 nov. 2007 à 03:31
Bonjour à tous, bonsoir plutôt ...
et merci d'avance pour les éventuelles réponses apportées ...
Je suis à la recherche d'infomations ou d'un code directement rédigé ;) pour la suppression d'une ligne sous certaines conditions sous VBA
Imaginons ma feuille Excel : 7 colonnes plusieurs lignes (bcp)
je voudrai parcourir la colonne 5 par exemple et si une cellule contient la valeur "M" par exemple je garde cette ligne avec toutes les informations qui y étaient
et je supprime les lignes d'avant sauf la 1ere (celle des titres de colonne)
Bien sur, la valeur en question peut apparaitre plusieurs fois dans la colonne 5
Une boucle qui parcourt les différentes celllules doit etre necessaire mais étant plus qu'un débutant en prog VBA, je ne sais pas trop par où commencer, ni si j'utilse une syntaxe correcte .
Je seche surtout sur comment exprimer en prog la condition et supprimer une ligne.

Merci.

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 nov. 2007 à 03:21
Il y a une catégorie pour les questions VBA --> Modifiée

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 nov. 2007 à 03:31
Salut
En VBA, quand tu sais le faire à la main, tu sais le programmer, du moins, ça donne les bases :
- Menu Outils, Macro, Enregistrer ...
- Tu fais les manips à la main comme :
   - Sélectionner la colonne 5 entière
   - Aller dans Edition, Rechercher, saisir le M
   - Mettre les paramètres pour lui dire de ne chercher que parmi les cellules sélectionnées
   - Suivant
   Et là, il aura trouvé le premier M
Stoppe l'enregistrement macro et va voir dans le code VBA de la macro ainsi enregistrée : Tu découvrira la syntaxe qui correspond aux manips que tu as fait.
Ajoute derrière une ligne pour rechercher qu'elles sont les coordonnées de la cellule active pour savoir sur quelle ligne tu es --> Variable X. (je n'ai plus la syntaxe en tête, mais ça doit se trouver facilement dans l'aide ou parmi les sources/questions forum du site)
Fait le même genre de manip d'enregistrement macro pour la sélection de la ligne 2 à X (la valeur trouvée) et tu auras la syntaxe pour sélectionner un bloc de cellule. Suffira de repérer dans cette instruction l'endroit où se retrouve le numéro de la ligne finale et remplace-le par ton paramètre X.

Voilà, tu as les 3 ou 4 instructions nécessaires pour Rechercher, Sélectionner, Supprimer.
Pour recommencer la manip, suffit de relancer la commande.
Tu peux le faire par programme, bien sûr, avec une boucle Do-Loop (voir l'aide ou les sources ou les questions du forum).
Il faudra seulement savoir quand arrêter de reboucler : C'est quand la recherche dira qu'elle n'a pas trouvée de M.
Je pense que dans ce cas, ta variable X recevra 0 ... à tester

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous