Microsoft 365 Formatage N° dans la recherche

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous et à toutes,
Tout d'abord, je vous souhaite un bon dimanche,

Il y a quelques temps, sur ce fil : https://www.excel-downloads.com/threads/rechercher-en-commencant-par-la-feuille-active.20029485/
Vous m'aviez donné des codes pour faire une recherche dans toutes les feuilles d'un classeur.

Tous vos codes, aussi supers les uns que les autres, m'ont été très utiles et m'ont permis de faire un choix pour intégrer celui de Youky - modifié par Mapomme qui convient le mieux à mon fichier de travail.
Un grand merci à toutes pour vos gentillesses et technicité.

J'y reviens pour, je l'espère, qu'une amélioration y soit apportée.
Voici ma demande :
Nous copions les n° de téléphone à appeler à partir d'un logiciel (par accès internet).
Les n°, grâce au code que Patrick m'a donné lors d'une autre demande, sont enregistrés (quel que soit le format du N° copié) dans notre fichier sous cette forme : 33111111111
comme sur la photo
Sans titre.jpg


Le code de Patrick fonctionne également super bien et s'exécute très rapidement.
Ce code supprime toutes les imperfections (" "-"."-"/"-";"-","-",;") pour mener à l'enregistrement : 33111111111
Le voici :
VB:
Sub Patrick()
Dim Var$, X$, i&
    Var = ActiveCell.Value
    Var = Replace(Trim(StrReverse(Format(StrReverse(Var), Application.Rept("@@", 30)))), " ", "")
    Var = Replace(Trim(StrReverse(Format(StrReverse(Var), Application.Rept("@@", 30)))), ".", "")
    Var = Replace(Trim(StrReverse(Format(StrReverse(Var), Application.Rept("@@", 30)))), "/", "")
    Var = Replace(Trim(StrReverse(Format(StrReverse(Var), Application.Rept("@@", 30)))), ";", "")
    Var = Replace(Trim(StrReverse(Format(StrReverse(Var), Application.Rept("@@", 30)))), ",", "")
    Var = Replace(Trim(StrReverse(Format(StrReverse(Var), Application.Rept("@@", 30)))), ",;", "")
    ActiveCell = Var
    Value = 33 & Value
End Sub

Mais je n'arrive pas à le modifier pour transformer le format d'un n° quand je le copie dans la recherche pour le trouver :
Par exemple, si je copie à partir du net un n° sous ces formes 01 11 11 11 11 ou 1 11 11 11 11 ou autre format
J'aurais besoin que le code soit adapté pour le transformer et apparaisse dans la recherche en 33111111111

Pourriez-vous m'aider ?
Je joins un fichier test
Avec mes remerciements par avance,
Amicalement,
lionel :)
 

Pièces jointes

  • Recherche_ts_onglets_Youki_test.xlsm
    42.3 KB · Affichages: 9
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Mapomme, bonjour à toutes et à tous,

Merci pour m'avoir répondu :)
Il n'aurait pas fallut dire : "Si j'ai compris quelque chose... "
Mais : "si tu t'es bien expliqué" LOL

Hé OUI, malgré mes explications que souvent je suis le seul à comprendre, tu as très bien compris.
Et aux 1er tests ça fonctionne super :)

Un grand merci à toi.
Je continue mes tests et je reviendrai te dire.
Merci vraiment,
Amicalement,
lionel,
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bonjour,

Merci pour cette version qui fonctionne aussi super bien :)

Je me suis permis de faire une légère modification
Il nous arrive souvent de copier dans la recherche les n° sous les formes suivantes :
avec espaces ou pas et signes ou pas selon la source
- avec le 33 pour rechercher 33111111111
- sans le 33 pour rechercher 33111111111
- soit juste la fin d'un n° pour recherche 111111
pour que cela fonctionne dans tous ces cas de figure, j'ai modifié
version 2a
le code If Len(y) >= 9 Then NumTel = 33 & Left(y, 9) ..... en ..... If Len(y) >= 9 Then NumTel = Left(y, 9) = recherche à partir de 9 chiffres
............................................................................................................................. If Len(y) >= 6 Then NumTel = Left(y, 6) = recherche à partir de 6 chiffres
version 1
le code Patrick = 33 & Val(Var) ..... en....... Patrick = "" & Val(Var)

Tout ça est super !! :)
Mais je n'arrive plus à faire de recherches de mots ou des phrases.
Est-il possible que ça fonctionne aussi mais dans ce cas, sans transformer le mot ou phrase collé dans la recherche ?

Merci encore une fois pour ce travail déjà fait et qui fonctionne bien,
lionel :)
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Mapomme, Youky, Gérard, Patrick, Roland, le Forum,

Depuis très longtemps, grâce à Roland (que je remercie encore une fois), j'ai pu mettre une recherche performante dans mes "gros" fichiers de travail. Sans la recherche de Roland, nous n'aurions pas pu travailler et ce, jusqu'à maintenant.

Mais, avec le temps et les fichiers grossissants, l'exécution de cette recherche devient de plus en plus longue.
Nous avons besoin de gagner du temps en permanence et, qq secondes X par x fois par jour, représentent des gains de temps appréciables.

C'est pourquoi, j'ai voulu voir, plutôt que de passer par un UF (comme la recherche de Roland), s'il serait plus performant de passer direct par la recherche find. Et suite à votre aide à tous, voici mon petit compte rendu qui sera peut-être utile à d'autres.

J'avais donc besoin de votre aide pour exécuter la recherche de la façon suivante.
Notre fichier contient plusieurs onglets qui peuvent contenir l'objet de la recherche.
En premier impératif, la recherche doit se faire (pour ne pas perdre de temps) sur la feuille active car, dans 98 % des recherches c'est là où se trouve le résultat. Nous avons aussi besoin de pouvoir chercher dans toutes les feuilles du fichier.

Nous avons à rechercher
1- des mots ou phrases (5 à 10 % des recherches)
2- des nombres (N° de téléphone entiers ou en parties (6 chiffres de droite) (90 à 95 % des recherches)) :
.............."Copiers" possibles, à partir d'un site ou autres sources, sous les formes suivantes (toujours sans l'indicatif 33)
.............. 01 23 45 67 89 - 01.23.45.67.89 - 01/23/45/67/89 - 01;23;45;67;89 - 01,23,45,67,89 - 01,;23,;45,;67,;89
.............. 1 23 45 67 89 - 1.23.45.67.89 - 1/23/45/67/89 - 1;23;45;67;89 - 1,23,45,67,89 - 1,;23,;45,;67,;89

.............. Le collage doit APPARAITRE dans la recherche comme cela dans tous les cas : 33123456789

Chacun de vous m'a apporté des solutions codes et je vous en remercie tous vivement.

Les codes de Youky et de Mapomme étaient les plus approchants de mon besoin.

Notamment celui de Mapomme qui m'a permis de résoudre complètement mon besoin pour la recherche des numéros de téléphone.
Et ça fonctionne bien et c'est hyper rapide.

Il me restait un souci :
Il n'est pas possible de rechercher des mots ou phrases avec le code de Mapomme.
Pour cela, il me faut utiliser le code de Youky mais qui ne me permettait pas de rechercher d'abord sur la feuille active.
Grâce au code de Mapomme, j'ai pu modifier le code de Youky et c'est maintenant résolu.

Tout petit bémol, il faut 2 codes séparés :
Un pour la recherche de mots ou de phrases car dans ce cas, le collage est fait sans besoin de transformation dans la recherche,
Un pour la recherche des N° qui ont besoin d'être modifiés au collage dans la recherche.

Mais ça fonctionne très bien et c'est déjà super comme ça :)
Je joins le fichier qui pourrait être utile pour d'autres.

Un grand merci à tous pour vos amicales contributions.
Bonne journée à toutes et à tous,
Amicalement,
lionel :)
 

Pièces jointes

  • Test_Recherche_ts_onglets.xlsm
    35.9 KB · Affichages: 4
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Mapomme, Youky, Gérard, Patrick, Roland, le Forum,

Encore merci à vous tous d'avoir bien voulu m'aider grandement ce qui m'a permis de faire
un tas de tests dans mon "usine à gaz" de travail :)

Comme j'ai du le dire dans un post avant, le code de Mapomme se rapproche le plus de mon besoin.
J'ai eu pas mal de soucis, notamment concernant la santé d'une personne proche, et je n'avais pas
eu le temps d'aller jusqu'au terme de mes tests.

Le code de Mapomme fonctionne super bien.
Toutefois, pour finaliser (si possible), il reste 2 points que je n'arrive pas à solutionner :
La recherche
Dans mon fichier de travail, j'ai environ 50000 lignes
Pour répondre au besoin de traitement des lignes en "date du jour",
Je masque automatiquement les autres lignes.
Et plouff ....La recherche ne fonctionne pas si le n° cherché est dans une ligne masquée

La saisie ou le coller du N°
Serait-il possible que la recherche fonctionne à partir de 6 derniers N° saisis ou collés ?

Si solution il peut y avoir, pourriez m'aider encore une fois ?
Avec mes remerciements, je vous souhaite une belle journée,
Amicalement,
lionel,
 

Pièces jointes

  • Recherche_test.xlsm
    39.5 KB · Affichages: 2
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
La recherche
Dans mon fichier de travail, j'ai environ 50000 lignes
Pour répondre au besoin de traitement des lignes en "date du jour",
Je masque automatiquement les autres lignes.
Et plouff ....La recherche ne fonctionne pas si le n° cherché est dans une ligne masquée

On rend visible toutes les lignes, on recherche puis on masque à nouveau les lignes qui ont été masquées.
 

Pièces jointes

  • arthour973- Recherche_ts_onglets_Youki_test-v2.xlsm
    40.1 KB · Affichages: 7

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Merci Mapomme,

J'essaie de trouver de mon côté mais avec mes connaissances ... LOL
Je cherche...

Il faut quand même que je te dise pourquoi je voudrais ça.

Dans mon fichier de travail, il y a environ 50 00 lignes et une 50 aine de colonnes.
Quand je veux afficher toutes les lignes, je ne sais pas pourquoi mais ça prend beaucoup de temps, 20 à 30 secondes en moyenne
et j'ai a le faire des dizaines de fois par jour. C'est beaucoup de temps perdu.


Dans un fichier vierge copié toutes mes lignes "uniquement les valeurs" pour tester si le problème est le même.
Dans ce fichier vierge, j'ai utilisé les codes suivants :
VB:
Sub haut_0()
    Rows("3:35000").RowHeight = 0
End Sub
Sub haut_20()
    Rows("3:35000").RowHeight = 15
End Sub

Sub Masquer()
    Rows("3:35000").EntireRow.Hidden = True
End Sub
Sub Masquer1()
    Rows("3:35000").EntireRow.Hidden = False
End Sub

Sub critere1()
    Rows("2:2").Select
    Selection.AutoFilter Field:=2, Criteria1:=Format(Range("a1"))
    Exit Sub
End Sub

Sub Macro3()
    Rows("2:2").Select
    Selection.AutoFilter
End Sub

Et ces p'tits codes fonctionnent super ... c'est instantané !
(j'ai mis 22 colonnes colorées en vert clair)

Pourtant, dans mon fichier de travail
:
- pas de cellules fusionnées,
- pas de formatage spécial,
- 9 colonnes colorées en vert clair sur 45,
et quand je veux afficher toute les lignes, je désactive les codes avec :
Application.EnableEvents = False
Application.ScreenUpdating = False

Je n'arrive pas à comprendre pourquoi c'est si long dans mon fichier de travail ?

En fait, c'est peut-être la vraie question que je dois poser.
Encore merci Mapomme d'être là pour moi :)

Bonne fin de journée,
lionel,
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 220
Membres
103 158
dernier inscrit
laufin