Probléme selection multiple [Résolu]

Probléme selection multiple [Résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 03-05-2010 à 10:27:14    

Bonjour à tous,
 
J'ai un petit souci de selection.
 
Voici mon code

Code :
  1. Sub Test()
  2. For I = 1 To Range("AC2", Range("AC2" ).End(xlDown)).Cells.Count Step 1
  3. If Sheets("CodeStationHN" ).Range("B2:B52" ).Find(what:=Range("AC2", Range("AC2" ).End(xlDown)).Cells(I).Value) Is Nothing Then
  4. Range("AC2", Range("AC2" ).End(xlDown)).Cells(I).EntireRow.Select Replace:=False
  5. End If
  6. Next
  7. End Sub


 
J'ai une erreur à la ligne 5
 
Lorsque j'enléve le Replace:=False à la fin, la macro marche bien mais me selectionne mes lignes les unes aprés les autres sans tenir compte des précédentes. Donc en mettant Replace:=False cela devrait marcher ... mais non lol.
J'arrive pas à piger pourquoi.
 
Avez-vous une idée ?


Message édité par GohanSSj2 le 03-05-2010 à 16:08:43
Reply

Marsh Posté le 03-05-2010 à 10:27:14   

Reply

Marsh Posté le 03-05-2010 à 10:44:21    

Petite précision : Le but est de selectionner toutes les lignes qui ne correspondent pas au critére définie dans la fonction If.
 
Je souhaite ensuite supprimer toutes ces lignes par un entirerow.delete
 
Au début j'avais insérer le entirerow.Delete aprés le Then (le code est légérement différent avec un Step -1, etc.) mais l'execution de la commande était vraiment trop long.
Donc en selectionnant tous puis en supprimant une seule fois je pense que cela ira plus vite que de supprimer les lignes une à une.

Reply

Marsh Posté le 03-05-2010 à 16:07:44    

C'est bon j'ai trouvé, il fallait utiliser la commande Union
 
Voici le code pour ceux que ça interesse.
 

Code :
  1. Sub Test()
  2. Dim Rs As Range, Rst As Range
  3. For Each c In Range(Range("AC2" ), Range("AC2" ).End(xlDown))
  4. If Sheets("CodeStationHN" ).Range("B1:B52" ).Find(what:=c.Value) Is Nothing Then
  5. Set Rs = c.EntireRow
  6. If Rst Is Nothing Then
  7. Set Rst = Rs
  8. Else
  9. Set Rst = Application.Union(Rst, Rs)
  10. End If
  11. End If
  12. Next
  13. Rst.Select
  14. End Sub
  15. Selection.Delete

Reply

Sujets relatifs:

Leave a Replay

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