Merci Unparie pour ton aide.
effectivement le nombre de caractère ne sera pas décimal.
concernant la cellule (j,1) est un oubli de ma part, j'ai limiter les boucles pour essayer de trouver la solution ou les erreurs. j'avais donc désactivé la boucle For i...
par contre, que viens faire le .Activate ... et bien ... pour activer la cellule pour laquelle je veux avoir le nombre de caractère ? mais si tu pose la question c'est que ce n'est pas utile voir problématique.
et oui Set ... merci;-)
j'ai fait un peu de ménage, mais maintenant, c'est ce qui fonctionné précédemment qui s'allume en jaune
nbrow = ActiveSheet.UsedRange.Rows.Count
sinon voila les modif que j'ai apportées :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| Sub nb_car()
'déclaration
Dim nb_ As Integer
Dim nb_max As Integer
Dim act_cell As Range
Dim nbcol As Integer
Dim nbrow As Integer
'ne met pas à jour l'affichage pendant l'execution de la macro
Application.ScreenUpdating = False
'donne une valeur aux variables en comptant le nombre de colonnes et le nb de lignes
nbcol = ActiveSheet.UsedRange.Columns.Count 'Cells(1, Columns.Count).End(xlToLeft).Column
nbrow = ActiveSheet.UsedRange.Rows.Count 'Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox (nbcol)
'MsgBox (nbrow)
For i = 1 To nbcol
nb_ = 0
nb_max = 0
For j = 2 To nbrow
act_cell = Cells(j, i)
nb_ = Len(act_cell)
If nb_ > nb_max Then
nb_max = nb_
End If
Next j
Set Range(nbrow + 1, i).Value = nb_max
Next i
End Sub |
Partager