Je souhaite sélectionner une plage qui aura un nombre de lignes variables à condition qu'une valeur "X" se trouve dans la colonne "B" (en dehors la plage à sélectionner).
La valeur "X" (dans la Colonne B) ne sera pas pas toujours sur la même ligne.
La plage à sélectionner aura un nombre de lignes variables.
Par contre le nombre de lignes entre la valeur "X" et la plage à selectionner sera toujours identique.
La cellule active de la plage sélectionnée, doit se trouver sur la première ligne de la sélection dans la deuxième colonne. (en "E5" dans mon exemple).
Y-a-t-il une possibilité d'améliorer la macro que j'ai réalisée?
Re : Sélectionner une plage variable sous condition en VBA
Bonjour BChaly,
Modifie ton code comme suit :
Code:
Sub SelectCell()
Dim cell As Range
For Each cell In Range("B1:B" & Range("B65536").End(xlUp).Row)
If cell.Value = "X" Then cell.Offset(3, 2).CurrentRegion.Select
Selection.Range("B1").Activate
Next
End Sub
Re : Sélectionner une plage variable sous condition en VBA
Salut BChaly, Papou-net et le forum
Code:
Sub SelectCell()
Dim cell As Range
For Each cell In Range("B1:B" & Range("B65536").End(xlUp).Row)
If cell.Value = "X" Then cell.Offset(3, 2).CurrentRegion.Select
Selection.Range("B1").Activate
Next
End Sub
Comme j'aime bien critiquer Range("B65536").End(xlUp).Row => Ça suppose une macro qui ne sera jamais utilisable sur des version supérieures à 2003, limitée à65536 lignes
For Each cell => 2 remarques :
1 - il n'y a pas plus d'un x en B, sinon seul le dernier est concerné.
2 - si on a la réponse ne ligne 2, pourquoi ne pas finir la boucle dès qu'on a trouvé la solution ?
CurrentRegion => si le tableau commence à X-500 et finit à X+500, ton résultat ne sera pas forcément celui escompté...
On utilise Select et Activate => Personnellement, je trouve ça peu fiable en VBA (et long). Mais comme il n'y a d'autre but que la sélection, je ne peux rien proposer de concret.
Y-a-t-il une possibilité d'améliorer la macro que j'ai réalisée?
On a un extrait de quelque chose dont on ne sait rien à améliorer... Je trouve que c'est un exercice extrêmement difficile. Ça me fait penser à : Quelle différence y a-t-il entre un canard ?
A+