Supprimer une ligne dans une cellule

Bonjour,

Je viens à vous car je cherche (en vain) une formule visant à supprimer une ligne dans une cellule.

Les fonctions GAUCHE, DROITE, MID ne conviennent pas à mon utilité.

Puisqu'une présentation de l'exemple est plus explicite que mes mots, voici un exemple de cellule :

"BNB

Binance Coin"

ou encore

""VERI

Veritaseum"

L'objectif est de supprimer "BNB {retour à la ligne}", "VERI {retour à la ligne}"; en prenant en compte que le contenu de ces cellules est susceptible de varier, donc la première ligne ne contient pas toujours exactement 3, 4, 5 caractères.

Merci d'avance,

Guillaumekos

Bonjour Guillaume,

Je te propose la fonction suivante à mettre dans le code VBA du classeur avec extension xslm:

Function extractString(zString As String) As String

Dim aString() As String

aString() = Split(zString, Chr(10))

extractString = Chr(34) & aString(1) & " " & aString(2) & " " & Chr(34) & aString(4)

End Function

Je ne suis pas sûr de comprendre la procédure. J'entre bien le code VBA dans ThisWorkbook (mon classeur), et ensuite?

Et ensuite, tu tapes par exemple dans "B1" , si ton texte initial est en "A1":

"=ExtractString(A1)"

En faisant cela j'ai une "erreur due à un nom non valide"...

Bonjour,

Essaye en remplaçant Dim aString() As String par Dim aString

dhany

J'ai essayé, mais cela ne fonctionne toujours pas.

Peut-être que l'erreur vient de mon importation de données sur Excel, un format de cellule inapproprié ?

Je vous joint le .xlsm pour que vous puissiez voir une éventuelle erreur de ma part.

5test.xlsm (31.19 Ko)

Je suis parvenu à une solution à la MacGyver.

Finalement, j'y suis arrivé avec deux fonctions :

1. "SUBSTITUE CAR(10)" par " " pour remplacer les retours à la ligne par des espaces.

2. "DROITE" pour retenir uniquement ce qui est à droite de l'espace.

Guillaumekos a écrit :

Je suis parvenu à une solution à la MacGyver.

C'est très bien ! je te retourne quand même ton fichier modifié (solution sans avoir utilisé le couteau suisse de MacGyver) :

1test.xlsm (33.02 Ko)

Ton nouveau fichier contient ce code VBA :

Option Explicit

Function extractString(zString As String) As String
  Dim chn$, astring, n%, i%
  astring = Split(zString, Chr$(10)): n = UBound(astring)
  If n = 0 Then chn = astring(0)
  For i = 0 To n
    If n > i Then chn = chn & " " & astring(i + 1)
  Next i
  extractString = chn
End Function

S'il y a une seule ligne dans la cellule, retour de cette ligne ; s'il y a plusieurs lignes, retour de toutes SAUF la 1ère ; ça marchera même si tu as plus de 2 lignes.

⚠ S'il y a une seule ligne dans la cellule et que tu n'en veux pas, enlève ceci : If n = 0 Then chn = astring(0)

dhany

Rechercher des sujets similaires à "supprimer ligne"