Selection d'une cellule DANS une plage

Bonjour,

Voilà, je voudrais pouvoir sélectionner une cellule à l’intérieur d'une plage déjà séléctionnée. Y'a t-il des indices propre à l'interieur de la plage ? Au passage est t-il possible de définir une plage dans le code de la macro.

Merci d'avance pour vos réponses

Bonjour,

MetalDiamond a écrit :

Au passage est t-il possible de définir une plage dans le code de la macro.

Oui, par ex. la plage des cellules A1 à A10 :

Range("A1:A10")

Pour ta première question, il faudrait une explication plus concrète, ou un fichier d'exemple.

Bonjour,

Oui, tu peu cherché une cellule X dans une plage de données, les propriétés Count, Rows et columns sont applicable sur Selection.

Explique mieux ce que tu veux "retrouver"

A+

Bonjour,

Tu peux définir un range dans une sélection.

Mais ses propriétés address, row et column seront celles de la feuille.

Ce petit programme t'éclairera si tu l'exécutes en pas à pas :

Dim plage As Range
Set plage = [D4:E7]
plage.Select
plage.Range("B2").Activate ' B2 de [D4:E7] c'est E5
plage.Cells(2, 2).Activate ' écriture équivalente
MsgBox (plage.Range("B2").Address) ' confirmation : E5
MsgBox (ActiveCell.Row) ' ligne 5
MsgBox (plage.Range("B2").Row) ' toujours ligne 5
MsgBox (ActiveCell.Row - plage.Row + 1) ' n° de ligne de la cellule active dans la sélection : 2 (plage.Row étant la ligne de la 1ère ligne de la sélection)

eric

Bonjour, Bonjour Eric et désolé de contredire ton exposer..

Voir cette démo..

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Je sélectionne C4:F19
    Debug.Print Target.Count '= 64
    Debug.Print Target.Row '= 4  1ère ligne de la sélection.
    Debug.Print Target.Rows.Count '=16 soit 16 lignes dans la sélection
    Debug.Print Target.Column '=3 1ère colonne de la sélection
    Debug.Print Target.Columns.Count '=4 soit 4 colonnes dans la sélection
End Sub

On peu aussi définir le cellule.. par exemple D6 avec

    Debug.Print Cells(Target.Row + 2, Target.Column + 1)

ou

    Debug.Print Cells(Target.Row, Target.Column).Offset(2, 1)

A+

Edit, heuuu c'est peut-être pas contredire mais expliciter.

Ben oui, ça n'enlève rien à ce que j'ai dit...

Vue la question posée :

sélectionner une cellule à l’intérieur d'une plage déjà séléctionnée

Je me suis surtout attaché à montrer qu'il faut être attentif à la notation : plage.Range("B2") qui est autorisée, parfois pratique, mais peut être trompeuse (=$E$5).

La notation plage.Cells(2, 2) est moins ambigüe.

eric

Rechercher des sujets similaires à "selection plage"