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

Le
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é
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4867171
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

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é



Modeste
Le #4867161
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)))

Philippe.R
Le #4867101
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
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é



Modeste
Le #4867071
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)))


Philippe.R
Le #4866991
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" 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)))






Andre.L'HOIR
Le #4866891
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

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


zOrg2net
Le #4866791
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

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






Daniel
Le #4866781
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

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

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





Modeste
Le #4866771
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)))


Mgr.Abile
Le #4866751
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

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

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





Publicité
Poster une réponse
Anonyme