Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 largeur colonne selon date

Telecast

XLDnaute Nouveau
Bonjour
J'ai fait un tableau contenant dans la 1ère colonne les mois et à la 1ère ligne les jours.(pour des sommes)
Pour la largeur des colonnes j'ai manuellement mis la valeur de 3 à toutes les colonnes.
J'aimerais qu'à la date du jour,la largeur de la colonne correspondante s'adapte aux données de la cellule et reprenne la valeur de 3 dés le lendemain.
Bien entendu les autres restes à 3 en attendant bien sagement leur tour.
Je ne maitrise pas VBA mais si il le faut j’essayerai.
Bonne journée et merci par avance pour vos aides!
BT
 

jmfmarques

XLDnaute Accro
Bonjour
Commence par analyser et comprendre ce minuscule bout de code :
VB:
With Rows(1)
    .ColumnWidth = 3
    .Columns(Day(Date)).ColumnWidth = 10
  End With
qui passe à une largeur de 10 une seule colonne (celle de même N° que le jour), toutes les autres étant à 3.

L'autre aspect :
la largeur de la colonne corre spondante s'adapte aux données de la cellule
est bien plus complexe sur une feuille Excel. Il s'agirait en effet de déterminer une largeur de colonne correspondant à une largeur graphique de texte, qui elle-même dépend de plusieurs facteurs (la police, sa taille, etc ..., mais également une "intervention" purement Excel et incontrôlée : celle de marges d'affichage à adopter selon le cas)
Une autre question se pose : celle de données qui, entre deux lignes de la même colonne, contiendraient des textes de largeurs graphiques différentes
Tu auras probablement à jouer de manière plus simple avec le format des cellules ("renvoyer à la ligne automatiquement")
 

jmfmarques

XLDnaute Accro
Bonjour
qui adapte la largeur au contenu de la colonne
as-tu essayé ?
La méthode autofit n'adapte pas la largeur au contenu, mais le contenu à la largeur en en modifiant la taille de police)
Et tu la laisses ainsi à 3, en plus, cette largeur. Tu as une bonne loupe à portée de mains, j'espère ...
 

Telecast

XLDnaute Nouveau
Bonjour
Merci pour la rapidité de vos réponses que je pense avoir comprises,effectivement "autofit"ne semble pas convenir si ce n'est pas la largeur de la colonne qui s'adapte.
Quand à l'aspect et la longueur des données dans les cellules,ce sont(à une virgule et 2 chiffres près) les mêmes dans toutes les colonnes.
Je n'ai plus que la mise en application (tout bête)avec un peu de paracétamol à consommer avec modération!!! (en garder pour ce que vous savez.Chut!!!!)
A bientôt et encore merci
 

jmfmarques

XLDnaute Accro
à consommer avec modération!!!
Pour quoi avec lui ? Qu'est cette chose, encore (mode et rations) ?
Garde cela pour toi tout seul (en cette période de "chacun pour soi") ou encore avec de meilleurs partenaires : Parsimoni (qui lui, au moins, est un Corse) ou Beau Nessian (bon .. un Arménien, mais ça va...).
 

jmfmarques

XLDnaute Accro
Et toi, as-tu essayé ?
fais donc ton essai avec la seule lettre "A" en colonne "du jour" de la ligne 1 et "Bonjour toute la compagnie des xldiens" en colonne "du jour" de la ligne 2
Ah zut, alors ...
Remède ? -->> format de cellules (pour toute la colonne) -->> ajuster --->> Ah flute, alors ...
Amitiés
 

Patrice33740

XLDnaute Impliqué
Exemple, avec le jour en ligne 1 et le mois en colonne A (comme demandé) :
VB:
Option Explicit
Public Sub AutofitColonneDuJour(wsh As Worksheet)
Dim r As Range
  Set r = wsh.Range("B1").CurrentRegion.Offset(0, 1)
  Set r = r.Resize(, r.Columns.Count - 1)
  r.ColumnWidth = 3
  r.Columns(Day(Date)).AutoFit
End Sub
 

Pièces jointes

  • Autofit.xlsm
    17.3 KB · Affichages: 13

Telecast

XLDnaute Nouveau
Modération c'est imposé en circuit court contre la Corse et pour ce qui est de "beau nez sciant" autrement dit "poisson-scie" menacé d'extinction, j'ai préféré le laisser tranquille au fonds des océans.
BT
 

Telecast

XLDnaute Nouveau
Patrice je ne comprends pas trop voir même moins que pas trop le code,mais le fichier joint a l'air de correspondre à ma demande.
Donc en l’état le 22 mars la colonne V reviendra à 3 et la W s'adaptera au texte?
BT
 

Patrice33740

XLDnaute Impliqué
Exactement

Le principe est simple :
Dans un premier temps, toutes les colonnes du tableau, sauf la première, sont réglées à 3 de largeur.
puis la colonne du jour est en largeur automatique (l'équivalent du double clic sur la ligne de séparation des titres de colonne)

Pour automatiser ce code, il est exécuté à l'ouverture du fichier et/ou à l'activation de la feuille, donc en plus du code ci-dessus qui est dans un module Standard, tu trouves
dans le module du classeur :
VB:
Option Explicit
Private Sub Workbook_Open()
  Call mMain.AutofitColonneDuJour(Feuil1)
End Sub
Edit : il faut bien sûr adapter le codename (Feuil1) de la feuille en fonction de ton classeur

Et dans le module de la feuille :
VB:
Option Explicit
Private Sub Worksheet_Activate()
  Call mMain.AutofitColonneDuJour(Me)
End Sub
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…