Largeur de colonnes Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
B
BastLat
Membre fidèle
Membre fidèle
Messages : 258
Inscrit le : 29 octobre 2008
Version d'Excel : EXCEL 2007 FR

Message par BastLat » 18 juillet 2014, 09:49

Bonjour,

Je bataille ce matin avec un truc à priori simple...

je souhaite qu'à l'activation de la "Feuil1", la fenêtre soit ajustée à l'espace de travail dispo, que la colonne "A" ait une largeur de 6 (?), ET que les colonnes "B" et "C" se partagent à part égale le reste d'espace dispo.

J'ai remarqué qu'il y a un facteur de 7 entre la largeur des colonnes en pixels, et la largeur inscrite dans les propriétés. D'où mon (?). Quelle est l'unité utilisée dans ce cas ?

Enfin, voila ou j'en suis.
Merci d'avance pour votre aide ;-)
Private Sub Worksheet_Activate()
Dim lCol As Variant
    
With ActiveWindow
    .WindowState = xlNormal
    .Top = 1
    .Left = 1
    .Height = Application.UsableHeight
    .Width = Application.UsableWidth
End With

lCol = ((Application.UsableWidth - 6) / 2) / 7

With Sheets("Feuil1")
    .Columns("A:A").ColumnWidth = 6
    .Columns("B:B").ColumnWidth = lCol
    .Columns("C:C").ColumnWidth = lCol
End With

End Sub
largcol.xlsm
(13.93 Kio) Téléchargé 32 fois
C
Civo
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 18 mai 2012
Version d'Excel : 1997

Message par Civo » 18 juillet 2014, 10:12

Ma question va te paraître stupide, mais quel est ton espace de travail ?

parce que je ne comprends pas trop ce que tu veux faire ... Tu dis vouloir travailler sur trois colonnes en ayant déjà défini la première et que les deux autres sont partagées à parts égales donc je vois pas trop où est le problème si ton espace de travail est défini (:

Cdlt
L'urgent est déjà parti, l'impossible est en train de se faire, pour les miracles je demande un délai de 48 heures ...
B
BastLat
Membre fidèle
Membre fidèle
Messages : 258
Inscrit le : 29 octobre 2008
Version d'Excel : EXCEL 2007 FR

Message par BastLat » 18 juillet 2014, 10:48

Civo a écrit :Ma question va te paraître stupide, mais quel est ton espace de travail ?
parce que je ne comprends pas trop ce que tu veux faire ... Tu dis vouloir travailler sur trois colonnes en ayant déjà défini la première et que les deux autres sont partagées à parts égales donc je vois pas trop où est le problème si ton espace de travail est défini (:
Cdlt
Il n'y a pas de questions stupides lorsqu'on essaie d'aider quelqu'un ;)

En fait mon souhait n'est que "cosmétique" car je n'écris pas directement dans ces colonnes, elle ne sont affichées qu'à titre consultatif.
L'utilisateur (autorisé) peut y écrire mais uniquement à l'aide de boutons activant des macros [ Action sur bouton/ déprotection de la feuille / écriture / reprotection de la feuille]. Mais ça , ça fonctionne pas de soucis.

Les seules infos intéressantes sont dans les colonnes "A", "B", et "C".
Je souhaite qu'à chaque ouverture du classeur ces trois colonnes soient affichées selon les règles que j'ai énoncé plus haut.
Quelle que soit la taille de l'écran si Windows est en fullscreen ou de la fenêtre si en mode fenêtré.

Quant à l'"espace de travail" je suis parti là dessus:
Application.UsableWidth, propriété
Cette propriété renvoie la largeur maximale, exprimée en points (point : unité de mesure qui fait référence à la hauteur d'un caractère imprimé. Un point est égal à 1/72e de pouce, soit environ 1/28e de centimètre.) de l'espace pouvant être occupé par une fenêtre dans l'espace de travail de l'application. Type de données Double en lecture seule.
je ne sais pas si c'est clair :(
C
Civo
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 18 mai 2012
Version d'Excel : 1997

Message par Civo » 18 juillet 2014, 12:02

ben ça fonctionne (:
L'urgent est déjà parti, l'impossible est en train de se faire, pour les miracles je demande un délai de 48 heures ...
B
BastLat
Membre fidèle
Membre fidèle
Messages : 258
Inscrit le : 29 octobre 2008
Version d'Excel : EXCEL 2007 FR

Message par BastLat » 18 juillet 2014, 13:39

Civo a écrit :ben ça fonctionne (:
Ben non....

Mon code donne : Application.UsableWidth=1441,5

je ne comprends pas pourquoi les largeurs des colonnes "B" et "C" ne sont pas ajustées de manière à masquer les colonnes "D,E,F,G,H" ...

je m'aperçois que retrancher "6" n'est pas vraiment exact, ça devrait être "6x7", mais ça n'explique pas le résultat quand même..
bennon.gif
C
Civo
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 18 mai 2012
Version d'Excel : 1997

Message par Civo » 18 juillet 2014, 13:46

Parce que moi quand je le teste je n'ai que la case D en "trop"

et en remplaçant lCol = ((Application.UsableWidth - 47) / 2) / 6 puisque Application.usablewitch est en pixels mais bon le résultat est le même et ceux sur deux écrans différents avec deux résolutions différentes (: et avec

lCol = ((Application.UsableWidth - 47) / 2) / 5.55

With Sheets("Feuil1")
.Columns("A:A").ColumnWidth = 5.9
.Columns("B:B").ColumnWidth = lCol
.Columns("C:C").ColumnWidth = lCol
End With
J'arrive à peu près à ce que tu veux (:

Cdlt
L'urgent est déjà parti, l'impossible est en train de se faire, pour les miracles je demande un délai de 48 heures ...
B
BastLat
Membre fidèle
Membre fidèle
Messages : 258
Inscrit le : 29 octobre 2008
Version d'Excel : EXCEL 2007 FR

Message par BastLat » 19 juillet 2014, 10:11

Civo a écrit :Parce que moi quand je le teste je n'ai que la case D en "trop"

et en remplaçant lCol = ((Application.UsableWidth - 47) / 2) / 6 puisque Application.usablewitch est en pixels mais bon le résultat est le même et ceux sur deux écrans différents avec deux résolutions différentes (: et avec

lCol = ((Application.UsableWidth - 47) / 2) / 5.55

With Sheets("Feuil1")
.Columns("A:A").ColumnWidth = 5.9
.Columns("B:B").ColumnWidth = lCol
.Columns("C:C").ColumnWidth = lCol
End With
J'arrive à peu près à ce que tu veux (:

Cdlt
Merci, ça marche bien comme ça maintenant.
Ma démarche était bonne, mais les valeurs un peu n'importe quoi.
Mais 47 pixels correspondent à 6 quoi ??
C
Civo
Membre fidèle
Membre fidèle
Messages : 201
Inscrit le : 18 mai 2012
Version d'Excel : 1997

Message par Civo » 19 juillet 2014, 11:22

Tout à fait !!
Mais il faut tout prendre en compte, l'épaisseur des bandeaux etc ...
J'ai lu il y a quelques temps déjà un article détaillant les retranchements à faire etc ...
Si je remets la main dessus je n'hésiterai pas à te le faire parvenir (:

Cdlt
L'urgent est déjà parti, l'impossible est en train de se faire, pour les miracles je demande un délai de 48 heures ...
B
BastLat
Membre fidèle
Membre fidèle
Messages : 258
Inscrit le : 29 octobre 2008
Version d'Excel : EXCEL 2007 FR

Message par BastLat » 19 juillet 2014, 12:27

Civo a écrit :Tout à fait !!
Mais il faut tout prendre en compte, l'épaisseur des bandeaux etc ...
J'ai lu il y a quelques temps déjà un article détaillant les retranchements à faire etc ...
Si je remets la main dessus je n'hésiterai pas à te le faire parvenir (:

Cdlt
D'accord. Je marque le sujet résolu, mais suis preneur de l'info.
A+ et merci
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message