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
-
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
8206
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 octobre 2020
1 489
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
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
9755
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
10 octobre 2020
1 076
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
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
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