J'ai besoin d'insérer des caractères à l'intérieur du contenu d'une cellule.
Ne trouvant pas le bon codage, je me tourne une nouvelle fois vers le Forum.
J'ai fait des essais et recherches sur le net et dans mes forums préférés
J'ai trouvé ce code qui fonctionne (presque bien) :
VB:
Sub Test()
Dim Var As String, VarModifié As String
Dim L As Byte, i As Byte
Var = ActiveCell.Value
L = Len(Var)
For i = 1 To L - 2 Step 2
VarModifié = VarModifié & Mid(Var, i, 2) & ":"
Next
ActiveCell = VarModifié & Right(Var, 2)
End Sub
Fonctionnement du code :
1 clic (sélection) sur la cellule pour ajout de caractères
2 clic sur le bouton
Dans l'exemple du fichier joint, je teste sur l'ajout d'un caractère tout les 2 caractères de la chaîne
Mon souci : l'avant dernier caractère est doublé si caractères de la chaîne en nombre impair.
Auriez-vous la solution ?
Fichier test joint,
Avec mes remerciements,
Je vous souhaite une belle journée,
Amicalement,
lionel,
Sub Test()
Dim Var$, X$, I&
Var = ActiveCell.Value
For I = 1 To Len(Var) Step 2: X = X & Mid(Var, I, 2) & ":": Next
If Mid(X, Len(X)) = ":" Then X = Left(X, Len(X) - 1)
ActiveCell = X
End Sub
re
attend je t'en donne une sans boucle un peu tordu comme je les aimes
VB:
Sub test2()
Dim Var$, X$, I&
Var = ActiveCell.Value
Var = Replace(Trim(StrReverse(Format(StrReverse(Var), Application.Rept(" @@", 30)))), " ", ":")
ActiveCell = Var
End Sub
tient regarde ce que fait la boucle step 2 avec une chaine de 11 caracteres
VB:
Sub demobornagebouclesurimpair()
chaine = "AAAAAAAAAAA" ' donc 11 caracteres
For I = 1 To Len(chaine) Step 2
X = X & Mid(chaine, I, 2) & vbCrLf
Next
MsgBox X
End Sub