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

Comment trouver exactement cette série de chaîne (de 7 chiffres et 2 traits d'union) et dire ou ils sont dans plusieurs onglets sur excel

zazou__40

XLDnaute Nouveau
Bonjour!

j'aimerais trouver une façon de trouver rapidement où se trouve le ou tous les numéros de ce type dans mon document Word et dans mon document Excel.... et aussi, dans un document Word, si c'est possible.

J'aimerais trouver à travers tout le texte (il y a de nombreuses pages), s'il y a une série de caractères toujours comme ceci :
111-111-1 donc il s'agit de *** 3 chiffres-3 chiffres-et 1 chiffre a la fin.

ça peut être n'importe quel chiffre exemple: 237-267-1 autant que par exemple 928-249-4, ou 001-555-0 mais en tout, toujours 7 chiffres et 2 traits d'union, toujours selon ce modèle.



Je voudrais que ça me dise soit :
- où il est dans le document Word (ex quelle page) et Excel (quel onglet et quel cellule) (où ils sont s'il y en a plusieurs),
- ou qu'ils soient en fluo (moins bon, mais mieux que rien s'il y a juste cette solution)
- ou sinon me dire combien il y a de ce type de série de 7 caractères et ce,
-----autant dans Word que Excel.

Ça peut aussi être un logiciel a télécharger qui me donne cette information, mais je préférerais si cela est possible, une fonction simplement dans Excel et Word directement (sans télécharger rien de +).

je ne connais pas les macros/vba, alors si cela est possible, alors par des formules simplement, svp.

voir mon exemple en pièce jointe, cependant, mon fichier excel est beaucoup plus rempli, et contient justement du texte a travers de ces série de caractères.

Je vous remercie, hâte d'avoir des réponses si c'est possible !
 

Pièces jointes

  • exemple de document a plusieurs onglet, trouver chaine de caractères.xlsm
    50 KB · Affichages: 15
Solution
Bonsoir Le Forum,

Ce sujet me plait bien car il traite d'un sujet que je travail actuellement, les Regex. j'ai fait se petit bout de code en vitesse se soir.
- Cette Macro VBA fait une recherche sur toutes les feuilles du classeurs :
sur une plage de 30 Colonnes sur 30 000 Lignes (soit de la plage A1:AD30000)
cette Regex et de la forme : "((\d?\d?\d)-){2}(\d)"
Donc :
Si la condition est remplis :
je Remplis : Le nom de l'onglet / La cellule / La référence à la Regex
---->>> en Bonus (La référence est formaté est Gras de couleur rouge) + le liens dans le document qui renvois...

job75

XLDnaute Barbatruc
Bonsoir tout le monde,

Je ne comprends pas trop, cela fait une semaine que ce fil est ouvert et on en est au 45ème message.

Pourtant le problème est très simple, alors j'y vais de ma solution :
VB:
Sub Recherche()
Dim t1$, t2$, t3$, w As Worksheet, tablo, ncol%, i&, j%, x$, n&, mes$
t1 = "*###-###-#*"
t2 = "*####-###-#*"
t3 = "*###-###-##*"
For Each w In ActiveWorkbook.Worksheets 'étude du classeur actif
    tablo = w.Range("A1:A2", w.UsedRange) 'matrice, plus rapide
    ncol = UBound(tablo, 2)
    For i = 1 To UBound(tablo)
        For j = 1 To ncol
            x = CStr(tablo(i, j))
            If x Like t1 And Not x Like t2 And Not x Like t3 Then _
                n = n + 1: mes = mes & vbLf & w.Cells(i, j).Address(0, 0, , True)
Next j, i, w
MsgBox IIf(n, n & " cellules :" & vbLf & mes, "Aucun résultat"), , "Résultat de la recherche"
End Sub
A+
 

zazou__40

XLDnaute Nouveau
Bonsoir a tous,

Job75, vous proposez une façon de votre côté, merci, mais je ne sais pas comment ajouter le texte que vous avez écrit dans mon fichier, c'est ainsi que ça cause problème. j'avais envoyé un fichier d'exemple, et je pensais que ça serait simple de juste (je ne sais pas, changer le nom de mon fichier quelque part), mais je ne reçois jamais très précisément comment le faire... est-ce réellement compliqué ? car j'aimerais comprendre et le faire moi-même afin de voir comment ca marche les macros en même temps. Donc super d'avoir tout le texte qui fait la macro, mais je ne sais pas comment l'appliquer.... je suis navrée, je n'ai jamais travaillé avec des macros. j'ai l'impression que ça prend une genre de page de base avec la macro, puis un bouton sur le fichier contenant la macro, qui fait appliquer la macro en ouvrant mon fichier... dans ma tete, ça ressemble a cela.

Est-ce que vous pouvez m'expliquer un peu, pas a pas, svp, comment je peux réaliser moi-même cette merveille ?

Merci d'avance
 

eriiic

XLDnaute Barbatruc
Bonjour,

déjà ajoute le ruban 'Développeur' : clic-droit sur le ruban, 'Personnaliser' et tu le coches (à droite).
Alt+F11 pour appeler l'éditeur VBE.
Clic-droit sur le projet de ton classeur 'Insertion / Module', où tu copies-colles le code.
Tu peux lancer la macro en faisant F5 dessus.
Ou ajouter un bouton sur ta feuille. Dans excel maintenant : 'Développeur / Insérer' et tu choisis ton bouton Formulaire ou ActiveX. Si Formulaire il te sera demandé à quelle macro tu veux le lier.
eric
 

zazou__40

XLDnaute Nouveau

bonjour, j'ai suivi a la lettre, la seule chose, la, je ne vois pas du tout d'onglet nommé Recherche (donnent les résultats), est-ce normal ? *(j'ai pris le texte copier-coller du message no 46 comme code et j'ai fait F5). Je l'ouvre a nouveau a l'instant. Peut-être que l'onglet Recherche sera la... a suivre dans quelques minutes
 

zazou__40

XLDnaute Nouveau
Hourra Eriiic et tout le monde, ca fonctionne, j'ai fait un test sur mon document de travail, et ca a marché, mais pas dans un onglet, mais un pop-up de message qui disait dans quel onglet et quelle case !! ouais!!!!!!!!!!!!! je suis super contente!! bravo a tous, c'est tellement précieux merciiiiiiii!
 

laurent950

XLDnaute Barbatruc
Bonsoir Le Forum,

Ce sujet me plait bien car il traite d'un sujet que je travail actuellement, les Regex. j'ai fait se petit bout de code en vitesse se soir.
- Cette Macro VBA fait une recherche sur toutes les feuilles du classeurs :
sur une plage de 30 Colonnes sur 30 000 Lignes (soit de la plage A1:AD30000)
cette Regex et de la forme : "((\d?\d?\d)-){2}(\d)"
Donc :
Si la condition est remplis :
je Remplis : Le nom de l'onglet / La cellule / La référence à la Regex
---->>> en Bonus (La référence est formaté est Gras de couleur rouge) + le liens dans le document qui renvois
directement dans la cellule de la référence trouvé (en rapport avec la feuille)
Assez complexe mais intéressant.

Ps : J'ai constaté que sur des plus grande plage cela prend plus de temps au traitement, dans mon code j'ai exclu les
cellule vide pour gagné du temps et comme je ne connais pas la plages ou les plages ou seront effectué la recherche
j'ai choisie une plage assez grande.

Il faudrait peux-être adapter cette macro comme celle d'eriiic (Qui est super aussi) et qui a partir d'un classeur excel, appel la macro pour traité un autre classeur au choix. C'est a adapter en fonction de vos besoins

Lien : https://phpcodeur.net/articles/php/regex1

cdt
Laurent
 

Pièces jointes

  • V5_exemple de document a plusieurs onglet, trouver chaine de caractères.xlsm
    60.1 KB · Affichages: 15
Dernière édition:

zazou__40

XLDnaute Nouveau

Bonjour Laurent, franchement, je trouve cela bien gentil de ta part d'ajouter ton point de vue, en effet, c'est cocasse qu'on ait un peu quelque chose de similaire avec nos classeurs, je te remercie pour ton ajout, je regarde cela aussi. Je commence a on dirait prendre gout aux macros... Wow!! il est complexe ton code de modèle!! je viens d'essayer de décortiquer, c'est impressionnant!!! Tu as fait tout ca en un petit bout de temps,. incroyable!!! c'est du chinois pour moi!

OH oui, j'adore le soulignement qui t'amène directement a ce qu'on cherche, ahhh merciiiiiii!!!! Vous êtes vraiment excellents!!!


a tous: est-ce que vous conseillez un site ou un livre pour débuter a s'exercer avec des macros bien de base svp?

merci !!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…