Bonjour,
Je dois traiter un tres long fichier de données (une balance comptable), et je souhaite pouvoir supprimer les lignes superflues à l'aide d'un compteur, je m'explique:
Mon ficher comporte 4 colonnes, dont la première est un libellé (nombre entre 10000000 et 99999999).
Je n'ai besoin que des lignes dont le libellé est compris entre 600000000 et 799999999.
Le seul problème est que je souhaiterais créer une macro qui me permette de traiter ce type de fichier de la même manière selon les années, et le nombres de lignes comportant ces libellés peut varier.
Je sais utiliser l'enregistreur de macros, mais ne maitrise pas le code VBA. Voila ce que j'ai fait jusqu'ici:
j'ai mis dans une 5e colonne une condition: =if(or(left(A1)="6";left(A1)="7");A1;0) et je dois dérouler avec la souris pour coller sur toute la colonne la formule
1e question: pour simplifier ce déroulement, est-il possible d'aller directement à la dernière ligne remplie, histoire de ne pas dérouler 10 lignes de + par sécurité dans l'éventualité d'un nouveau document de base plus long.
Ensuite je filtre la colonne 5 pour isoler les termes avec 0 et je les supprime.
Tout ce système est lourd et me parait peu sûr, surtout au niveau du filtre..., sachant que justement j'ai besoin d'un truc en beton.
Mon idée était de toujopurs faire cette 5e colonne, en donnant 1 comme valeur aux fichiers superflus, et 0 à ceux qui m'intéressent, de les trier par ordre décroissant (on garde tt c'est plus sur que le filtre), puis grâce au VBA sommer cette colonne et supprimer le nombre de lignes correspondant au resultat.
d'après ce que j'ai cherché avant de poser cette question, le code que j'ai écrit (je ne maitrise pas du tt le langage, je le rappelle) est:
Sub Supprlignes()
Dim n as Long
n = Application.evaluate("sum(E:E)")
Rows("1:n").Select
Selection.Delete Shift:=xlUp
End Sub
L'éditeur me dit qu'il y a une Run-time error '13' Type mismatch au niveau de la ligne Rows(...)
Je ne sais pas si c'est la ligne du dessus ou celle là qui cloche
J'ai essayé avec n as integer, ca bug aussi, et en le remplacant par une valeur entière dans Rows ca marche, ms evidemment c'est pas ce que je veux faire.
Si quelqu'un pouvait m'expliquer ou est mon erreur de code ca serait super sympa et ca m'aiderait beaucoup pour continuer a programmer
Merci d'avance
