Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Connaitre par VBA si on sélectionne une rangée ou un colonne complète

16 réponses
Avatar
Andre.L'HOIR
Bonjour à tous

J'aimerais savoir si il est possible de connaître, par programmation, si
l'utilisateur à sélectionné une rangée ou une colonne complète.

C'est à dire qu'il a cliqué sur le n° de rangée ou le n° de colonne.

Si oui, comment???

Merci d'avance

André

10 réponses

1 2
Avatar
Daniel
Bonjour.
Essaie :

If Selection.Rows.Count = 1 And Selection.Columns.Count = 256 Then
MsgBox "sélection de la ligne " & Selection.Row
ElseIf Selection.Rows.Count = 65536 And Selection.Columns.Count = 1 Then
MsgBox "sélection de la colonne " & _
Split(Selection(1, 1).Address, "$")(1)
End If

Cordialement.
Daniel
<Andre.L' a écrit dans le message de news:

Bonjour à tous

J'aimerais savoir si il est possible de connaître, par programmation, si
l'utilisateur à sélectionné une rangée ou une colonne complète.

C'est à dire qu'il a cliqué sur le n° de rangée ou le n° de colonne.

Si oui, comment???

Merci d'avance

André



Avatar
Modeste
Bonsour® Andre.L' avec ferveur ;o))) vous nous disiez :

J'aimerais savoir si il est possible de connaître, par programmation,
si l'utilisateur à sélectionné une rangée ou une colonne complète.


Sub ZAZA()
xx$ = Selection.Address(ReferenceStyle:=xlR1C1)
If Selection.Cells.Count > 1 And InStr(xx$, ":") = 0 Then
MsgBox IIf(Left(xx$, 1) = "C", "Colonne entiere ", "Ligne entiere ") &
Mid(xx$, 2, 5)
Else
MsgBox "Selection partielle ou multiple " & Selection.Address
End If
End Sub

--
@+
;o)))

Avatar
Philippe.R
Bonjour,

Avec ceci dans le module de la feuille concernée

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'MPFE 20/07/2007
If Selection.Cells.Count = 256 _
And Selection.Rows.Count = 1 Then
MsgBox "ligne entière sélectionnée", , "MPFE"
ElseIf Selection.Cells.Count = 65536 _
And Selection.Columns.Count = 1 Then
MsgBox "colonne entière sélectionnée", , "MPFE"
End If
End Sub

--
Philippe.R
<Andre.L' a écrit dans le message de
news:
Bonjour à tous

J'aimerais savoir si il est possible de connaître, par programmation, si
l'utilisateur à sélectionné une rangée ou une colonne complète.

C'est à dire qu'il a cliqué sur le n° de rangée ou le n° de colonne.

Si oui, comment???

Merci d'avance

André



Avatar
Modeste
Bonsour® Philippe.R avec ferveur ;o))) vous nous disiez :

If Selection.Cells.Count = 256 (sauf XL 2007)
ElseIf Selection.Cells.Count = 65536 (sauf XL95 ou XL2007)



cela ne le fera pas
:-(((


@+
;o)))


Avatar
Philippe.R
Bonjour Modeste,
Je me doutais un peu de ces limites et je retiens ton code, élégant et
efficace comme à l'habitude.
Amicalement
--
Philippe.R
"Modeste" a écrit dans le message de
news:
Bonsour® Philippe.R avec ferveur ;o))) vous nous disiez :

If Selection.Cells.Count = 256 (sauf XL 2007)
ElseIf Selection.Cells.Count = 65536 (sauf XL95 ou XL2007)



cela ne le fera pas
:-(((


@+
;o)))






Avatar
Andre.L'HOIR
Bonjour à tous

C'est super sympa de réagir.

Mais au regret de vous dire que cela ne fonctionne pas.

Essayez de sélectionner 2 rangées quelconques et 3 colonnes quelconques.
Dans ce cas, la sélection me retourne:

Selection.rows.count = 1
Selection.columns.count = 256
Selection.cells.count = 197120

J'aurais aimer obtenir en retour
la variable cl = 3 (pour 3 colonnes)
rw = 2 (pour 2 rangées)

A voir vos exemples, cela me parais donc possible, je continue à chercher.
Si je trouve j'envoie la réponse.

La Cerise sur le gateau serait de pouvoir dire que la hauteur des 2 lignes = 20
pixels et la largeur des 3 colonnes = 30 pixels.
Mais bon, une chose en son temps. rien ne sert de courir ...

Encore merci de votre suport

André

In article , Philippe.R says...

Bonjour,

Avec ceci dans le module de la feuille concernée

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'MPFE 20/07/2007
If Selection.Cells.Count = 256 _
And Selection.Rows.Count = 1 Then
MsgBox "ligne entière sélectionnée", , "MPFE"
ElseIf Selection.Cells.Count = 65536 _
And Selection.Columns.Count = 1 Then
MsgBox "colonne entière sélectionnée", , "MPFE"
End If
End Sub

--
Philippe.R


Avatar
zOrg2net
Tiens !! Chez moi ça marche avec le code de Modeste. Ca me renvoi:
Sélection partielle ou multiple $D:$I,$16:$27

zOrg2net


Bonjour à tous

C'est super sympa de réagir.

Mais au regret de vous dire que cela ne fonctionne pas.

Essayez de sélectionner 2 rangées quelconques et 3 colonnes quelconques.
Dans ce cas, la sélection me retourne:

Selection.rows.count = 1
Selection.columns.count = 256
Selection.cells.count = 197120

J'aurais aimer obtenir en retour
la variable cl = 3 (pour 3 colonnes)
rw = 2 (pour 2 rangées)

A voir vos exemples, cela me parais donc possible, je continue à chercher.
Si je trouve j'envoie la réponse.

La Cerise sur le gateau serait de pouvoir dire que la hauteur des 2 lignes = 20
pixels et la largeur des 3 colonnes = 30 pixels.
Mais bon, une chose en son temps. rien ne sert de courir ...

Encore merci de votre suport

André

In article , Philippe.R says...

Bonjour,

Avec ceci dans le module de la feuille concernée

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'MPFE 20/07/2007
If Selection.Cells.Count = 256 _
And Selection.Rows.Count = 1 Then
MsgBox "ligne entière sélectionnée", , "MPFE"
ElseIf Selection.Cells.Count = 65536 _
And Selection.Columns.Count = 1 Then
MsgBox "colonne entière sélectionnée", , "MPFE"
End If
End Sub

--
Philippe.R






Avatar
Daniel
Esssaie :

For Each plage In Selection.Areas
If plage.Rows.Count <> 65536 Then
rw = rw + plage.Rows.Count
End If
If plage.Columns.Count <> 256 Then
cl = cl + plage.Columns.Count
End If
Next plage
MsgBox rw
MsgBox cl

(ne fonctionne pas avec XL2007)
Daniel
<Andre.L' a écrit dans le message de news:

Bonjour à tous

C'est super sympa de réagir.

Mais au regret de vous dire que cela ne fonctionne pas.

Essayez de sélectionner 2 rangées quelconques et 3 colonnes quelconques.
Dans ce cas, la sélection me retourne:

Selection.rows.count = 1
Selection.columns.count = 256
Selection.cells.count = 197120

J'aurais aimer obtenir en retour
la variable cl = 3 (pour 3 colonnes)
rw = 2 (pour 2 rangées)

A voir vos exemples, cela me parais donc possible, je continue à chercher.
Si je trouve j'envoie la réponse.

La Cerise sur le gateau serait de pouvoir dire que la hauteur des 2 lignes
= 20
pixels et la largeur des 3 colonnes = 30 pixels.
Mais bon, une chose en son temps. rien ne sert de courir ...

Encore merci de votre suport

André

In article , Philippe.R says...

Bonjour,

Avec ceci dans le module de la feuille concernée

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'MPFE 20/07/2007
If Selection.Cells.Count = 256 _
And Selection.Rows.Count = 1 Then
MsgBox "ligne entière sélectionnée", , "MPFE"
ElseIf Selection.Cells.Count = 65536 _
And Selection.Columns.Count = 1 Then
MsgBox "colonne entière sélectionnée", , "MPFE"
End If
End Sub

--
Philippe.R





Avatar
Modeste
Bonsour® Andre.L' avec ferveur ;o))) vous nous disiez :

Essayez de sélectionner 2 rangées quelconques et 3 colonnes
quelconques. .

La Cerise sur le gateau serait de pouvoir dire que la hauteur des 2
lignes = 20 pixels et la largeur des 3 colonnes = 30 pixels.


ça ne correspond plus à la question initiale !!!
si l'utilisateur à sélectionné une rangée ou une colonne complète.




Sub zaza()
X = Selection.Row
XX = 0
Y = Selection.Column
YY = 0
H = 0: L = 0
For Each z In Selection.Areas
XX = XX + z.Rows.Count
YY = YY + z.Columns.Count
H = H + z.Height
L = L + z.Width
Next
MsgBox "Position " & Chr(10) _
& " Ligne : " & X & Chr(10) _
& " Colonne : " & Y & Chr(10) _
& "Etendue : " & Selection.Cells.Count & " Cellules" & Chr(10) _
& " Zones distinctes : " & Selection.Areas.Count & Chr(10) _
& " Nb Lignes : " & XX & Chr(10) _
& " Nb Colonnes : " & YY & Chr(10) _
& "Taille cumulée : " & Chr(10) _
& " Largeur pixel(s): " & L & Chr(10) _
& " Hauteur pixel(s): " & H
End Sub

@+
;o)))


Avatar
Mgr.Abile
Bonjour,
J'ai vérifié aussi, mon fils, et vos propos frisent la calomnie !
Vous direz donc pour votre pardon 3 Pater et 3 Ave
Allez en paix

<Andre.L' a écrit dans le message de
news:
Bonjour à tous

C'est super sympa de réagir.

Mais au regret de vous dire que cela ne fonctionne pas.

Essayez de sélectionner 2 rangées quelconques et 3 colonnes quelconques.
Dans ce cas, la sélection me retourne:

Selection.rows.count = 1
Selection.columns.count = 256
Selection.cells.count = 197120

J'aurais aimer obtenir en retour
la variable cl = 3 (pour 3 colonnes)
rw = 2 (pour 2 rangées)

A voir vos exemples, cela me parais donc possible, je continue à chercher.
Si je trouve j'envoie la réponse.

La Cerise sur le gateau serait de pouvoir dire que la hauteur des 2 lignes
= 20
pixels et la largeur des 3 colonnes = 30 pixels.
Mais bon, une chose en son temps. rien ne sert de courir ...

Encore merci de votre suport

André

In article , Philippe.R says...

Bonjour,

Avec ceci dans le module de la feuille concernée

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'MPFE 20/07/2007
If Selection.Cells.Count = 256 _
And Selection.Rows.Count = 1 Then
MsgBox "ligne entière sélectionnée", , "MPFE"
ElseIf Selection.Cells.Count = 65536 _
And Selection.Columns.Count = 1 Then
MsgBox "colonne entière sélectionnée", , "MPFE"
End If
End Sub

--
Philippe.R





1 2