Recherche une chaine de 10 caractères numériques
Résolu/FerméPYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 - 4 mai 2023 à 18:28
- Recherche une chaine de 10 caractères numériques
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères ascii - Guide
- Clé windows 10 gratuit - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractères spéciaux clavier azerty - Guide
16 réponses
Modifié le 27 avril 2023 à 17:23
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
27 avril 2023 à 17:55
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
27 avril 2023 à 18:07
Bonjour et Merci,
Je suis en version Excel2010 et bientôt en Excel2016. Je pourrais voir si power query est accessible en entreprise. Ce qui n'est pas le cas actuellement avec EXCEL 2010. Je pourrais aussi utiliser Power BI Desktop ......A voir.
Cdlt
28 avril 2023 à 11:25
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...
28 avril 2023 à 13:01
Bonjour,
Malheureusement je travaille avec EXCEL2010, en entreprise et ne peux obtenir PoWer Query.
Merci pour cette solution, qui fonctionne chez moi mais pas sur le projet que j'ai en entreprise...
Cdlt
28 avril 2023 à 13:25
Re-,
Déjà un bon point, si ça fonctionne chez toi...
Reste juste à ta boîte de migrer (minimum 2016)
Bon courage, et bon W-E
28 avril 2023 à 14:13
Merci ! Et Bon Weekend !
28 avril 2023 à 13:49
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
28 avril 2023 à 14:12
Bonjour,
Merci!
Oui en effet sur la 2ème proposition, le résultat n'est pas bon, mais c'est un début de solution.....
Cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question29 avril 2023 à 08:12
Salut 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
29 avril 2023 à 17:23
.../
Encore Merci ! Je regarde.....
Cdlt
30 avril 2023 à 10:11
Bonjour
Je tente une solution macro (à tester) qui évite le chargement du fichier des macros complémentaires
https://www.cjoint.com/c/MDEijBKLUsB
Cdlmnt
1 mai 2023 à 21:29
Bonsoir ccm81,
Un grand Merci ! pour cette fonction qui devrait répondre a beaucoup de possibilités !
Cdlt
2 mai 2023 à 08:52
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
Modifié le 2 mai 2023 à 11:06
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
Modifié le 2 mai 2023 à 18:49
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
2 mai 2023 à 20:00
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
2 mai 2023 à 20:52
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
2 mai 2023 à 21:07
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
2 mai 2023 à 22:13
Salut ozone_
Évidemment, c'est mieux comme ça ! Il ne me reste plus qu'à me pencher sérieusement sur les expressions régulières !
Bonne soirée
2 mai 2023 à 22:25
Bonsoir ozone et ccm81,
Merci pour vos travaux différents qui me permettent de traduire ce projet !
Tous mes problèmes ont été résolu !
Bonne fin de journée !
2 mai 2023 à 20:46
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
Modifié le 3 mai 2023 à 09:10
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
3 mai 2023 à 15:48
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
Modifié le 3 mai 2023 à 17:15
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) :)
3 mai 2023 à 17:07
3 mai 2023 à 17:44
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
Modifié le 3 mai 2023 à 22:50
.../
Test sur 112 lignes....
Quand je modifie les données, et que je lance la macro par ctrl + k une boite de dialogue m'affiche un message "Argument ou Appel de procédure incorrect".
Et le résultat ne se fait que sur 15 lignes......
Cdlt
4 mai 2023 à 12:03
Bonjour,
J'ai remarqué que le problème arrive quand sur une cellule il y a une chaine de caractères ou ne figure aucun caractère numérique. Est il possible de contourner ce problème ?
C'est à dire de donner un résultat jusqu'à la dernière cellule non vide.
Merci !
Cdlt
4 mai 2023 à 17:27
A tester
https://www.cjoint.com/c/MEepA7BBBAB
Cdlmnt
4 mai 2023 à 18:23
Merci ! Problème de chaine de caractères sans caractère numérique = ok !
Cdlt
4 mai 2023 à 17:39
Dans celui là j'ai utilisé la fonction proposée par onzone
https://www.cjoint.com/c/MEepKUxaFDB
Cdlmnt
4 mai 2023 à 18:28
.../
Parfait pour les 2 solutions..... !
Cordialement,
27 avril 2023 à 18:08
.../
Dans un premier temps, je souhaite utiliser une formule quand la chaine de caractères est borné entre 2 espaces ou autres caractères....
27 avril 2023 à 18:25
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...
Modifié le 27 avril 2023 à 18:33
Je ne peux et surtout je n'ai pas l'autorisation de télécharger le complément gratuit...
Tu me dis...
../ Décision en interne car la maintenance pour Excel 2010 disparait.....Chez moi j'ai 365 !
27 avril 2023 à 18:45
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, /, \ ....)
Modifié le 28 avril 2023 à 11:11
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 !
29 avril 2023 à 10:42
Bonjour à tous
Juste une question en passant
Est ce que les premiers chiffres (à gauche) de la série de 10 cherchée peuvent être des zéros ?
Cdlmnt
29 avril 2023 à 17:22
Bonjour, non c'est général l'année 22 pour 2022.
Cdlt
Modifié le 27 avril 2023 à 17:49
Bonjour et Merci,
Je vais essayer avec les macros complémentaires......C'est en effet compliqué sur EXCEL !
Cdlt