VBA : ajuster des colonnes

Résolu
VBA -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je tente d'ajuster des colonnes de mon tableau Excel.
J'ai appris à me servir des commandes du genre Columns("C:E").Columns.AutoFit
Mon problème est que mon nombre de colonne est variable. Je ne peux pas définir a l'avance les variables ("A:Z") par exemple.
Dans l'idéal des cas, j'aurais besoin de récuperer le nombre de colonne (ça je sais le faire) stocker ca dans une variable (pas de probleme) écrire quelque chose du genre:
Tant que je n'arrive pas au nbColumnsMax, ajuster les colonnes. Ou avec un for, peu importe.

Qulequ'un ?

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Code a adapter a votre besoin.

    Sub test()
    'derniere colonne utilisée de la feuille
    dercol = Cells.Find("*", , , , xlByColumns, xlPrevious).Column

    'Lettre de la Colonne en fonction de son numero
    lc = Split(Cells(2, dercol).Address, "$")(1)
    'Ajuste colonnes
    Columns("A:" & lc).EntireColumn.AutoFit

    End Sub

    Bonne suite
    4
  2. VBA
     
    Impeccable, je te remercie pour ton aide :)
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    tu aurais pu également mettre ce code dans la propriété de la feuille (clic sur l'onglet de ta feuille/Visualiser le code)

    le déplacement de la souris dans une cellule entre la colonne 1 (A) et 7 (G) et les lignes 3 et 30 règle automatiquement la largeur de la colonne la largeur par défaut des colonnes inactives est 5 à adapter

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column >= 1 And Target.Column <= 7 And Target.Row >= 3 And Target.Row <= 30 Then
    Columns("A:G").ColumnWidth = 5
    Me.Columns(Target.Column).EntireColumn.AutoFit
    End If
    End Sub

    0