Obtenir des informations provenant d'un autre classeur fermé pour remplir un Userform

  • Initiateur de la discussion Initiateur de la discussion Tilous
  • Date de début Date de début

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 !

Tilous

XLDnaute Nouveau
Bonjour,

J'ai un problème à obtenir des infos provenant d'un classeur fermé qui contient un mot de passe (foxtrot).

Dans mon userform du fichier test.xls j'ai un textbox nommé Code_prod dans lequel j'inscris un numéro de produit. Je dois suite à l'inscription vérifier dans mon fichier fermé info produits.xls si le code existe. Si oui, j'ai besoin de remplir le textBox produit avec les infos du code_prod situées dans la colonne C (Description) du fichier fermé.

J'ai essayé des choses, mais je n'y arrive pas. Le code doit se retrouver dans Private Sub Code_prod_Change(), je crois...

Merci de bien vouloir m'aider, car je suis comme dirait-on bloquée!

Louise
 

Pièces jointes

Re : Obtenir des informations provenant d'un autre classeur fermé pour remplir un Use

Bonjour Tilou,
Le plus simple est de copier la BD sur une feuille invisible du fichier Test.
Donc ce que fait ma macro en userform_Initialize
Efface DATAFINI si elle existe
Ouvre le fichier info produits en invisible et copie la BD en fichier Text et masque la feuille
On rempli le combobox avec les codes
voir macro en combobox_change pour remplir le reste
IMPORTANT
Pour utiliser ce fichier il faut avant l'enregistrer dans un dossier contenant le fichier "info produits"
sinon faut modifier le chemin
Bruno

Mis une autre version du fichier le 1er n'effacait pas mon onglet créé
 

Pièces jointes

Dernière édition:
Re : Obtenir des informations provenant d'un autre classeur fermé pour remplir un Use

Bonjour,

Code:
Sub essai()
  ' Microsoft ActiveX DataObject doit être coché
  ' Champ nommé MaBD avec lignes vides
  Set cnn = New ADODB.Connection
  nomcherche = "Martin"
  repertoire = ThisWorkbook.Path & "\"
  cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & _
  repertoire & "ADOsource.xls"
  Sql = "SELECT Prenom,salaire FROM MaBD WHERE nom='" & nomcherche & "'"
  Set rs = cnn.Execute(Sql)
  MsgBox rs("prenom")
  MsgBox rs("salaire")
  rs.Close
  cnn.Close
  Set rs = Nothing
  Set cnn = Nothing
End Sub

Autre méthode

Code:
repertoire = ThisWorkbook.Path & "/"
nomcherche = "Besnard"
[B1].Formula = "=vlookup(" & Chr(34) & nomcherche & Chr(34) & ",'" & repertoire & "ADOsource.XLS'!MaBD,2,false)"
temp = [B1]
MsgBox temp

JB
 
Re : Obtenir des informations provenant d'un autre classeur fermé pour remplir un Use

Bonjour,

Merci d'avoir pris le temps de me répondre.

Je ne suis pas une as du VBA, je vais étudier vos propositions!

Et essayer de les appliquer à mon fichier.

Je vous reviens avec des résultats. si j'y arrive...

Bonne journée et merci encore pour votre précieuse aide.

Louise
 
Re : Obtenir des informations provenant d'un autre classeur fermé pour remplir un Use

J'ai réussi avec ta proposition, mais je ne sais pas pourquoi, mon classeur auquel je me réfère ne pouvais plus s'ouvrir... J'ai donc à la place utiliser open en lecture seule en m'assurant que la feuil DATAFINI soit la feuille active et tout va bien.

Merci pour ton aide... j'aimais mieux ta façon, car il y a un peu de lag avec open, contrairement à ta façon.

Louise

Bonjour Tilou,
Le plus simple est de copier la BD sur une feuille invisible du fichier Test.
Donc ce que fait ma macro en userform_Initialize
Efface DATAFINI si elle existe
Ouvre le fichier info produits en invisible et copie la BD en fichier Text et masque la feuille
On rempli le combobox avec les codes
voir macro en combobox_change pour remplir le reste
IMPORTANT
Pour utiliser ce fichier il faut avant l'enregistrer dans un dossier contenant le fichier "info produits"
sinon faut modifier le chemin
Bruno

Mis une autre version du fichier le 1er n'effacait pas mon onglet créé
 
Re : Obtenir des informations provenant d'un autre classeur fermé pour remplir un Use

Bonjour BOISGONTIER,

Merci de ton aide, mais pour moi il m'était trop difficile d'adapter ton code pour le faire fonctionner avec mes besoins.

Merci de bien avoir voulu m'aider

Louise
 
- 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

Retour