Eclater une cellule sur plusieurs lignes

Bonjour à vous tous,

Je me permet de revenir demander de l aide à une âme charitable, en effet voilà 2 jours que je tourne en rond sur mon pb.

Je souhaite écrire un petit vba pour éclater une valeur de cellule en plusieurs lignes.

Ex. Cellule A1 = 77.3PCZ.DVVMN/D38ZT.4ZMVN* et sortir cette cellule sur plusieurs lignes

Dans une feuille, on aurait :

Feuil2

CelluleA1: 77

CelluleA2: .

CelluleA3: 3PCZ

CelluleA4 : .

CelluleA5 : DVVMN

CelluleA6 : /

CelluleA7 : D38ZT

CelluleA8 : .

CelluleA9 : 4ZMVN

CelluleA10 : *

En un mot l éclatement de la cellule se fait sur les separateurs, et dans l éclatement je dois pouvoir

Récupérer aussi les separateurs. De plus la cellule a eclater peut etre de longueur differentes. Et les separateurs par contre

Il y a en 5 ce sont les . les , les / les ( les ) et enfin les *

Par avance merci à tous de votre aide précieuse et aussi j en profite et dire que grace à ce site j ai progressé en vba. Mais aujourd'hui je seche

Bonjour,

Une fonction personnalisée pour réaliser cet éclatement te conviendrait-elle ?

Function ECLATERTEXTE(ch As String)
    Dim tch
    Application.Volatile
    tch = Replace(Trim(ch), ".", ";.;")
    tch = Replace(tch, ",", ";,;")
    tch = Replace(tch, "/", ";/;")
    tch = Replace(tch, "(", ";(;")
    tch = Replace(tch, ")", ";);")
    tch = Replace(tch, "*", ";*;")
    tch = Split(tch, ";")
    ECLATERTEXTE = Application.Transpose(tch)
End Function

La fonction est à copier et à coller dans un module standard.

Utilisation :

Sur la feuille 2 : tu sélectionnes la plage A1:A10.

Tu tapes un signe =, puis le nom de la fonction ; (Excel te l'affichera d'ailleurs une fois entamé ce qui t'évitera de le taper en entier) ; donc : ECLATERTEXTE, suivi d'une parenthèse ouvrante (.

Tu vas ensuite aller sélectionner ta cellule A1 sur la feuille 1, contenant ton texte ; l'indication Feuil1!A1 s'ajoutera à la formule à la suite.

Tu fermes la parenthèse : ) ; tu obtiens donc : =ECLATERTEXTE(Feuil1!A1).

Tu valides ta formule ; il s'agit d'une fonction matricielle, tu dois donc la valider par la combinaison de touches Ctrl+Maj+Entrée.

La formule va s'entourer d'accolades : { } ; les valeurs éclatées s'afficheront dans les cellules A1 à A10 de Feuil2.

Bien sûr, la fonction peut être utilisée sur la même feuille et à n'importe quel endroit d'une feuille, comme toute fonction.

Si tu cherches à éclater une chaîne mais que tu as sélectionné au départ un nombre de cellules insuffisant pour contenir tous les morceaux, tu ne recommences pas à zéro : la formule étant validée, tu étends la sélection pour avoir un nombre de cellules suffisants, tu édites la formule en plaçant le curseur dans la barre de formule, puis tu revalides avec Ctrl+Maj+Entrée, et tu retrouveras les morceaux qui manquaient.

Cordialement.

Merci beaucoup de ton aide. Je vais essayer de transposer ton code dans mon module. Puisque en effet j en ai besoin dans un module. Merci encore de ton aide precieuse.

Rechercher des sujets similaires à "eclater lignes"