cs_debutantvba
Messages postés9Date d'inscriptionsamedi 10 novembre 2007StatutMembreDernière intervention18 novembre 2007
-
10 nov. 2007 à 20:44
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)