Couper chaine de caracteres

Fermé
cyd38 - 29 sept. 2010 à 09:59
 cyd38 - 29 sept. 2010 à 10:44
Bonjour,





j'ai un listing excel de 1000 personnes avec une colonne adresse que je voudrais découper en 2 si le nombre de caractères est supérieur à 38 et sans couper un mot. J'ai cherché mais impossible de trouver la formule vba correpondante.

merci d'avance pour votre aide
A voir également:

2 réponses

cousinhub29 Messages postés 883 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 2 mai 2024 338
29 sept. 2010 à 10:13
Bonjour,

En espérant que la cellule ne contienne pas plus de 76 caractères, sinon le code ci-dessous affichera plus de 38 caractères dans la cellule de droite...

Sinon, essaie ainsi :

Sub couper()
Dim Cel As Range
Dim Pos As Byte
For Each Cel In Range("B1:B" & [B65000].End(xlUp).Row)
    If Len(Cel) > 38 Then
        Pos = IIf(Mid(Cel, 38, 1) = " ", 38, InStrRev(Cel, " ", 38))
        Cel.Offset(, 1) = Right(Cel, Len(Cel) - Pos)
        Cel = Left(Cel, Pos - 1)
    End If
Next Cel
End Sub


Bonne journée
1
ça y est, en réfléchissant 2 sec j'ai vu mon erreur; la macro marche très bien.

Merci beaucoup
0
cousinhub29 Messages postés 883 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 2 mai 2024 338
29 sept. 2010 à 10:40
bonjour,

Normalement, le code balaie toutes les cellules de la colonne B, jusqu'à la dernière remplie....

A moins que toutes les cellules de la colonne B soient remplies....(formule ou autre....).
Lorsque tu fais un double-clic sur le bas, au centre, lorsque tu as les 4 flèches apparentes, de la cellule B1, jusqu'où tu vas?
Ou en faisant "Ctrl + Fin", tu arrives à quelle cellule?

@ te relire
0
Merci pour le temps que tu as bien voulu me consacrer.
J'avais juste oublié de modifier la lettre pour cellule de fin "x"65000
0