Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Cellule répartie en 4

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

EliotNaiss

XLDnaute Nouveau
Bonjour à vous.
Je viens chercher de l'aide car je ne m'en sors pas
Dans une cellule j'ai des informations issues d'extraction.
C'est du genre, au maxi sur 4 lignes, a priori avec des retours lignes :

"Non renseigné
F1602 - Électricité bâtiment
N4101 - Conduite de transport de marchandises sur longue distance
N4105 - Conduite et livraison par tournées sur courte distance"

ou

"G1602 - Personnel de cuisine
F1602 - Électricité bâtiment
N4101 - Conduite de transport de marchandises sur longue distance
N4105 - Conduite et livraison par tournées sur courte distance"

Selon le contenu je veux répartir la donnée en 4 cellules...

Ce qui pourrait donner avec 1 ligne renseignée :

Nonrenseigné
ou
G1602 - Personnel de cuisine


Ce qui pourrait donner avec 2 lignes renseignées :

NonrenseignéF1602 - Électricité bâtiment
ou
G1602 - Personnel de cuisineF1602 - Électricité bâtiment

Ce qui pourrait donner avec 3 lignes renseignées :

NonrenseignéF1602 - Électricité bâtimentN4101 - Conduite de transport de marchandises sur longue distance
ou
G1602 - Personnel de cuisineF1602 - Électricité bâtimentN4101 - Conduite de transport de marchandises sur longue distance


Ce qui pourrait donner avec 4 lignes renseignées :

NonrenseignéF1602 - Électricité bâtimentN4101 - Conduite de transport de marchandises sur longue distanceN4105 - Conduite et livraison par tournées sur courte distance
ou
G1602 - Personnel de cuisineF1602 - Électricité bâtimentN4101 - Conduite de transport de marchandises sur longue distanceN4105 - Conduite et livraison par tournées sur courte distance


Mon tableau d'origine est assez grand, je cherche la formule idéale, et peut-être serait-il possible d'en faire une fonction ?

Grand merci pour le temps que vous pourrez passer sur mon cas


Bien à vous
 
@
Je vais lire et essayer de comprendre...
Merci beaucoup.
Est-ce que ce serait compliqué de créer une formule spécifique dans chaque cellule (des 4 colonnes) plutôt que passer par une fonction ?
En fait je prépare à la maison, et en y réfléchissant de plus près, j'ai peur que les macros soient bloqués au boulot avec 365 en cloud 😖
 
A votre avis, pourquoi nous avons tous proposé du VBA ?
Car en formules c'est ch...t. 😡
En PJ un essai avec :
VB:
Item 1:
=SI(B7="";"";SIERREUR(STXT($B7;1;CHERCHE(CAR(10);$B7));$B7))
Item 2:
=SIERREUR(SI(CHERCHE(CAR(10);STXT(B7;NBCAR(C7);1000))>1;SIERREUR(STXT(STXT(STXT(B7;NBCAR(C7);1000);1+CHERCHE(CAR(10);STXT(B7;NBCAR(C7);1000));1000);1;CHERCHE(CAR(10);STXT(STXT(B7;NBCAR(C7);1000);1+CHERCHE(CAR(10);STXT(B7;NBCAR(C7);1000));1000)));"");SIERREUR(STXT(STXT(B7;1+NBCAR(C7);1000);1;CHERCHE(CAR(10);STXT(B7;1+NBCAR(C7);1000)));STXT(STXT(B7;1+NBCAR(C7);1000);1;1000)));"")
Item 3:
=SIERREUR(STXT(STXT(B7;1+NBCAR(C7)+NBCAR(D7);1000);1;CHERCHE(CAR(10);STXT(B7;1+NBCAR(C7)+NBCAR(D7);1000)));STXT(STXT(B7;1+NBCAR(C7)+NBCAR(D7);1000);1;1000))
Item 4:
=SIERREUR(STXT(STXT(B7;1+NBCAR(C7)+NBCAR(D7);1000);CHERCHE(CAR(10);STXT(B7;1+NBCAR(C7)+NBCAR(D7);1000));1000);"")
Evidemment indigeste, ingérable, et surtout non maintenable.

Je n'assure pas la maintenance de ça ! 😂

NB: je ne connais pas LAMBDA, je suis toujours sous XL2007. 🙂
 

Pièces jointes

Bah oui je comprend bien votre étonnement...
S'il n'y avait que moi, je foncerais avec le VBA évidemment !
Mais si quelqu'un s'y connait avec Excel web...
En tous cas grand merci !!!
 
Bonsoir à tous,

Une version par formules.
  • Une formule pour l'élément extrait n° 1 (colonne C) en C7 à recopier vers le bas
  • Une autre formule pour les autres éléments extraits n° 2 à 4 (ou plus le cas échéant), en D7, à recopier vers le bas et vers la droite
La formule en C7 à recopier vers le bas:
VB:
=GAUCHE(B7;CHERCHE(CAR(10);B7 & CAR(10))-1)

La formule en D7 à recopier vers le bas et vers la droite :
VB:
=SIERREUR(GAUCHE(STXT($B7&CAR(10);CHERCHE("|";SUBSTITUE($B7&CAR(10);CAR(10);"|";COLONNES($A:A)))+1;999);CHERCHE(CAR(10);STXT($B7&CAR(10);CHERCHE("|";SUBSTITUE($B7&CAR(10);CAR(10);"|";COLONNES($A:A)))+1;999);1));"")

Voir classeur joint.

Et comme ne disait pas @sylvanu, j'assure la maintenance de ça ! 😜😂
 

Pièces jointes

Dernière édition:
Bonsoir EliotNaiss, le fil,

Voici une solution très simple.

1) Prenez le fichier du post #4 et en C7 entrez la formule =SUBSTITUE(B7;CAR(10):"µ")
- tirez-la sur C7:C11
- sélectionnez C7:C11, clic droit => Copier, clic droit => Collage spécial => Valeurs

C'est l'état où se trouve le fichier joint.

2) Ensuite C7:C11 étant sélectionnée, menu Données, commande Convertir
- Délimité
- séparateur => Autre => µ => Suivant => Terminer.

A+
 

Pièces jointes

Merci beaucoup du coup de main !!
 
 
Re,

Une version avec une seule formule.
La formule en C7 est à recopier vers la droite et vers le bas :
VB:
=SIERREUR(GAUCHE(STXT(CAR(10)&$B7&CAR(10);CHERCHE("|";SUBSTITUE(CAR(10)&$B7&CAR(10);CAR(10);"|";COLONNES($A:A)))+1;999);CHERCHE(CAR(10);STXT(CAR(10)&$B7&CAR(10);CHERCHE("|";SUBSTITUE(CAR(10)&$B7&CAR(10);CAR(10);"|";COLONNES($A:A)))+1;999);1));"")
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…