Aide sur une macro VBA convertirchaine dim

Illkarr Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Illkarr Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai une macro (prise sur ce forum d'ailleurs via pollux31, mon niveau n'étant pas aussi bon) mais elle ne fait pas la chaine jusqu'à ma dernière ligne de colonne.
Le résumé de la macro est : le format de la cellule doit être de 24 caractères, et si dans une cellule le format n'est pas atteint, compléter par des espaces (32). Ca fonctionne sur la colonne D2 en l'occurrence mais pas jusqu'au bout.
Pourriez vous m'aider pour me situer l'erreur dans le script:

Sub ConvertirChaine()
Dim i, derlig As Integer 'déclaration de variables "nombres" pour : i --> faire la boucle, derlig --> déterminer la dernière ligne de la colonne
Dim chaine As String
derlig = Range("D5571").End(xlUp).Row 'dernière ligne non vide de la colonne D
For i = 2 To derlig 'ici on dit que i va prendre les valeurs de 2 à derlig (derlig étant le numéro de la dernière ligne)
chaine = Cells(i, 4) 'chaine = contenu de la cellule (ligne "i" colonne 4) (soit D2 pour commencer)
While Len(chaine) < 24
chaine = chaine & " "
Wend
Cells(i, 4) = chaine
Next i 'ligne suivante
End Sub
A voir également:

2 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Peut être comme ceci

Dim chaine As String, derli As Long, li As Long
With ActiveSheet
derli = .Range("D" & Rows.Count).End(xlUp).Row
For li = 2 To derli
chaine = .Cells(li, 4).Value
If Len(chaine) < 24 Then chaine = chaine & String(24 - Len(chaine), "-")
.Cells(li, 4) = chaine
Next li
End With

Cordialement
0
Illkarr Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup ccm81 ça à l'air de marcher. Je regarde juste dans ma récup txt si il y a pas de caractères "dissimulés" et ce sera bon.
0