Excel 2010: fixer la largeur des colonnes par macro [Résolu/Fermé]

Signaler
Messages postés
25
Date d'inscription
samedi 7 juin 2014
Statut
Membre
Dernière intervention
13 juin 2016
-
arcade89400
Messages postés
25
Date d'inscription
samedi 7 juin 2014
Statut
Membre
Dernière intervention
13 juin 2016
-
Bonjour à toutes et à tous; je viens de m'inscrire sur CCM - ma question: je veux fixer des laefeurs différentes aux colonnes d'une feuille à imprimer. Je fais une macro, mais seule la dernière largeur saisie est mémorisée et s'applique à toutes les colonnes de la page. Pourtant quand je fais manuellement les mêmes commandes, mon tableau est bien comme je le veux.
Merci de votre aide. Crldt

3 réponses

Messages postés
7971
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
27 février 2020
1 307
Bonjour,

Un exemple de code :
Option Explicit
Sub xxx()
Dim wsh As Worksheet
  Set wsh = Worksheets(1)  '1 ou autre
  wsh.Columns("A:B").ColumnWidth = 10
  wsh.Columns("E:E").ColumnWidth = 20
End Sub
arcade89400
Messages postés
25
Date d'inscription
samedi 7 juin 2014
Statut
Membre
Dernière intervention
13 juin 2016

Merci Patrice33740
Compte tenu des macros déjà faites avec l'enregistreur de macros et de vos conseils, j'ai enregistré la macro suivante:
Sub Macro4()
'
' Macro4 Macro
' Fixer la largeur des colonnes de UTILE
'

'Sub Macro4()
wsh.Columns("A:A").ColumnWidth =8,3
wsh.Columns("B:B").ColumnWidth =7,8
wsh.Columns("C:C").ColumnWidth = 20
wsh.Columns("D:D").ColumnWidth = 15
wsh.Columns("E:E").ColumnWidth = 6
wsh.Columns("F:F").ColumnWidth = 30
End Sub

Mais Excel me dit qu'il y a une erreur de syntaxe. Pouvez-vous m'aider ? Je précise que j'arrive à enregistrer une macro, mais je ne maîtrise pas du tout VBA...
Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
998
Bonjour,
Eh bien un premier point, les nombres décimaux avec un point [8.3] et pas virgule [8,3] ...¨
De plus [wsh] n'est pas reconnu essayez comme suit :
Sub Macro4()
'
' Macro4 Macro
' Fixer la largeur des colonnes de UTILE
'
Set wsh = Sheets("UTILE")
wsh.Columns("A:A").ColumnWidth = 8.3
wsh.Columns("B:B").ColumnWidth = 7.8
wsh.Columns("C:C").ColumnWidth = 20
wsh.Columns("D:D").ColumnWidth = 15
wsh.Columns("E:E").ColumnWidth = 6
wsh.Columns("F:F").ColumnWidth = 30
End Sub


Salutations.
Le Pingou
arcade89400
Messages postés
25
Date d'inscription
samedi 7 juin 2014
Statut
Membre
Dernière intervention
13 juin 2016

Un grand merci Le Pingou, ça fonctionne parfaitement ! Crldt
Bonjour
tu peux aussi faire comme ca
Sub Macro4()
' Fixer la largeur des colonnes
Larg = Array(8.3, 7.8, 20, 15, 6, 30)
   With Sheets("UTILE")
      For C = 1 To 6
         .Columns(C).ColumnWidth = Larg(C - 1)
      Next
   End With
End Sub

A+
Maurice
arcade89400
Messages postés
25
Date d'inscription
samedi 7 juin 2014
Statut
Membre
Dernière intervention
13 juin 2016

Merci Maurice, je vais essayer votre méthode. Avoir des solutions différentes permet de mieux comprendre les instructions de VBA. Crldt