[Résolu] Recherchev dans un classeur fermé ?

olivier73

XLDnaute Nouveau
Bonjour

J'ai deux classeurs, l'un de base de donné et l'autre pour l'affichage de certaines données.

Pour le moment j'effectue l'affichage avec la formule recherchev mais le classeur de donné doit être ouvert.

Est-il possible de faire la même chose sans ouvrir le classeur de donné ?:confused:

Cordialement

ps : Si je dois changer mon recherchev, cela n'est pas un problème.
 
Dernière édition:

Carnage029

XLDnaute Occasionnel
Re : Recherchev dans un classeur fermé ?

J'ai eu le même soucis, j'ai finalement opté pour ouvrir le fichier BDD au début de ma procédure, puis effectuer ma recherche/changements et le refermer, avec un screenupdating = false c'est invisible à l'oeil nu, mais le classeur est bien ouvert pendant la procédure,

Si cette solution te convient dis moi, je te mettrai une petite macro à adapter
 

JunFan

XLDnaute Junior
Re : Recherchev dans un classeur fermé ?

Bonjour

Sinon tu mets en place une requête avec MS Query. Les données se mettent à jour dans ton classeur sans ouvrir ta base de donnée. Les calculs sont fait à partir du même fichier donc plus rapide.

Cordialement
 

JunFan

XLDnaute Junior
Re : Recherchev dans un classeur fermé ?

Re

MS Query se trouve dans le menu "Données" --> "Données externes".

Cela sert à importer des données. Tu pourrais donc, à partir de ton classeur, importer seulement les données dont tu as besoin depuis ton autre classeur Base de données.

(exemple : pour le classeur X, tu aurais besoin des colonnes A (dates), B (noms) et C (prénoms) de ton classseur BDD, avec seulement l'import des données qui font référence à l'année 2012 dans la colonne A).

Ensuite tu as juste à mettre à jour les données externes en cliquant sur une icône. Donc pas besoin d'ouvrir le fichier BDD.

Cordialement
 
Dernière édition:

Carnage029

XLDnaute Occasionnel
Re : Recherchev dans un classeur fermé ?

Code:
Sub call_recap(myD As Date, myNo As String, myVal)

Dim fso As Object
Dim itEx, tabort As Boolean
Dim I, K As Integer
Dim J As Integer
'Dim celluletrouve As Cell

K = 0
tabort = False

'Ouverture du classeur Récapituatif-Remboursement.xlsx'
MyPath = ActiveWorkbook.Path ' On récupère le chemin actuel du classeur '
Set fso = CreateObject("Scripting.FileSystemObject") 'vérifie l'existence du fichier '
    x = fso.FileExists(MyPath & "\Historique-Récapitulatif" & ".xlsm")
    If x = True Then 'si oui, on ouvre ce fichier
        Set wk = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Historique-Récapitulatif" & ".xlsm")
            wk.Activate
            Application.Visible = True
        
        ' Trouver la ligne du bon numéro d'adherent "
        With Sheets("Récapitulatif")
            
            Set celluletrouve = wk.Sheets("Récapitulatif").Range("a4:a29").Find(myNo, LookIn:=xlValues, lookat:=xlWhole)

wk.close


voilà, j'ai enlevé des parties à toi de voir comment l'adapter, mais tu met ton vlookup a la place de mon find et ça devrait être bon normalement.
 

olivier73

XLDnaute Nouveau
Re : Recherchev dans un classeur fermé ?

Merci Carnage029 et JunFan.

@JunFan : Pour le MSQuery, est ce qu'on est obligé de retranscrire les données sur une nouvelle feuille ou n'y a t-il pas moyen que cela soit totalement invisible ?

@carnage029: Merci pour ton code, mais il s'applique bien si on a une seule donnée à mettre jour ! Mais dans mon cas, sur une feuille, j'ai une quinzaine de donnée et pour le nombres de feuilles tout dépend du dossier !
Donc je ne pense pas que cela soit la meilleure solution !!! A moins de n'avoir rien compris au code...
 

Carnage029

XLDnaute Occasionnel
Re : Recherchev dans un classeur fermé ?

Je comprend pas trop, je vais donc te demander de reformuler.

Mettons que ton classeur BDD s'appelle A.xls et que ton classeur de travail s'appelle B.xlsm

Tu souhaite que lorsque tu ouvres B.xlsm il aille chercher les données dans A.xls ?
 

Carnage029

XLDnaute Occasionnel
Re : Recherchev dans un classeur fermé ?

Et bien, tu prend la maccro que je t'ai filé, tu l'adaptes un peu, en changeant par exemple le find en lookup, tu met tes 15 requettes, et tu met un : call mamacro() dans : Private Sub Workbook_Open() (présent dans thisworkbook)

Voilà, si tu as des questions relative à la macro en elle même n'hésite pas

P.S. : Tes fichiers sont t'ils confidentiels ?

P.S. 2 : Je te conseille de plutôt que le classeur se mette à jour uniquement lorsqu'on l'ouvre, de créer un bouton "clicable" lançant la macro, à moins que ton besoin soit très spécifique.
 
Dernière édition:

olivier73

XLDnaute Nouveau
Re : Recherchev dans un classeur fermé ?

Ils le sont plus ou moins ! Sinon je les aurais envoyés depuis longtemps.

Merci pour l'aide.
Je ne sais pas si j'aurai le temps de m'en occuper aujourd'hui, je vais faire au plus vite au cas où j'ai des questions.

A+
 

job75

XLDnaute Barbatruc
Re : Recherchev dans un classeur fermé ?

Bonjour,

Chez moi (Excel 2003) les formules avec RECHERCHEV fonctionnent sur un classeur fermé.

Télécharger les 2 fichiers joints sur le bureau.

Sur Classeur2 nommer Base la plage C3: D12.

Puis ouvrir Classeur1 et entrer en D5 la formule =RECHERCHEV(C5;Classeur2.xls!Base;2;0)

Fermer Classeur2.

A+
 

Pièces jointes

  • Classeur1.xls
    13.5 KB · Affichages: 78
  • Classeur1.xls
    13.5 KB · Affichages: 91
  • Classeur1.xls
    13.5 KB · Affichages: 102
  • Classeur2.xls
    21 KB · Affichages: 81
  • Classeur2.xls
    21 KB · Affichages: 81
  • Classeur2.xls
    21 KB · Affichages: 88

olivier73

XLDnaute Nouveau
Re : Recherchev dans un classeur fermé ?

Bonjour Job75

Il est vrai ça marche comme cela, mais tu es obligé d'ouvrir le classeur2 alors que je ne souhait jamais l'ouvrir !!!

Aussi, mon soucis provient de liste déroulant (oui j'ai oublié de préciser que la case recherché dans la base de donnée était une variable). Et je ne sais pas pourquoi, mais depuis hier, je perds mes liens, même avec le classeur de BD ouvert en premier (j'ai ouvert une discussion à ce sujet) ! Ce qui fait passer mon problème de classeur ouvert ou fermé en second !

Encore merci pour l'aide !
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz