Microsoft 365 Largeur de colonne automatique selon le contenu des cellules

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Exceluser2022

XLDnaute Nouveau
Bonjour à vous tous;
bonne année 2023
je desire faire un code vba pour ajuster la largeur d'une colonne selon le contenu de l'une des cellules. Mon code marche seulement pour la derniere ligne c3 que j'ai choisis comme exemple. En effet une fois une des cellules de range("a1:c3") est non nulle la largeur doit etre 18 mais une fois elle est vide elle doit revenir à la taille 8. ca marche seulement dans la ligne 3:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
Application.ScreenUpdating = False

Dim rg As Range
Set rg = Range("a1:c3")
For Each c In rg

If c.Value <> "" Then
           
            c.ColumnWidth = 18
 

 
ElseIf c.Value = "" Then

   c.ColumnWidth = 8

 
End If
Next
   Application.EnableEvents = True
Application.ScreenUpdating = True


End Sub
avez-vous une idée
merci d'avance
 
Dernière édition:
Solution
avec ceci.. tout simplement..?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Application.ScreenUpdating = False

Dim rg As Range
Set rg = Range("a1:c3")

For Each c In rg.Columns 'pour chaque colonne de la range
    'c.Select
    If WorksheetFunction.CountA(c) <> 0 Then 'on compte le nombre de cellule NON vide
        c.ColumnWidth = 18
    Else
        c.ColumnWidth = 8
    End If
Next c
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
avec ceci.. tout simplement..?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Application.ScreenUpdating = False

Dim rg As Range
Set rg = Range("a1:c3")

For Each c In rg.Columns 'pour chaque colonne de la range
    'c.Select
    If WorksheetFunction.CountA(c) <> 0 Then 'on compte le nombre de cellule NON vide
        c.ColumnWidth = 18
    Else
        c.ColumnWidth = 8
    End If
Next c
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Effectivement: ca marche tres bien
merci infiniment
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
552
Réponses
3
Affichages
582
Réponses
2
Affichages
539
Réponses
9
Affichages
893
Retour