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 FunctionLa 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.