Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Séparé le contenu d'une cellule a partir d'un terme spécifique
Bonjour le fil ,
A la demande de JM, je passe par là, sachant que RegExp n'est pas forcément la panacé dans ce cas de figure. En effet, il serait bien plus puissant si un réel motif pouvait être décelé (que des consonnes dans le sigle ou uniquement les sigles en majuscules par exemple) ce qui n'est pas le cas ici .
J'avoue que la solution de Tibo me plait bien, les seuls défauts que j'ai trouvés, c'est la perte de l'espace pour une raison sociale au milieu, et... que je n'ai pas trouvé comment agrandir la liste des exclusions dans sa formule .
Maintenant, si on veux s'amuser avec RegExp, le Pattern de JM n'est pas tout à fait bon, puisqu'il va transformer la société : SARL SARA PORTEPASMAL en PORTEPASMAL, par exemple, ce qui est dommage pour le jeu de mot ...
Ça signifie donc qu'il va falloir travailler sur une liste exhaustive, à l'unité.
Pour récupérer la liste, j'ai été chercher le fichier de l'INSEE proposé par JM, et là, avec tout l'avantage de RegExp, j'ai extrait toutes les abréviations en me basant sur le fait que ce n'était que des ensembles de majuscules.
Il m'a suffit d'utiliser le séparateur blanc pour décomposer en cellules, copier/coller transposé et supprimer les doublons.
J'ai ensuite ajouté les civilités traditionnelles (j'ai laissé tombé Son Altesse Sérénissime, vu qu'elle existait déja dans les sociétés ).
J'ai ensuite fait une petite fonction pour fabriquer mon Pattern
Là, quelque explications pour Winnie s'imposent :
" ?" : 0 ou 1 espace
"\b" : fin de mot devant
"(CUMA|GAEC|...)" : CUMA ou GAEC ou ...
"\b ?" : idem
"(?!\.)" : mais n'ayant pas un "." après (pour ne pas ôter le M de R.M.T.I. par exemple.
Maintenant, il ne reste plus qu'une petite fonction pour traiter tout cela :
Ton explication est très claire et très instructive puisqu'elle me permet d'apprendre certaines choses.
Je commence sous VBA et j'apprend petit à petit.
En tout cas merci à toi comme aux autres, je vais tester cela de suite.
Re : Séparé le contenu d'une cellule a partir d'un terme spécifique
Re ,
Tu pourrais peut-être éviter de citer tous le message, le fil devient illisible .
Correctif pour Tibo, je suis vraiment fatigué, j'ai pas vu que c'était de la matricielle .
Donc j'ai pu corrigé la zone, et donc en dehors du blanc, si 2 mots successifs, ça n'en ôte qu'un. Mais c'est un cas extrême .
Bonne journée
Re : Séparé le contenu d'une cellule a partir d'un terme spécifique
Par contre j'aimerai pouvoir adapté cette macro à une autre cellule.
A savoir ma colonne APE :
4772A - COMMERCE DE DÉTAIL DE LA CHAUSSURE
Je voudrais séparé le code et le libellé. Apres le trait d'union j'aimerais qu'il soit supprimé mais ca je peux le faire manuellement avec recherché remplacé. Comme ca je ne complique pas trop ma demande.
Le code APE est toujours sous ce format (= 4chiffres, 1lettre, un espace, un trait d'union et un espace)
Je sais que je peux faire une formule de ce style
Code:
STXT(A1;1;4)
et pareil pour le libellé.
Mais le problème et que je dois ensuite importer ce fichier dans un autre logiciel et que lorsque cellule comporte une formule, le logiciel ne reconnait pas la colonne.
J'aurais donc aimé faire cela aussi sous forme de macro.
Mais le problème et que je dois ensuite importer ce fichier dans un autre logiciel et que lorsque cellule comporte une formule, le logiciel ne reconnait pas la colonne.
Si tu copie tes cellules avec formules sur elles-mêmes en collage spécial "Valeurs", les formules seront remplacées par leur valeur .
Pour le code APE, tu peux utiliser
Code:
=GAUCHE(A1;5)
ou ma fonction
Code:
=SansTitre(A1;"\d{4}[A-Z]";;VRAI)
qui fonctionne même si le code APE est au milieu.
Pour le libellé
Re : Séparé le contenu d'une cellule a partir d'un terme spécifique
j'avais déjà pensé à la copie en valeur, le problème étant que lorsque je fais cela, les nombres sont en format texte selon le commentaire de mes cellules.
Il m'est dis qu'il y a une apostrophe qui traine mais qui chez moi n'apparait pas.
J'avais essayé de changer le format pour le mettre en nombre standard mais cela n'a rien changé
Re : Séparé le contenu d'une cellule a partir d'un terme spécifique
Re ,
Depuis le début, tout est du texte , même le code APE vu qu'il y a une lettre après ...
Mais si tu as des nombres aussi, il te suffit de mettre un 1 dans une cellule, copier, sélectionner tes cellules à convertir en nombre et collage spécial multiplication. Tes '123 deviendront 123 .
Bon courage
Re : Séparé le contenu d'une cellule a partir d'un terme spécifique
Rassure toi, j'utilise bien ta première fonction pour ma première demande.
Maintenant, j'ai commencé sous VBA il y a peu de temps.
J'aurais voulu l'utiliser pour ce cas ci, mais j'ai pas réussi à la modifier
Et comme j'ai l'impression d'abusé deja un peu, j'avais un peu honte d'en demander plus. Je me suis donc tourné vers la macro plus simple à appréhender.
Je disais pas ça contre toi, mais je lui avais fourni la fonction qui va bien, et il y a fallu que je me repenche dans ta sub pour refaire un Pattern ... Et dans ma fonction, c'est garder ce qu'il y a de bon ou le reste, alors que dans ta sub, c'est ôter ce qu'il y a de mauvais
Mais à force de jongler, je vais finir par apprendre .
Bonne soirée
Re : Séparé le contenu d'une cellule a partir d'un terme spécifique
Petit mot pour JNP,
J'ai mis à nouveau le nez dans ta fonction et essayé de comprendre. Je t'avoue que hier j'avais pas du tout compris le fonctionnement puisque c'étais la première fonction que je voyais de ma vie.
Mais en regardant de plus près, j'ai bien compris son fonctionnement et je dois dire chapeau bas l'artiste.
Et pour te rassurer je m'en sert, ton travail n'a pas était vain.
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.