Microsoft 365 Largeur de colonne automatique selon le contenu des cellules

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

Exceluser2022

XLDnaute Nouveau
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
 

Discussions similaires

Statistiques des forums

Discussions
312 178
Messages
2 085 984
Membres
103 079
dernier inscrit
sle