Ajuster la taille de ligne en fonction du nombre de caractères
Bonjour à tous !!!
J'essaye d'élaborer une fonction VBA permettant d'ajuster la taille de ligne en fonction du nombre de caractères contenue dans une cellule de cette même ligne.
Le nombre de caractères de la cellule est calculé par la fonction nbcar dans la feuille dans le but de simplifier le code.
La hauteur de ligne est censée augmenter en fonction du nombre de caractères. (variable A, B et H)
Exemple : la cellule N9 indique 21 caractères donc la taille de la ligne 9 sera de 24
J'ai réussi à trouver la solution, mais maintenant, j'aimerais appliquer ce code pour les lignes de cette feuille allant de 9 à 48. L'idée étant de vérifier à chaque fois le nombre de caractères.
Exemple : la cellule N10 indique 21 caractères donc la taille de la ligne 10 sera de 24 ; la cellule N11 indique 15 caractères donc la taille de la ligne 11 sera de 18 ; etc
Le souci que je rencontre, je pense est au niveau des lignes et des cellules variables, mais malheureusement, je ne trouve pas la solution.
C'est la première fois que je fais appel à de l'aide sur un forum soyez indulgent.
Merci d'avance !!!
Sub TEST()
Dim A As IntegerA = 15Dim B As IntegerB = 21
Dim L As IntegerL = 9
Dim H As IntegerH = 24
Dim N As LongN = 9
With Sheets("FichPal")
Do While L <> 48
Do While B <> 219
If Range("N" & N) = 5 Then
Rows(L & ":" & L).RowHeight = 18
Else
If Range("N" & N) = 7 Then
Rows(L & ":" & L).RowHeight = 18
Else
If Range("N" & N) = A Then
Rows(L & ":" & L).RowHeight = H
Else
If Range("N" & N) = B Then
Rows(L & ":" & L).RowHeight = H
End
End If
End If
End If
End If
A = A + 8
B = B + 11
H = H + 12
Loop
N = N + 1
L = L + 1
Loop
End With
End Sub
Bonjour
J'ai eu à traiter une question de ce genre. Voici comment j'ai fait.
Sub HauteurLigne()
Dim nbH As Integer, nbCarLim As Integer, hLigne As Integer
Dim i As Integer
hLigne = 15 ' Hauteur de ligne par défaut fixée arbitrairement
nbCarLim = 15 ' nombre de caractères admissibles
With Sheets("Feuil1")
For i = 1 To 6 ' Pour chaque ligne de la plage souhaitée
nbH = Application.RoundUp(Len(.Cells(i, 1)) / nbCarLim, 0) ' Calcule le multiplicateur de la hauteur
If nbH > 1 Then .Rows(i).RowHeight = hLigne * nbH ' Ajuste la hauteur
.Cells(i, 1).WrapText = True ' Règle le retour automatique à la ligne
Next i
End With
End Sub