Faire une recherche sur un fichier fermé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kakashi99

XLDnaute Nouveau
Bonjour,

voila je suis débutant sur Excel etc, et j'ai besoin de savoir s'il est possible de faire une recherche sur un fichier qui est fermé...

j'ai trouvé comment récupérer le contenu d'une cellule d'un fichier fermé avec ExecuteExcel4Macro, mais pour ça il faut passer une cellule bien précise.

hors dans mon cas, la cellule peut être à des emplacements différents et n'a pas de nom (et non je ne peux pas lui en donner un :/), par contre son contenu est fixe. donc je me demandais si je pouvais combiner ExecuteExcel4Macro et Cells.Find("") ?

merci d'avance !
 
Re : Faire une recherche sur un fichier fermé

Bonjour et Bienvenue sur le Forum,

Deux points qui me viennent à l'esprit:

1) L'utilisation de "ExecuteExcel4Macro et Cells.Find("") "
montre que tu es un débutant qui a déjà bien avancé.

2) Ton pseudo à la connotation scatophile n'est peut-être pas une bonne idée! 😕

Quant à résoudre ton souci, il serait bien de voir à utiliser VBA.

Au plaisir de te lire sous un prête-nom un peu plus délicat, et tenter de t'aider.

Amicalement.

Yann

Bonsoir MJ13 😉 , je viens juste de te voir.
 
Re : Faire une recherche sur un fichier fermé

Bonsoir,

peut_être une piste :

VB:
sub go()
    Dim c As Range
    nbLignes = 1000 'à adapter
    nbcolonnes = 100 ' à adapter
    Chemin = "C:\" ' à adapter
    nFichier = "Yop.xls" ' à adapter
    nOnglet = "Feuil1" ' à adapter
    Range("A1").Formula = "='" & Chemin & "[" & nFichier & "]" & nOnglet & "'!A1"
    Range("A1").AutoFill Range("A1:A" & nbLignes)
    Set c = Range("A1:A" & nbLignes)
    c.AutoFill Range(c, c.Offset(0, nbcolonnes - 1))

Puis la tu places ton
Code:
Cells.find(cequetucherches...lookIn....lookAt)

Puis tu finis:
Code:
Cells.Clear
End Sub

Cordialement,
 
Re : Faire une recherche sur un fichier fermé

Salut tout le monde et merci de vos réponses.

j'ai par une mauvaise manip perdu mon début de code d'hier, donc je vais recommencer vite fait.
je vais essayer le code de Softmama.

@MJ13: quel fichier veux tu ? le code vba ou le fichier excel contenant la cellule ? ou les deux ?
@YANN-56: c'est mon pseudo depuis que je suis sur le net (cad très longtemps), j'vais pas le changer aujourd'hui 😉 ps: ça veut dire épouvantail en japonais
et pour ton point 1, en fait c'est juste que j'ai fait des recherches et que j'ai trouvé ces fonctionnalités, sinon je débute vraiment sous excel, vba...
 
Re : Faire une recherche sur un fichier fermé

Re

quel fichier veux tu ? le code vba ou le fichier excel contenant la cellule ? ou les deux ?

Kakashi: je pense qu'avec les deux, ce serait plus simple pour aider et ainsi, on ne risque pas, comme souvent, de partir dans de fausses pistes.

De plus cela peut servir à d'autres.
 
Re : Faire une recherche sur un fichier fermé

ok, j'ai attaché 2 exemples de classeur qui contiennent les infos que je cherche.

petite explication : on va me donner une "période", par exemple de janvier à mars, pour ensuite compter le nombre de jours qu'une personne à travailler (exemple titi).

ce que je voudrais donc c'est pouvoir chercher la case contenant "janv-10" (qui a des coordonnées différentes entre chaque fichier) pour connaitre sa ligne pour que je puisse partir de cette ligne la dans la rangée "titi"...

pour le moment j'ai donc trouvé comment récupérer la valeur d'une celulle

Code:
rechercheValeur(ActiveWorkbook.Path & "\myRep\", nomFichier, "Feuille", "R12C7")

Private Function rechercheValeur(ByVal dossier As String, ByVal nomFichier As String, ByVal feuille As String, ByVal cellule As String)

    Dim Argument As String
   
    Argument = "'" & dossier & "[" & nomFichier & "]" & feuille & "'!" & cellule
    
    rechercheValeur = ExecuteExcel4Macro(Argument)
End Function

mais la, je rentre moi même la cellule qui contient "janv-10".

au pire des cas, si c'est pas possible ou trop compliqué, je peux envisager d'ouvrir les classeurs...
 

Pièces jointes

Re : Faire une recherche sur un fichier fermé

Bonjour kakashi99, aux participants et à ceux qui passeront par ici,

Désolé pour avoir plaisanté avec ton épouvantail! J'ai seulement été surpris. 🙂

Je te propose la méthode ADO dans le Classeur joint. (Qui est une autre façon de faire)

Le principe est de faire une copie globale de la Feuille recherchée du Classeur fermé
Celle-ci sera provisoirement ajoutée dans le Classeur maître.
Tu verras que par la suite la copie des cellules que l'on souhaite devient aisée.
(Ainsi que le montre la Feuille "ACCUEIL"

On pourra ajouter la suppression de cette dernière après en avoir pompé les éléments.

Tu regarde, et tu me dis.
Si cette idée te convient je suis disposé à peaufiner cet exemple.

Amicalement.

Yann
 

Pièces jointes

Dernière édition:
Re : Faire une recherche sur un fichier fermé

Salut tout le monde !!

@YANN-56 : j'ai testé ton code et malheureusement ça ne marche. enfin presque pas.

j'ai une partie de la page, mais pas toutes les valeurs. J'ai chercher un peu et il semblerait que la plus part des infos des fichiers "sources" soient remplies par une macro à l'ouverture du fichier... ce qui pourrais surement poser problème vu que je n'ouvre pas les fichiers "sources".

Par contre j'ai testé le code donné par Softmama et la j'ai bien toutes mes valeurs ! mais totalement inutilisable pour de la recherche étant donné que la cellule contient une formule pointant vers le fichier "source" et non pas le contenu de la cellule "source".

en attendant de trouver une soluce, comment on ouvre un autre classeur ?
 
Re : Faire une recherche sur un fichier fermé

Par contre j'ai testé le code donné par Softmama et la j'ai bien toutes mes valeurs ! mais totalement inutilisable pour de la recherche étant donné que la cellule contient une formule pointant vers le fichier "source" et non pas le contenu de la cellule "source"

Re,

Bon alors là, il suffit de rajouter après le
Code:
 c.AutoFill Range(c, c.Offset(0, nbcolonnes - 1))
ceci:
Code:
c = c
puis
Code:
Range(c, c.Offset(0, nbcolonnes - 1))=Range(c, c.Offset(0, nbcolonnes - 1))

ou alors faire une recherche par la méthode find en plaçant le paramètre :
Code:
Lookin:=xlValues
au lieu de
Code:
Lookin:=xlFormulas
Tu devrais t'en sortir avec tout ça je pense, sinon fais le savoir.
 
Dernière édition:
Re : Faire une recherche sur un fichier fermé

Re Bonjour kakashi99

Pour aller plus loin:

Es-tu en réseau?
Car effectivement il pourrait y avoir un souci dans le cas où le Classeur où sont
les données soit ouvert par une autre personne!... D'où l'intérêt de la méthode ADO.

Sinon: Inutile! Autant ouvrir le Classeur et faire une copie traditionnelle via VBA.

Par ailleurs il serait possible de transporter les Macros dont tu parles dans le Classeur maître.

J'ai une partie de la page, mais pas toutes les valeurs.

Sur mon exemple, ou sur ton adaptation avec tes propres Feuilles?

Amicalement, et à te lire.

Yann

P.S. Je n'ai pas vu de choses du genre:
"Private Sub Workbook_Open()" dans tes deux Fichiers ???
 
Dernière édition:
Re : Faire une recherche sur un fichier fermé

Bonsoir kakashi99, et à ceux qui passeront par ici,

Tu n'as pas répondu à mon dernier message... Pas grave! ... Bien que...!

Sans doute es-tu en train de bosser par ailleurs.

En mettant de l'ordre dans mes archives, j'ai trouvé ceci.
La mise en page pour la lecture reste à parfaire.

J'ai pensé que cela puisse t'intéresser car il y a des trucs
relatifs à ce que tu cherches qui me semblent exploitables.

Je n'ai rien testé, car je n'utilise plus "Application.ExecuteExcel4Macro"
depuis que je l'ai remplacé par la dernière méthode que je t'ai proposée.

Amicalement, et au plaisir. 🙂

Yann
 

Pièces jointes

Dernière édition:
Re : Faire une recherche sur un fichier fermé

Bonjour tout le monde.

désolé Yann de ne pas t'avoir répondu avant, mais j'ai eu une semaine assez chargée, et plusieurs choses en parallèle à ce projet.

Pour info, j'ai utilisé la méthode de Softmama et cela fonctionne comme attendu. Comme je l'ai dit dans mon message plus haut avec la méthode que tu m'avais donné, j'avais bien une partie de mes pages mes pas les données qui m'intéressaient. Et dans un soucis de "rapidité", j'ai pris la solution qui fonctionnait tout de suite, sans chercher (pour le moment) le pourquoi l'autre méthode ne fonctionne pas.

en tout cas merci à vous, ça m'a bien aidé !!

ps: y a un bouton "Résolu" ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
298
Retour