Selection Conditionnelle de ligne

Ch3ayba

XLDnaute Junior
Bonsoir à nouveau j'ai besoin de votre aid,

je veux faire une sélection de lignes selon deux critères donc j'ai fais la macro suivante:

Sub top10()
For a = Range("G65000").End(xlUp).Row To 1 Step -1
If Cells(a, 6).Value = "" And Cells(a, 7).Value <> "" Then Rows(a).Select
Next a
End Sub

quand j’exécute la macro elle ne sélectionne que la première ligne contenant la condition, or moi je veux sélectionner l'ensemble des lignes ayant ma condition??? serait-il possible de compléter le code ou de m'aider à faire un autre???
d'avance merci pour votre aide.
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Selection Conditionnelle de ligne

Bonsoir Ch3ayba,

Essayez ce code:
VB:
Sub top10()
Dim a As Long, UnPlus As Boolean
For a = Range("G65000").End(xlUp).Row To 1 Step -1
  If Cells(a, 6).Value = "" And Cells(a, 7).Value <> "" Then
    If Not UnPlus Then
      UnPlus = True
      Rows(a).Select
    Else
      Union(Selection, Rows(a)).Select
    End If
  End If
Next a
End Sub
 

Ch3ayba

XLDnaute Junior
Re : Selection Conditionnelle de ligne

Bonjour,

comme précisé dans mon mail précédent le code fourni par mapomme fonctionnait à merveille sur un autre pc, mais quand j'essaye d'utiliser la macro sur pc de travail, le code bloque, il ne connait pas la condition? ci-joint un exemple de mon fichier avec le code je ne sais pas si ça va fonctionner chez vous où pas?? est ce que quelqu'un peut m'aider à modifier le code si nécessaire? D'avance merci pour votre aide.

Cordialement.
 

Pièces jointes

  • test.xls
    82 KB · Affichages: 68
  • test.xls
    82 KB · Affichages: 77
  • test.xls
    82 KB · Affichages: 81
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Selection Conditionnelle de ligne

Bonjour Ch3ayba,

Ca bloque car la dernière cellule de la colonne G contient une valeur d'erreur (l'avant dernière cellule aussi).

Essayer ce code:
VB:
Sub top10()
Dim a As Long, UnPlus As Boolean
For a = Range("G65000").End(xlUp).Row To 1 Step -1
If Not IsError(Cells(a, 7)) Then
  If Cells(a, 6).Value = "" And Cells(a, 7).Value <> "" Then
    If Not UnPlus Then
      UnPlus = True
      Rows(a).Select
    Else
      Union(Selection, Rows(a)).Select
    End If
  End If
End If
Next a
End Sub

Suivant ce que vous désirez faire quand la colonne G comporte une erreur, le code sera à modifier.
 

Discussions similaires