Comment extraire la deuxième / troisième ligne d’une cellule

J'ai une colonne A "adresses", qui contient des fois une ligne (ex. rue), des fois deux lignes (ex. rue, batiment), des fois trois lignes (ex. rue, bâtiment, no. appartement).

Pour réaliser un publipostage, il me faut éclater le contenu de ma cellule afin de retrouver chaque ligne en une cellule dédiée. J'ai créé trois colonnes B, C, D vides à côté de ma colonne d'adresses pour dispatcher les 3 lignes.

Grâce à ce forum j'ai trouvé un début de solution à mon problème, à l'aide de la fonction suivante :

Function ECLATERTXTMLIGNES(txm As String)

Dim txcc

Application.Volatile

txcc = Split(txm, Chr(10))

ECLATERTXTMLIGNES = txcc

End Function

Tu copies la fonction, tu la colles dans un module standard (Accéder éditeur VBA par Alt+F11, Insertion > Module, et coller).

Utilisation comme une fonction native d'Excel.

La fonction est matricielle.

Sélectionner autant de cellules que de lignes de texte à éclater (sur une même ligne).

Taper la fomule, ex.: =ECLATERTXTMLIGNES(A1) =cellule à éclater

Valider par Ctrl+Maj+Entrée.

MAIS : Si l'adresse ne contient qu'une seule ligne, le contenu de cette ligne ne se trouve pas seulement en A, mais à nouveau dans B et C. Idéalement, s'il n'y a qu'une seule ligne d'adresse, les colonnes B et C devraient rester vide.

Si quelqu'un a une idée, je prends.

Merci.

Bonjour,

j'ai adapté la fonction, elle n'est plus matricielle mais requiert un nouveau paramètre, à savoir le numéro de ligne à extraire

donc pour extraire les valeurs de 3 lignes, il faudra mettre 3 formules

=ECLATERTXTMLIGNES(A1;1)
=ECLATERTXTMLIGNES(A1;2)
=ECLATERTXTMLIGNES(A1;3)

code à mettre dans un nouveau module et sauver le classeur avec macro (xlsm)

Function ECLATERTXTMLIGNES(txm As String, Optional ligne = 1)
    Dim txcc
    txcc = Split(txm, Chr(10))
    If ligne <= UBound(txcc) + 1 Then ECLATERTXTMLIGNES = txcc(ligne - 1) Else ECLATERTXTMLIGNES = ""
End Function

Un grand MERCI à h2so4, la formule marche et mon problème est résolu. C'est top !

Rechercher des sujets similaires à "comment extraire deuxieme troisieme ligne"