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

arthour973

XLDnaute Barbatruc
Je pense à un petit raisonnement : on peut peut-être lui demander de rechercher toujours la même cellule de la feuille ?
Par exemple, pour la feuille téléphone, la cellule E9.

Il suffirait que tous les numéros soient entrés en E9 (automatiquement formatés pas le code de formatage).
Qu'en pensez-vous ?
Amicalement,
Lionel,
 

arthour973

XLDnaute Barbatruc
Bonjour Roland,
Bonjour DoubleZero,
Bonjour SI,
Bonjour à toutes et à tous,

Je reviens sur mon souci qui est "brûlant" pour moi LOL.

En fait, je m'étais très mal expliqué.
Ma demande se résume en quelques mots :
Il faudrait le code recherche cherche toujours le contenu de E9 de la feuille téléphone.
Je remets le classeur test.
Avec mes remerciements,
Bonne journée,
Lionel,
 

Fichiers joints

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 ?
 

arthour973

XLDnaute Barbatruc
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:

arthour973

XLDnaute Barbatruc
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,
 

Fichiers joints

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 !
 

Fichiers joints

arthour973

XLDnaute Barbatruc
Roland,
Promis, j'arrête la moquette et le cognac dès le matin. Le café au lait ou noir sera mieux.
Effectivement, tu as raison.
je refais les tests. et je te dis.
LOL :confused:
 

arthour973

XLDnaute Barbatruc
Roland,

Nickel, ça fonctionne super et j'en avais bien besoin. Vraiment utile pour mon boulot.
Un grand Merkikiki :)
Merci aussi pour ta patience et ton sens de la psychologie LOL :rolleyes:
Amicalement,
Lionel,
 

arthour973

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 !
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,
 

arthour973

XLDnaute Barbatruc
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,
 

Fichiers joints

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 !
 

arthour973

XLDnaute Barbatruc
Bonsoir Roland,
Encore merci d'être là.

Je ne vois pas bien comment expliquer, mais je vais essayer :
Si dans la feuille, le numéro copié dans la cellule E9 (donc cherché) est déjà dans la cellule E2000 de la même feuille, il ne va pas se positionner à la cellule E2000.

C'est plus clair ?
LOL
 

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


Haut Bas