XL 2010 Résolu par Roland et SI : code recherche + format n° tel

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir à toutes et à tous,

pour mon boulot, j'ai besoin de faire des recherches dans tout mon classeur.
J'ai d'abord tenté de faire un code, LOL catastrophe je n'y suis pas arrivé.
J'ai donc cherché sur le net et j'ai trouvé 2 codes géniaux qui fonctionnent super dans leur classeur d'origine.
Je remercie au passage les 2 auteurs.
Tout content, j'ai tenté de transférer les macros dans mon classeur et ..... ça coince !!! :(

Malgré mes tentatives, je n'ai pas trouvé ce qui ne va pas.
J'ai encore besoin de votre aide.
Je ne peux pas joindre mon classeur avec toutes ses données et il est très "lourd".
J'ai tenté de faire un classeur pour reproduire les blocages mais je n'ai pas réussi.
je joins les photos qui montrent où ça coince et les 2 classeurs qui fonctionnement parfaitement.
Avec mes remerciements,
Bonne fin de soirée à toutes et à tous,
Amicalement,
Lionel,
 

Pièces jointes

  • Rectangle1.jpg
    Rectangle1.jpg
    101.8 KB · Affichages: 129
  • RechercheMot.jpg
    RechercheMot.jpg
    133.5 KB · Affichages: 86
  • RECHERCHE SUR UN CLASSEUR COMPLET.xls
    49 KB · Affichages: 80
  • RechercheMotDansFeuilles.xls
    38 KB · Affichages: 77

Roland_M

XLDnaute Barbatruc
bonjour,

c'est bien gentil rechercher, mais où exactement ?
il faut détailler le plus simplement possible et que ce soit clair !

alors, questions nécessaires à la réalisation de ton souhait si tu veux des réponses:
----------------------------------------
1 rechercher le no de tel qui est dans la feuille "Telephone" dans la cellule E9: ceci est OK Oui ou Non ?
2 rechercher ce no de tel dans quelle feuille et dans quelle colonne, tu ne le dis pas ?
3 si pas trouvé, message 'non trouvé !' OK ?
4 si trouvé, alors message 'ok trouvé !' OK ?
et dans ce cas, à part le message trouvé, que fais tu de ce no ?
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Roland,

1 rechercher le no de tel qui est dans la feuille "Telephone" dans la cellule E9: ceci est OK Oui ou Non ?
OUI : toujours rechercher le no de tel qui est dans la feuille "Telephone" dans la cellule E9
2 rechercher ce no de tel dans quelle feuille et dans quelle colonne, tu ne le dis pas ?
Toutes les feuilles du classeur, le code de recherche fonctionne parfaitement.
3 si pas trouvé, message 'non trouvé !' OK ?
4 si trouvé, alors message 'ok trouvé !' OK ?
Pas besoin de modifier les message du code. Ils sont bons.
et dans ce cas, à part le message trouvé, que fais tu de ce no ?
La macro recherche me positionne sur le numéro s'il est déjà dans le classeur.
Avec mes remerciements,
Lionel,
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
re

voir comme ceci :
la recherche s'effectue donc dans toutes les feuilles excepté feuille "Telephone"

si ok, rappels toi, question bien posée à moitié solutionnée !

Code:
Private Sub CommandButton1_Click()
  Dim Sh As Worksheet, Quoi As Variant, C As Range, T As String 'obligatoire avec Option Explicit
  Quoi = Sheets("Telephone").Range("E9")
  T = "Pas"
  If Quoi = "" Then Exit Sub
  'Quoi = Format(Quoi, "0#"" ""##"" ""##"" ""##"" ""##")'< ceci uniquement si tu veux rechercher avec no formaté
  For Each Sh In Worksheets
   If Sh.Name <> "Telephone" Then 'recherche excepté dans cette feuille
      Set C = Sh.Cells.Find(Quoi, LookAt:=1, MatchCase:=1)  'voir aide pour la casse
      If Not C Is Nothing Then
         Sh.Activate: C.Select
         If MsgBox("trouvé en " & Sh.Name & "." & vbLf & _
            "Recherche du suivant ?", 4, "Recherche de " & Quoi) = 7 Then
            MsgBox "Recherche arrêtée !", , "Oups": Exit Sub
         End If
         T = "Plus "
      End If
   End If
  Next
  If T = "Pas" Then
    MsgBox "Recherche infructueuse !", , "Oups"
  Else
    MsgBox "Recherche terminéee !", , "Eh oui..."
  End If
End Sub
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Roland,

En tâtonnant, j'ai avancé avec ce code :
Code:
Private Sub CommandButton1_Click()
  Dim Sh As Worksheet, Quoi, C As Range, T As String 'obligatoire avec Option Explicit
  Quoi = InputBox(Sheets("Telephone").Range("E9"))
  T = "Pas"
  If Quoi = "" Then Exit Sub
  For Each Sh In Worksheets
    Set C = Sh.Cells.Find(Quoi, LookAt:=1, MatchCase:=1)  'voir aide pour la casse
    If Not C Is Nothing Then
      Sh.Activate: C.Select
      If MsgBox("trouvé en " & Sh.Name & "." & vbLf & _
         "Recherche du suivant ?", 4, "Recherche de " & Quoi) = 7 Then
         MsgBox "Recherche arrêtée !", , "Oups": Exit Sub
      End If
      T = "Plus "
    End If
  Next
  If T = "Pas" Then
    MsgBox "Recherche infructueuse !", , "Oups"
  Else
    MsgBox "Recherche terminéee !", , "Eh oui..."
  End If
End Sub

Si je remplace If Quoi = "" Then Exit Sub par If Quoi <> "" Then Exit Sub, il trouve la cellule E9 et il y va.

Le souci maintenant c'est qu'il continue à me dire qu'il trouve en allant dans mes feuilles alors que le numéro n'y est pas.

L'idéal, je pense serait qu'il affiche le numéro dans la recherche voir aussi la photo.

Voir fichier joint,
Amicalement,
Lionel,
 

Pièces jointes

  • Recherche Classeur + Format + 33.xlsm
    30.9 KB · Affichages: 56
  • Sans titre.jpg
    Sans titre.jpg
    28.5 KB · Affichages: 58

Roland_M

XLDnaute Barbatruc
re

là mon ami il faut arrêter de fumer la moquette !
le code que je t'ai mis correspond exactement à tes souhaits !
et c'est normal qu'il ne trouve pas en E9 feuille "Telephone" puisque c'est la source !
sinon à chaque fois il va le trouver puisque c'est celui qui sert pour la recherche il faut tout de même rester cohérent !
ensuite j'ai fais ce que tu demandais, me servir la cellule E9 feuille "Telephone" pour effectuer la recherche dans toutes les feuilles.

et là, qu'est ce que je vois, tu remets input box !? il n'y a plus le code que je t'ai fais !?
je regrette mais je n'arrive plus du tout à te suivre !? désolé !

EDIT: essaies ceci:
Code:
Private Sub CommandButton1_Click()
  Dim Sh As Worksheet, Quoi As Variant, C As Range, T As String 'obligatoire avec Option Explicit
  Quoi = InputBox("saisie no tel:", "", Sheets("Telephone").Range("E9"))
  T = "Pas"
  If Quoi = "" Then Exit Sub
  'Quoi = Format(Quoi, "0#"" ""##"" ""##"" ""##"" ""##")'< ceci uniquement si tu veux rechercher avec no formaté
  For Each Sh In Worksheets
   'If Sh.Name <> "Telephone" Then 'recherche excepté dans cette feuille
      Set C = Sh.Cells.Find(Quoi, LookAt:=1, MatchCase:=1)  'voir aide pour la casse
      If Not C Is Nothing Then
         Sh.Activate: C.Select
         If MsgBox("trouvé en " & Sh.Name & "." & vbLf & _
            "Recherche du suivant ?", 4, "Recherche de " & Quoi) = 7 Then
            MsgBox "Recherche arrêtée !", , "Oups": Exit Sub
         End If
         T = "Plus "
      End If
   'End If
  Next
  If T = "Pas" Then
    MsgBox "Recherche infructueuse !", , "Oups"
  Else
    MsgBox "Recherche terminéee !", , "Eh oui..."
  End If
End Sub
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re
Inspiré d’une demande pour se protéger de la divulgation de propositions sur un ton qui se veut humoristique !:p

« Quoi, on avarie ma variation ? J’enrage (de mon absence dirait la bonne Sandrine), je fulmine (la moquette est de première qualité chez moi donc…) j’hallucine, je divague (pour ne pas en dire plus)
Je ne débloquerai plus mes codes d’accès (surtout ceux des comptes off-shore et of course celui pris en Suisse (Katimini devrais-je dire).
Je vais les bloquer de suite (dès le suivant) ! »;)
Code:
Que faut-il chercher exactement : un numéro de téléphone, une autre donnée ?
   Pour les 2, voir le Fichier joint !
 

Pièces jointes

  • RechercheTousClasseurs.xlsm
    29.6 KB · Affichages: 64

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re
Inspiré d’une demande pour se protéger de la divulgation de propositions sur un ton qui se veut humoristique !:p

« Quoi, on avarie ma variation ? J’enrage (de mon absence dirait la bonne Sandrine), je fulmine (la moquette est de première qualité chez moi donc…) j’hallucine, je divague (pour ne pas en dire plus)
Je ne débloquerai plus mes codes d’accès (surtout ceux des comptes off-shore et of course celui pris en Suisse (Katimini devrais-je dire).
Je vais les bloquer de suite (dès le suivant) ! »;)
Code:
Que faut-il chercher exactement : un numéro de téléphone, une autre donnée ?
   Pour les 2, voir le Fichier joint !

Merkikiki SI (pour ne pas faire si si ce qui ferait trop féminin),
Ton code fonctionne aussi super.
Merci aussi pour ton humour.
Ayant que du carrelage à la maison, arrêter la moquette va me faire gagner du temps de trajet. LOL
Amicalement,
Lionel,
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir Roland, le forum,

LOL, je viens de m'apercevoir d'un souci dans l'exécution de la recherche.

Si le numéro cherché se trouve dans une autre feuille, la macro se positionne bien dans la cellule du numéro de l'autre feuille.

Mais si le numéro est dans la même feuille, la macro dit qu'elle trouve (ce qui est bien) mais ne se positionne pas sur la cellule trouvée.
Cela me pose un problème car dans une feuille de plusieurs milliers de lignes, je perds beaucoup de temps à me positionner sur la cellule du numéro trouvé.


Un dernier coup de pouce m'arrangerait bien :)
Je joins le fichier/
Grans Mercis Roland,
Amicalement,
Lionel,
 

Pièces jointes

  • Recherche Classeur + Format + 33 Roland.xlsm
    37 KB · Affichages: 60

Roland_M

XLDnaute Barbatruc
bonsoir,

c'est pas clair !?

peut être veux tu dire qu'il se positionne sur la première cellule rencontrée dans la feuille
et que tu as plusieurs fois ce même no dans d'autres cellules de cette même feuille et que la macro ne les trouves pas !?
si c'est le cas, la macro telle qu'elle est conçue, ne peut pas afficher toutes les cellules qui contiennent ce no !
il manque une seconde boucle que je ne peux te détailler ici mais si c'est ça tu me dis quoi et je t'arrangerai cela !
 

Roland_M

XLDnaute Barbatruc
re

c'est bien ce que je pensais, tu parles par exemple de la feuille "Telephone"
le no en question il est dans cette cellule E9 mais aussi ailleurs, et tu voudrais que la macro continue la recherche si ce no est
dans d'autres cellules !?
ce que la macro ne peut faire en l'état, elle boucle sur les feuilles et si la recherche est ok elle s'arrête puis continue sur une autre feuille !

veux tu que je modifie la macro pour qu'elle affiche toutes les cellules avec ce même no dans une même feuille !
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof