[VB/VBA/VBS] Boucle d'une boucle

Boucle d'une boucle [VB/VBA/VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 08-02-2013 à 16:50:12    

Salut à tous,
 
Par exemple :  
 
J'ai une liste qui tient sur une colonne et 300 lignes. Dans cette liste, je veux que ma macro extrait toute les valeurs qui commence par "COM" par exmple. Donc, je peux avoir une réf "COM" à ligne 3, puis de la ligne 10 à 20, puis ligne 40 etc...............
 
Aujourd'hui mes boucles sont construite de la manières suivante :  
Do While Left(ActiveCell.Value, 4) <> "COMP"
    ActiveCell.Offset(1, 0).Activate
Loop
MaLigne1 = ActiveCell.Row
 
Do While Left(ActiveCell.Value, 4) = "COMP"
    ActiveCell.Offset(1, 0).Activate
Loop
MaLigne2 = ActiveCell.Row
 
Elles sont construite ainsi parce que mes réf "COM" été regroupé.
 
Dans la nouvelle liste, elles ne sont plus regroupées, je cherche donc une boucle initiale comme celle ci-dessus mais couplée à une autre boucle qui lui dira de continuer jusqu à une cellule vide = fin de la liste.
 
Est ce que quelqu'un pourra m'aider SVP  :cry:  
 
Merci d'avance

Reply

Marsh Posté le 08-02-2013 à 16:50:12   

Reply

Marsh Posté le 08-02-2013 à 18:46:27    

 
           Salut !
 
           Et en effectuant un tri au préalable ?
 
           Sinon je n'aime pas du tout tes boucles, l'écran doit sacrément flasher,
           pourrait être plus rapide sans passer par Activate …
 

Reply

Marsh Posté le 09-02-2013 à 11:11:08    

Merci pour ton retour Marc L, le pb est que le tri ne fonctionne pas car j'ai des cellules fusionnées et qu'un filtre ne sert à rien sur une boucle.
 
Sinon, je n'ai quasi pas de flash sur l'écran.

Reply

Marsh Posté le 09-02-2013 à 13:37:37    

 
           Il y a certainement un ScreenUpdating à False dans le code alors …
           Les Select / Activate ralentissent énormément l'exécution, à proscrire au maximum !

 

           Pour la problématique, une vue d'ensemble sur le code est nécessaire pour l'adapter pour l'extraction.

 

           Sinon regarder l'aide de la méthode  Find  pourrait apporter une solution …


Message édité par Marc L le 09-02-2013 à 13:39:36
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed