XL pour MAC Afficher largeur des colonnes dans une cellule

Orfelia

XLDnaute Nouveau
Bonjour,

J'ai un fichier qui contient plusieurs feuille de travail avec des tableaux différent. Chaque tableaux doit avoir une largeur total bien précis. Chaque tableau n'a pas tous le même contenu et le même nombre de colonne. Pour le moment, chaque fois que je change la largeur d'une colonne j'inscris dans une cellule la nouvelle largeur pour connaitre la largeur total de mon tableau.
 

Pièces jointes

  • Exemple largeur de colonne.xlsm
    10.1 KB · Affichages: 6

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Je crois que ça risque de ne pas marcher tel quel ton truc, car deux sommes de largeurs peuvent être identiques sans donner deux tableaux de mêmes largeurs.

Par exemple, 10 colonnes de 20 de large ça ne donne pas la même largeur que 20 colonnes de 10 de large, si je ne me trompe,
 

Orfelia

XLDnaute Nouveau
Bonjour,

Je viens de regarder ce que j'ai donné comme description et je suis vraiment nulle, je m'exprime souvent très mal, je voudrais seulement voir apparaitre la largeur de la colonne dans une cellule de la même colonne,
 
Dernière édition:

Gégé-45550

XLDnaute Accro
Bonjour,

Je viens de regarder ce que j'ai donné comme description et je suis vraiment nulle, je m'exprime souvent très mal, je voudrais seulement voir apparaitre la largeur de la colonne dans une cellule de la même colonne,
Bonsoir,
Quelque chose dans ce genre ?
Attention, lorsque la largeur d'une colonne est modifiée, aucun événement n'est déclenché. La mise à jour des valeurs de largeur de colonnes aura donc lieu à chaque nouvelle sélection de cellule ou à chaque modification de cellule et bien sûr, lors de l'activation de la feuille si elle n'est pas seule.
Cordialement,
 

Pièces jointes

  • Exemple largeur de colonne.xlsm
    23.4 KB · Affichages: 8

Orfelia

XLDnaute Nouveau
Bonjour,

Je ne savais pas si je devais commencer un nouveau post ou si je devais continuer celui-ci. J'ai donc préférer poursuivre la conversation car j'ai besoin de cette macro a chaque année, mais j'aimerais quel soit précise plus rapidement. Est-qu'il serait possible que la largeur d'une colonne soit définie par le chiffre qu'elle contient.

Merci à l'avance pour l'aide que vous pouvez m'apporter
 

Pièces jointes

  • Exemple largeur de colonne.xlsm
    21.9 KB · Affichages: 5

Dranreb

XLDnaute Barbatruc
Bonsoir.
Votre problème n'est pas clair à cause des marges supplémentaires ajoutées à chaque colonne.
Cette Property Let permet de régler une largeur en points d'une colonne :
VB:
Option Explicit
Private Echelle As Double, Marges As Double
Public Property Let LargPts(ByVal Cel As Range, ByVal RHS As Double)
   Dim W1 As Double, W2 As Double
   If Echelle = 0 Then
      Cel.ColumnWidth = 1: W1 = Cel.Width
      Cel.ColumnWidth = 2: W2 = Cel.Width
      Echelle = W2 - W1: Marges = W1 - Echelle
      End If
   If RHS > Marges Then
      Cel.ColumnWidth = (RHS - Marges) / Echelle
   Else: Cel.ColumnWidth = 0: End If
   End Property
Sub Test()
   LargPts(Cells(1, 1)) = Cells(1, 1).Value
   Cells(1, 1).Value = Cells(1, 1).Width
   End Sub
 

Orfelia

XLDnaute Nouveau
Bonsoir.
Votre problème n'est pas clair à cause des marges supplémentaires ajoutées à chaque colonne.
Cette Property Let permet de régler une largeur en points d'une colonne :
VB:
Option Explicit
Private Echelle As Double, Marges As Double
Public Property Let LargPts(ByVal Cel As Range, ByVal RHS As Double)
   Dim W1 As Double, W2 As Double
   If Echelle = 0 Then
      Cel.ColumnWidth = 1: W1 = Cel.Width
      Cel.ColumnWidth = 2: W2 = Cel.Width
      Echelle = W2 - W1: Marges = W1 - Echelle
      End If
   If RHS > Marges Then
      Cel.ColumnWidth = (RHS - Marges) / Echelle
   Else: Cel.ColumnWidth = 0: End If
   End Property
Sub Test()
   LargPts(Cells(1, 1)) = Cells(1, 1).Value
   Cells(1, 1).Value = Cells(1, 1).Width
   End Sub
Bonjour, bonsoir,

Je suis vraiment désolé, j'ai toujours de la difficulté a exprimé mon problème, je croyais que les détails que j'ai mis dans le fichier joint étais suffisament clair. De plus je ne connais pas bien vb, alors je ne sais pas trop comment fonctionne votre code.

Auriez vous l'amabilité de me dire ce qui n'est pas clair afin que j'explique les détails qui vous manquent.

Pardonné mon ignorance
" Etre ignorant de son ignorance est la maladie de l'ignorant"
 

Dranreb

XLDnaute Barbatruc
Vous parlez de somme de largeurs en caractères pouvant être logés dans les colonnes d'un tableau et de la largeur du dit tableau, ce qui n'a rien à voir si on ne tient pas compte des marges dans chaque colonne. La largeur en points d'une plage c'est sa propriété Width. Mais elle n'est pas modifiable alors je vous ai indiqué une Property Let à utiliser pour pouvoir quand même changer celle d'une colonne.
 
Dernière édition:

Orfelia

XLDnaute Nouveau
Je me suis arrangé par exemple pour que la largeur en points de la colonne D soit ajustée de telle sorte que la largeur en points de B:H soit toujours de 681.
Vous êtes un génie, c'est fantastique et je vous remercie mille fois.

Un dernier petit détail, j'ai regardé dans le code et je ne vois pas ou je peux changer le 681 par autre chose, et aussi choisir la plage.

J'ai un nouveau post à faire j'espère que vous le verrez.

Encore merci
 
Dernière édition:

Orfelia

XLDnaute Nouveau
Le 681 est mentionné dans la formule en D4. C'est pourquoi la Sub AfficheLargPts ne modifie pas les cellules portant une formule dans la plage spécifiée en paramètre.
Comme à l'habiture je regarde les yeux fermés, je me concentrais à chercher dans le code. Un autre petit problème que je rencontrais, est que je ne peux plus annuler les dernières actions (CTRL-Z). Est-ce qu'il y a un moyen de contourné ce problème. Car si pour une raison quelconque je modifie beaucoup de chose dans mon tableau avec d'ajuster mes colonnes, alors je ne peu plus rien changer dès que je changé les valeurs. Exemple j'ai supprimé la formule par erreur en inscrivant un nombre en D4, je ne peu plus faire "Annuler la saisie de xx dans D4.
 

Discussions similaires

Réponses
7
Affichages
387

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh