remplir un userform d'un autre classeur

mimi35garry

XLDnaute Nouveau
Bonjour,
c'est mon premier message sur ce forum qui m'a bien aidéjusque la.
j'ai un classeur pour gérer un stock(que je peut modifier entièrement) et un autre pour passer des commandes(que je peut modifier un minimum).
Ma question concerne la posibilité de copier le contenu d'un combobox d'un userform du classeur de stock vers un textbox d'un userform du classeur commande.
Pour le moment mon classeur de stock ouvre l'autre et appel une macro:
Code:
'dans le classeur de stock
Workbooks.Open (Application.ActiveWorkbook.Path & "\Base de donnée\TestCommande.xls")
 
Application.Run "TestCommande.xls!mamacro" La macro de l'autre classeur ouvre un userform "FormEntretien":
Code:
'dans le classeur de commande, dans un module
Public vartest As Boolean
Sub mamacro()
Sheets("Base").Unprotect
vartest = True 'pour tester si le classeur stock est ouvert
FormEntretien.Show
End Sub
Puis dans le userform_initialize de FormEntretien:

Code:
If vartest = True Then
Workbooks("MaintFiBiSuivi.xls").Activate
Application.Run "MaintFibiSuivi.xls!mamacro2"
 
End If
et dans le classeur de stock dans un module:

Code:
Sub mamacro2()
MsgBox ("entrer dans mamacro2)
Workbooks("TestCommande.xls").FormEntretien.Désignationpièce.Text = Stock.Listepiecestockmini.Text
 
End Sub
J'ai bien la msgbox qui s'affiche donc j'arive sur:
Code:
Workbooks("TestCommande.xls").FormEntretien.Désignationpièce.Text = Stock.Listepiecestockmini.Text
Je précise que FormEntretien est un UserForm et Désignationpièce est un textbox,
Stock est un UserForm et Listepiecestockmini un combobox.

et j'ai l'erreur: Erreur d'exécution '438'
Propriété ou méthode non géré par cette objet.
Je suppose que c'est ma synthaxe qui n'est pas bonne.
Et si ça marche j'aurais plusieurs control à copier.
Désolé c'est un peu long mais je voulais être le plus précis possible.
Merci pour vos futurs réponses.
 

Gelinotte

XLDnaute Accro
Re : remplir un userform d'un autre classeur

Bonsoir,

Je crois qu'il n'est pas possible de passer le contenu d'une variable d'un classeur vers un autre classeur en naturel.

Pour réussir à le faire, il faut une bidouille expliquée ... ici ... par Dranreb.

Une façon de ne pas utiliser cette bidouille décrite par Dranreb si elle ne nous convient pas : du classeur1, on écrit temporairement le contenue du combobox dans une feuille, puis du classeur2, on peut lire dans la feuille d'un autre classeur pour l'inscrire dans le textbox.

Voici donc 2 façons de faire qui, je l'espère, t'aideront poursuivre dans ton projet.


G
 

mimi35garry

XLDnaute Nouveau
Re : remplir un userform d'un autre classeur

Merci pour votre réponse et pour le lien.
Je vais faire comme dans votre seconde solution.
Ont m'a donné ce bout de code qui fonctionne mais après pour récupéré les infos que je veut il y a encore quelques lignes de code à écrire ...

Code:
Dim d, u
For Each d In Workbooks("Classeur2.xlsm").VBProject.VBComponents
 If d.Name = "UserForm1" Then Set u = d
Next
MsgBox TypeName(u) & " nommé " & u.Name
Merci encore.
 

Discussions similaires

Réponses
9
Affichages
696
Réponses
1
Affichages
128

Statistiques des forums

Discussions
312 396
Messages
2 088 053
Membres
103 708
dernier inscrit
Sisy