OVH Cloud OVH Cloud

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é

6 réponses

1 2
Avatar
Daniel
Ce qu'il veut dire, c'est que ça ne fonctionne pas s'il sélectionne 2
colonnes discontinues.
Daniel
"Modeste" a écrit dans le message de news:

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
Daniel
Plus justement :
Ce qu'il veut dire, c'est que ça ne fonctionne pas s'il sélectionne 2
colonnes (ou 2 lignes) non adjacentes.
Daniel
"Daniel" a écrit dans le message de news:

Ce qu'il veut dire, c'est que ça ne fonctionne pas s'il sélectionne 2
colonnes discontinues.
Daniel
"Modeste" a écrit dans le message de news:

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
zOrg2net
Dont acte!!
zOrg2net


Plus justement :
Ce qu'il veut dire, c'est que ça ne fonctionne pas s'il sélectionne 2
colonnes (ou 2 lignes) non adjacentes.
Daniel
"Daniel" a écrit dans le message de news:

Ce qu'il veut dire, c'est que ça ne fonctionne pas s'il sélectionne 2
colonnes discontinues.
Daniel
"Modeste" a écrit dans le message de news:

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
Andre.L'HOIR
Bonjour à tous

Alors là ... vous êtes des kings !....
Cela fonctionne à merveille.

Merci beaucoup


En fait, j'ai utilisé le code suivant écris par un certain 'Daniel'

For Each plage In Selection.Areas
If plage.Rows.Count <> 65536 Then
rw = rw + plage.Rows.Count
plage.RowHeight = 30 * d * delta
End If

If plage.Columns.Count <> 256 Then
cl = cl + plage.Columns.Count
plage.ColumnWidth = 4.43 * d * delta
End If
Next plage

Encore merci

André

In article , Andre.L' says...

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 :

Cela fonctionne à merveille.
En fait, j'ai utilisé le code suivant écris par un certain 'Daniel'

plage.RowHeight = 30 * d * delta

plage.ColumnWidth = 4.43 * d * delta


C'est quoi ces 30, 4.43, d , delta ????
ça sort de ou ???

les dimensions d'une cellule sont dépendantes de la taille de la police par
défaut (style "normal") !!!

@+
;o)))

Avatar
Andre.L'HOIR
Bonjour,

En réalité, j'ai du créer un système qui permet d'ajuster la largeur des
colonnes et la hauteur des rangées de manière que lorsque l'utilisateur demande
une largeur de 10mm, lorsqu'il imprime, cela fasse réellement 10mm.

Alors
le 30 c'est la valeur qu'il faut appliquer pour que la hauteur du rangée fasse
exactement 1cm sur une feuille de papier.
le 4.43, c'est la même chose mais pour la largeur d'une colonne.
delta est un flag permettant de savoir si l'utilisateur encode des dimensions en
mm ou des cm.

Je sais que la taille des rangées et colonnes dépendent de la taille de la
police. Mais bon .. C'est bien la 1ere fois que l'on me demande d'imprimer des
colonnes avec une tel précision !...

Mais merci quand même
André

In article <O#, Modeste says...

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

Cela fonctionne à merveille.
En fait, j'ai utilisé le code suivant écris par un certain 'Daniel'

plage.RowHeight = 30 * d * delta

plage.ColumnWidth = 4.43 * d * delta


C'est quoi ces 30, 4.43, d , delta ????
ça sort de ou ???

les dimensions d'une cellule sont dépendantes de la taille de la police par
défaut (style "normal") !!!

@+
;o)))





1 2