VBA : ajuster des colonnes

Résolu/Fermé
VBA - 6 avril 2012 à 16:47
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 6 avril 2012 à 19:26
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

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
6 avril 2012 à 17:31
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
Impeccable, je te remercie pour ton aide :)
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
6 avril 2012 à 19:26
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