XL 2010 largeur colonne selon date

  • Initiateur de la discussion Initiateur de la discussion Telecast
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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")
 
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
 
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

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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
374
Réponses
0
Affichages
499
Retour