Recherche une chaine de 10 caractères numériques
RésoluPYGOS69 Messages postés 452 Date d'inscription Statut Membre Dernière intervention -
- Recherche une chaine de 10 caractères numériques
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Clé de produit windows 10 gratuit - Guide
- Caractères ascii - Guide
- Restauration systeme windows 10 - Guide
- Caractères spéciaux - Guide
16 réponses
Bonjour,
Je pense que c'est difficile en excel pur. Cela ressemble à un type d'exercice où on utilise les regex (expressions régulières).
Il semble y avoir des add-on excel incluant une telle fonction : https://www.excel-pratique.com/fr/fonctions-complementaires
Et alors : https://www.excel-pratique.com/fr/fonctions-complementaires/regex-extract
Bonjour,
Selon la version Excel utilisée, une solution par le biais de Power Query est possible...
Quelle version? (si >= à 2010, on peut envisager)
@ te relire avec ta version
Bonjour,
Il n'y a pas de formules, tout se fait en requête interne à Power Query.
La source de données est le Tableau Structuré (TS) de gauche, et qui se nomme "Tableau1"
Si tu utilises bien ta version 365, et que le TS de gauche se nomme bien ainsi, regarde également dans les options de requête...
Pour ce faire :
- Clic droit sur le tableau de droite/Table/Modifier la requête (l'éditeur Power Query s'ouvre)
- A gauche, en haut, tu cliques sur "Fichier/Options et paramètres/Options de requête"
- A droite, tu sélectionnes "Confidentialité" et tu choisis "Toujours ignorer les paramètres de confidentialité" (option inutile, qui n'apporte que des désagréments dans 99% des cas)
Puis tu cliques sur "Fermer et Charger"
Et, normalement, c'est bon...
Bonjour,
S'il n'y avait pas le cas de la deuxième proposition où le nombre de 10 chiffres se trouve après une autre série de chiffres il y a bien cette formule matricielle que j'ai récupérée sur le site de Bombache
{=STXT(A1;EQUIV(0;ESTERREUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)*1;0);10)*1}
Si ça peut éventuellement aider
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSalut PYGOS69
Un essai en 4 étapes pour éviter des formules très très très alambiquées
https://www.cjoint.com/c/MDDgmgZmO8H
Cordialement
Bonjour
Je tente une solution macro (à tester) qui évite le chargement du fichier des macros complémentaires
https://www.cjoint.com/c/MDEijBKLUsB
Cdlmnt
Salutations à tous
.
Bien vu ccm81 ; tu as inclus la possibilité que les 10 chiffres consécutifs soient placés au début ou à la fin.
.
Dans mon essai je me suis contenté de répondre à la précision du message N°5 de PYGOS69
.
Cordialement
Bonjour,
Après un essai, Recopie incrémentée de la formule (fonction), Excel plante avec message .......ne répond pas....
Avec un autre exemple :
ARI BVDF KDDHFHHGHGG SA 0124568956985426 TRUE 20 FDGT REVF AERT6546879 2270131481
Résultat : err
Alors qu'il y a bien une chaine de caractères de 10 ? (2270131481)
Merci d'avance !
Cdlt
Bonjour
1. ARI BVDF KDDHFHHGHGG SA 0124568956985426 TRUE 20 FDGT REVF AERT6546879 2270131481
Pour une donnée de ce type, il y a une suite de chiffres qui commence par 0, c'est (en principe) corrigé. Au passage ça traite du coup les suites de 10 chiffres commençant par des zéros
https://www.cjoint.com/c/MEcqvzzSzdB
2. Excel plante avec message ne répond pas.
Envoies la donnée qui provoque le plantage
Cdlmnt
Encore Merci ccm81 !
Je suis confronté à une autre demande :
Exemple :
TTT MUUJ DSDDFDFDG GHGHG JKJKLKL DE FGFG BNHJHJHJ DGVFGF CAFE- 2302110444, 2302110445, 2302110446, 2302110447, 2302110448
Avec la fonction, le résultat est : 2302110444
C'est exact ! mais je ne sais pas comment récupérer la 2ème chaine + la 3ème .....dans ce cas précis....
C'est une minorité de cas, mais si tu pouvais ....
Cdlt
Bonjour,
En attendant ccm81, voici une autre approche :
https://www.cjoint.com/c/MEcsXIPWnsw
Function ExtraireSuitesDeChiffres(str As String) As String Dim regEx As New RegExp regEx.Pattern = "\b\d{10}\b" ' Le motif de l'expression régulière pour trouver les suites de 10 chiffres regEx.Global = True ' Recherche globale dans toute la chaîne regEx.IgnoreCase = True ' Ignorer la casse des caractères Dim matches As MatchCollection Set matches = regEx.Execute(str) ' Trouver toutes les suites de chiffres dans la chaîne Dim match As match For Each match In matches ExtraireSuitesDeChiffres = ExtraireSuitesDeChiffres & match.Value & " " ' Ajouter chaque suite de chiffres trouvée à la chaîne résultante Next match ExtraireSuitesDeChiffres = Trim(ExtraireSuitesDeChiffres) ' Supprimer l'espace en trop à la fin de la chaîne résultante" End Function
Note: la référence Microsoft VBScript Regular Expressions est requise.
VBA > Outils > Références et cocher Microsoft VBScript Regular Expressions
Petit update de la macro :
https://www.cjoint.com/c/MEctht1bjjw
Function ExtraireSuitesDeChiffres(str As String) As String Dim regEx As New RegExp regEx.Pattern = "(^|\D)(\d{10})([^$\s;])?(\b|$)" ' Le motif de l'expression régulière pour trouver les suites de 10 chiffres entourées de non-chiffres et suivies d'un caractère non-mot, tout en excluant les symboles "$", ";" et " " regEx.Global = True ' Recherche globale dans toute la chaîne regEx.IgnoreCase = True ' Ignorer la casse des caractères Dim matches As MatchCollection Set matches = regEx.Execute(str) ' Trouver toutes les suites de chiffres dans la chaîne Dim match As Match For Each match In matches ExtraireSuitesDeChiffres = ExtraireSuitesDeChiffres & match.SubMatches(1) & " " ' Ajouter chaque suite de chiffres trouvée à la chaîne résultante Next match ExtraireSuitesDeChiffres = Trim(ExtraireSuitesDeChiffres) ' Supprimer l'espace en trop à la fin de la chaîne résultante End Function
Je suis confronté à une autre demande : non, c'est moi ;-)
Pour une liste de séries de 10 chiffres. A tester
RQ. J'ai mis un nombre maxi de tours de boucle (nbessaismax) à 20 en début de code, histoire de ne pas planter dans une boucle infinie, si tu peut avoir plus de 20 séries (de 10) dans la même donnée, tu changes la valeur.
https://www.cjoint.com/c/MEcsNCLDDLB
Cdlmnt
Bonjour ccm81,
Je tente ! Est il possible, lorsqu'il y en a plusieurs d'insérer autant de lignes en dessous et de les indiquer ?
Exemple :
CCC AAAA DDDDDDDE DDDDD DGFGFGF DE FGF GFGFGF FGGFGF HHJH- 2302230111, 2302230112, 23022309222
Résultat en 3 lignes si c'est possible .....
Et je me suis aperçu que la fonction extrait les chaines même si ce la ne commence pas par une année comme l'exemple ci-dessous. (post 18)
ddd AAAAAAA 011CC74000100111 5372111222 REF 2038104222
Résultat : 5372566222;2038104222
Merci pour votre patience.
Cdlt
Bonjour
1. Je tente ! Est il possible, lorsqu'il y en a plusieurs d'insérer autant de lignes en dessous et de les indiquer ?
Comme ça ? Mais on ne passe plus par une fonction
https://www.cjoint.com/c/MEdnUeSbUmB
Cdlmnt
Bonjour,
Génial ! Merci !
En dessous s'il existe une autre ligne, c'est peut-être pas l'idéal.
Désolé je n'avais pas pensé, à cela ! Au lieu d'en dessous peut-être sur la droite : (De la colonne B à F) ou plus si besoin
TTT MUUJ DSDDFDFDG GHGHG JKJKLKL DE FGFG BNHJHJHJ DGVFGF CAFE- 2302110444, 2302110445, 2302110446, 2302110447, 2302110448 > colonnes de B à F
2302110444 2302110445 2302110446 2302110447 2302110448
Cordialement,
Ps : Sur des fichiers de 160 lignes et +, est il possible de ne pas double cliquer à chaque ligne ?(Produit final) :)
Ps : Sur des fichiers de 160 lignes et +, est il possible de ne pas double cliquer à chaque ligne ?
https://www.cjoint.com/c/MEdpQ5i21JB
Cdlmnt
Dans celui là j'ai utilisé la fonction proposée par onzone
https://www.cjoint.com/c/MEepKUxaFDB
Cdlmnt
.../
Dans un premier temps, je souhaite utiliser une formule quand la chaine de caractères est borné entre 2 espaces ou autres caractères....
Re-,
Par formules, je ne sais pas faire...
Pour Power Query, pour les versions 2010 et 2013, on peut télécharger le complément gratuitement sur le site de µSoft sous ce lien : https://www.microsoft.com/fr-FR/download/details.aspx?id=39379
Pour 2016, ce sera en natif (PS, et hors sujet, quel intérêt de ne passer qu'en 2016?????)
Tu me dis...
RE-,
J'arriverai jamais à comprendre...
Tu pourrais télécharger un complément xla (macro complémentaire), et pas un complément gratuit, et délivré par le fournisseur (donc, sans risque...)
Chez toi, ça fonctionnera
Pour mettre à jour, tu mets tes données dans le tableau de gauche, et clic droit dans le tableau de droite, "Actualiser"
https://cjoint.com/c/MDBqRmgGnUT
J'ai pris une seule option, la chaîne de 10 chiffres ne peut être bordée que par un espace ou un tiret (et bien sûr, il n'y a qu'une chaîne de 10 chiffres)
On pourrait adapter les bordures (tiret, /, \ ....)
RE;
J'ai Échec lors de l'initialisation de la source de données.
Ou est la source de données ?
Je ne vois pas de formule dans le tableau de droite.
Merci d'avance !
Bonjour et Merci,
Je vais essayer avec les macros complémentaires......C'est en effet compliqué sur EXCEL !
Cdlt