arnaud95000
Messages postés46Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention18 décembre 2007
-
5 nov. 2007 à 15:20
caco64
Messages postés69Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention14 décembre 2007
-
5 nov. 2007 à 17:22
Bonjour à tous,
En fait j'ai un problème sous VBA j'ai réussi à le résoudre mais c'est un peu long je voudrais savoir si vous auriez une procédure plus rapide.
En fait j'ai sur la feuille un des données avec le critère département en colonne G. Sur une deuxieme feuille j'ai le critère département à retenir en colonne A. Ce que je souhaiterai c'est supprimer la ligne entière sur la feuille un si le département n'ést pas dans la liste des départements à retenir de la feuille 2. Merci beaucoup de votre aide et bonne journée.
caco64
Messages postés69Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention14 décembre 2007 5 nov. 2007 à 17:22
Le test sur le département est simple, tu récupères son nom dans la
feuille 1 et tu le compares à tous les noms de départements de la
feuille 2.
Un premier moyen de gagner du temps est de stocker ces noms dans une variable au tout départ :
for i = 1 to ni '(n à définir)
nom_département(i) = sheets("feuil2").cells(3,2).offset(i,0).value
next i
Ca évite de les rechercher 100 fois.
Ensuite
tu fais ton test. La aussi, tu peux gagner du temps en sortant de la
boucle dès qu'il a trouvé un même nom (le test sur les noms suivants ne
présente plus d'intérêt).
Le dernier moyen que je vois pour gagner du temps est d'utiliser la fonction union.
Un truc du genre ci-dessous devrait te permettre de stocker les lignes à virer.
dim ligne_a_virer() as long, j_a_virer as long
dimdepartement_cherché(1 to nj) as string, nom_département(1 to ni) as string