Couper chaine de caracteres

cyd38 -  
 cyd38 -
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

2 réponses

  1. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   381
     
    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
    1. cyd38
       
      ça y est, en réfléchissant 2 sec j'ai vu mon erreur; la macro marche très bien.

      Merci beaucoup
      0
  2. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   381
     
    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
    1. cyd38
       
      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