Excel 2010: fixer la largeur des colonnes par macro

Résolu
arcade89400 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
arcade89400 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
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 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
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   Statut Membre Dernière intervention  
 
Un grand merci Le Pingou, ça fonctionne parfaitement ! Crldt
0
Maurice
 
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   Statut Membre Dernière intervention  
 
Merci Maurice, je vais essayer votre méthode. Avoir des solutions différentes permet de mieux comprendre les instructions de VBA. Crldt
0