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

Microsoft 365 Rechercher dans plusieurs fichiers

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous

En voici une bonne pour ce début de semaine lol

Evidemment, je ne sais pas coder pour résoudre mon besoin !
Alors, je sollicite à nouveau nos chers ténors :

Voici le contexte de mon besoin :
NOUS TRAVAILLONS AVEC 3 FICHIERS ouverts généralement en même temps.

Les Professionnels que nous appelons sont difficiles à joindre.
Nous avons souvent des répondeurs et nous laissons un message.

Quand un Pro nous rappelle, NOUS DE DECROCHONS PAS.
Avant de rappeler nous vérifions à partir de quel fichier on a appelé pour savoir où nous en sommes avec le Pro.

Pour le rappeler il faut faire vite avant que le Pro ne soit à nouveau occupé.
Pour cela, il nous faut trouver très rapidement à partir de quel fichier nous avons appelé.

Nos 3 fichiers sont identiques et nous commençons toujours nos recherches par la feuille Appels,
Le besoin
Partant du principe que nos 3 fichiers sont généralement ouverts en même temps (mais ce n'est pas toujours le cas) :
Est-il possible si la recherche ne trouve rien dans la feuille active (Appels) du fichier actif que la recherche :
si pas trouvé que la recherche propose de chercher dans le fichier suivant (ouvert) ? :

Les noms des fichiers sont toujours les mêmes sauf la date qui change.
isiTel_lionel_fichier1 2022 03 14
isiTel_lionel_fichier2 2022 03 14
isiTel_lionel_fichier3 2022 03 14

Auriez-vous le bon code ?

Un grand merci par avance
Je continue à tâtonner .. et je joins un petit fichier test qui contient le code de la recherche.
Amicalement,
lionel
 

Pièces jointes

  • Recherche_classeurs.xlsm
    33.5 KB · Affichages: 23
Dernière édition:
Solution
Bonjour Lionel, le forum,

Je disais que ce fil était sans fin !!!

Pour traiter plusieurs feuilles il suffit d'ajouter une boucle sur les noms des feuilles :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B1]) Is Nothing Then Exit Sub
Dim cible$, chemin$, fichier, feuille, plage As Range, lig&, i%, col As Range, x$, n&
cible = Right([B1], 9) 'à adapter
chemin = ThisWorkbook.Path & "\" 'à adapter
fichier = Dir(chemin & "isiTel*.xlsb") '1er fichier du dossier
feuille = Array("Appels", "Sextant", "Dr House") 'liste des feuilles où l'on recherche
Set plage = [D1:G10000] 'référence de la plage de recherche à adapter
lig = 2
Application.ScreenUpdating = False
Application.EnableEvents = False
While fichier <> ""...

Usine à gaz

XLDnaute Barbatruc
Bonsoir job75; bonsoir à tous,
@Gérard,

Le code du fichier du #post 38 (2eme version) fonctionne bien Je dirais même "trop bien" lol
Voici ce qu'il me donne :

J'ai 1 demande si c'est possible et si tu veux bien encore m'aider :
1 - que le numéro soit uniquement cherché dans les feuilles "Appels" des 3 fichiers (le numéro peut être dans plusieurs fichiers),
J'espère ne pas trop abuser mais ce serait top top top.

et 1 question :

J'ai ce dossier qui s'ouvre "Removable Storage Devices",
Je pense que c'est ton code qui l'ouvre, à quel moment disparait-il ?

Merci Gérard
lionel
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Bonjour Jean-Marie
Merci pour tes recherches.
J'ai vu tes vidéos /
- Dans la feuille Appels des 3 fichiers, il n'y a qu'une fois le numéro cherché des la plage est F6:F10000.
- il ne faut pas que les numéros dans mes fichiers soient modifiés en Lien "Hyperlink" = il ne faut rien changer dans mes 3 fichiers,
- si, exceptionnellement, il y a 2 fois le numéro, ce ne sera jamais à suivre,
lionel
 

ChTi160

XLDnaute Barbatruc
Re
Tu dis :
- il ne faut pas que les numéros dans mes fichiers soient modifiés en Lien "Hyperlink" = il ne faut rien changer dans mes 3 fichiers,
Qui a dit ça ?
Sûrement pas moi .lol
Tu dis aussi et c'est nouveau !
si, exceptionnellement, il y a 2 fois le numéro, ce ne sera jamais à suivre,
Moi je quitte la recherche si numéro trouvé donc j'ai encore tout faux lol et ....
J'arrête donc là ! Lol
De plus je crois que Gérard t'a donné la solution .
Bonne journée
Jean marie
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Lionel, le forum,

D'après ce que je comprends il faut récupérer uniquement la 1ère occurence des feuilles "Appels".

Donc il y a au maximum 3 résultats possibles.

Alors prends cette macro qui utilise des formules de liaison :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B1]) Is Nothing Then Exit Sub
Dim cible$, chemin$, x$, fichier, feuille$, col$, lig&, fich, i As Variant
cible = [B1] 'à adapter
chemin = ThisWorkbook.Path & "\" 'à adapter
x = Format(Date, " yyyy mm dd") & ".xlsb" 'à adapter au besoin
fichier = Array("isiTel_lionel_ExpRealty" & x, "isiTel_lionel_Global" & x, "isiTel_lionel_Mael" & x) 'à adapter
feuille = "Appels"
col = "C6" 'colonne F en notation R1C1
lig = 2
For Each fich In fichier
    If Dir(chemin & fich) = "" Then MsgBox "Fichier '" & fich & "' introuvable !", 48: GoTo 1
    x = chemin & "[" & fich & "]" & feuille & "'!" & col & ",0)"
    i = ExecuteExcel4Macro("MATCH(" & cible & ",'" & x) 'recherche un nombre
    If IsError(i) Then i = ExecuteExcel4Macro("MATCH(""" & cible & """,'" & x) 'recherche un texte
    If IsNumeric(i) Then
        Cells(lig, 4) = fich
        Cells(lig, 5) = feuille
        Cells(lig, 6) = "F" & i
        lig = lig + 1
    End If
Next
1 If lig < 5 Then Range("D" & lig & ":F4").ClearContents 'RAZ
End Sub
Fonctionne que les fichiers soient ouverts ou fermés, sans les ouvrir.

A+
 

Pièces jointes

  • isiTel_lionel_Mael 2022 03 18.xlsb
    9.3 KB · Affichages: 6
  • isiTel_lionel_Global 2022 03 18.xlsb
    9.3 KB · Affichages: 6
  • isiTel_lionel_ExpRealty 2022 03 18.xlsb
    9.3 KB · Affichages: 6
  • Recherche(3).xlsm
    22.2 KB · Affichages: 4

Usine à gaz

XLDnaute Barbatruc
Bonjour Lionel, le forum,

D'après ce que je comprends il faut récupérer uniquement la 1ère occurence des feuilles "Appels".

Donc il y a au maximum 3 résultats possibles.
Bonjour Gérard,

Merci pour m'avoir encore répondu
Bonjour Lionel, le forum,

D'après ce que je comprends il faut récupérer uniquement la 1ère occurence des feuilles "Appels".

Donc il y a au maximum 3 résultats possibles.
Bonjour Gérard,
Merci pour m'avoir encore répondu
lol de plus en plus fort et je me demande si tu as des limites

"Donc il y a au maximum 3 résultats possibles."
Effectivement, sauf si exceptionnellement, il y a 2 lignes pour le numéro cherché dans l'un des fichiers.

"Fonctionne que les fichiers soient ouverts ou fermés, sans les ouvrir."
Veut dire qu'il m'indiquera ou est le numéro même fichiers fermés ?
ça c'est trop fort

Je teste ce soir et je reviendrai pour te dire.
Encore un super de chez super MERCI
lionel,
 

ChTi160

XLDnaute Barbatruc
Re
Donc il y a au maximum 3 résultats possibles."
Effectivement, sauf si exceptionnellement, il y a 2 lignes pour le numéro cherché dans l'un des fichiers.
Donc trois lignes ( identiques )possibles dans la feuille de récupération ? Moi qui avais compris qu'une seule ligne devait être retournée....
Donc un seul numéro, mais trois fois!
Gérard a dit :
D'après ce que je comprends il faut récupérer uniquement la 1ère occurence des feuilles "Appels".
Mais comment saura t'on qu'il y en avait deux ? lol
Une autre subtilité lol
si pas trouvé que la recherche propose de chercher dans le fichier suivant (ouvert) ? :
Veut dire qu'il m'indiquera ou est le numéro même fichiers fermés ?
ça c'est trop fort
Y'a vraiment que Gérard qui sache lire entre les lignes lol
Bonne fin de journée

Jean marie
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
OUI, ça c'est Gérard ! Mais je l'ai tellement "embêté" depuis des années, il est très sensible (j'arrête là car je ressens bcp d'autre choses de Gérard), il est patient, et il en faut de la patience avec moi, et très à l'écoute.
Il aime aider. Il connait mes réactions et devine "le côté sombre" de mes demandes.
Je suis très reconnaissant à toi et à tous pour toute l'aide que vous m'apportez depuis tellement longtemps ... Mais Gérard c'est spécial et ma reconnaissance est encore plus grande
 

Usine à gaz

XLDnaute Barbatruc
à toi aussi mon Marcel personnel je te suis reconnaissant pour être là très souvent pour moi
 

Discussions similaires

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