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

XL 2016 Macro pour découper une chaine de caractères, suivant un ou plusieurs type de séparateur(s)

  • Initiateur de la discussion Initiateur de la discussion SebCam
  • Date de début Date de début

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 !

SebCam

XLDnaute Nouveau
Bonjour à tous, membre du forum,
Par les fonctions d'Excel Gauche, STXT et CHERCHE, je parviens à découper ma chaine, seulement mes feuilles seront renouvelées. De ce fait je cherche à transcrire en code VBA cette manipe, mais je reste bloqué sur la syntaxe et déroulement.
J'y joints un exemple qui sera plus explicite :
Dans mon classeur, une feuille Sommaire qui recueille toutes les informations issues de n feuille(s) [mini 1; maxi 147 voir plus].
Je souhaite récupérer des données d'une chaine de caractères de type "AAAAAAAAAAAAA AAAAAAAAA AA AAAA – BB.BB.BB – RR RRRRRR RRRRRRR RRRRRR – WWWW WWWWWW WWWWW – ZZ ZZZZZZZZ ZZ ZZZZZZZZZ ZZZZZ" plus ou moins longue, mais contenant des séparateurs pouvant varier (esp-esp, esp–esp, "au choix").
La résultante de cette découpe, récupérée dans chaque ligne D:H suivant le nombre de séparateur, suivant les Feuilles C:C.

Merci à vous.
 

Pièces jointes

Bonsoir.
Cette fonction personnalisée marche avec vos données :
VB:
Function Découp(ByVal Txt As String)
   Découp = Split(Replace(Txt, " - ", " – ")", " – ")
   End Function
En 'Sommaire'!D4:H4 validé par Ctrl+Maj+Entrée, puis propagée ensuite seulement vers le haut :
Code:
=Découp(INDIRECT("'"&C4&"'!$A$4"))
 
Pour tenir compte de séparateurs spécifiables :
VB:
Function Découp(ByVal Txt As String, Optional ByVal Sép1 As String, Optional ByVal Sép2 As String)
   If Sép1 = "" Then Sép1 = " – "
   If Sép2 = "" Then Sép2 = " - "
   Découp = Split(Replace(Txt, Sép2, Sép1), Sép1)
   End Function
 
Bonsoir Dranreb, R@chid,
Merci de votre retour. Pour lister les Feuilles, le bouton "ACTION" fait le travail.
J'ai utilisé les formules dans chaque feuille Action, soit GAUCHE.... STXT(... CHERCHE...! (Beaucoup à écrire, 147 Feuilles).
Seulement mes Feuilles "ACTION" vont changer dans leur contenu de la cellule A4 (le choix libre du séparateur que je fournirai en N1 [/ ou ', ou ~, ou *, ou etc...], " - " et ""), ainsi que le nombre de Feuilles "ACTION" (d'où mon code pour lister les onglets).

Je vais tester le code de Dranreb pour le côté VBA.
Dranreb puvez-vous me dire ou y mettre les codes?
J'ai mis le code sur chaque feuille "AXCTION 4x", et de D4 à H4, coller la formule matricielle {} de =Découp(INDIRECT("'"&C4&"'!$A$4")), mais ne marche pas.
Mais R@chid, ton aide est précieuse, c'est exactement ça que je veux obtenir.
 
Dernière édition:
- 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…