Excel 2010: fixer la largeur des colonnes par macro

Résolu
arcade89400 Messages postés 28 Statut Membre -  
arcade89400 Messages postés 28 Statut Membre -
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

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
    1. arcade89400 Messages postés 28 Statut Membre
       
      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
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
    1. arcade89400 Messages postés 28 Statut Membre
       
      Un grand merci Le Pingou, ça fonctionne parfaitement ! Crldt
      0
  3. 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
    1. arcade89400 Messages postés 28 Statut Membre
       
      Merci Maurice, je vais essayer votre méthode. Avoir des solutions différentes permet de mieux comprendre les instructions de VBA. Crldt
      0