Excel 2010: fixer la largeur des colonnes par macro

Résolu/Fermé
arcade89400 Messages postés 25 Date d'inscription samedi 7 juin 2014 Statut Membre Dernière intervention 13 juin 2016 - 31 juil. 2015 à 08:49
arcade89400 Messages postés 25 Date d'inscription samedi 7 juin 2014 Statut Membre Dernière intervention 13 juin 2016 - 31 juil. 2015 à 18:20
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
A voir également:

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
31 juil. 2015 à 10:44
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
0
arcade89400 Messages postés 25 Date d'inscription samedi 7 juin 2014 Statut Membre Dernière intervention 13 juin 2016
31 juil. 2015 à 16:54
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...
0
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
Modifié par Le Pingou le 31/07/2015 à 17:16
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
0
arcade89400 Messages postés 25 Date d'inscription samedi 7 juin 2014 Statut Membre Dernière intervention 13 juin 2016
31 juil. 2015 à 18:18
Un grand merci Le Pingou, ça fonctionne parfaitement ! Crldt
0
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
0
arcade89400 Messages postés 25 Date d'inscription samedi 7 juin 2014 Statut Membre Dernière intervention 13 juin 2016
31 juil. 2015 à 18:20
Merci Maurice, je vais essayer votre méthode. Avoir des solutions différentes permet de mieux comprendre les instructions de VBA. Crldt
0