Contrôle du userform d'un autre fichier depuis une macro

toine59

XLDnaute Nouveau
Bonjour à tous,

Je cherche à contrôler depuis un fichier central le userform (identique et avec le même nom) de 10 fichiers.

Dans chaque fichier, le userform apparait à l'ouverture du fichier et je souhaite que sa valeur .mois.Value soit celle définie dans le userform de mon fichier central .booklet.Value

J'ai fait de nombreuses tentatives mais aucune n'est fructueuse... voici la partie de mon code concerné :


Dim i As Integer
For i = 1 To UBound(Tablo)
Workbooks.Open Filename:=Tablo(i, 1) & "\" & Tablo(i, 2) & ".xltm"
With Workbooks(Tablo(i, 2) & ".xltm").UserForm1
Set .mois.Value = .booklet.Value
Unload UserForm1
End With

Merci à tous :)
 

Dranreb

XLDnaute Barbatruc
Re : Contrôle du userform d'un autre fichier depuis une macro

Bonjour.
Même si je ne dis pas cela impoosible, je ne m'amuserais pas à essayer d'accéder à un userform défini dans un autre projet VBA.
Passez par une cellule du fichier central contenant ce fameux mois
Si impossible, un nom du fichier central, ayant pour référence non pas une adresse de cellule mais ce fameux mois.
Une autre possibilité qui aurait ma préférence, si c'est possible, que toutes la programmation soit dans le fichier central, avec un Run d'une de ses macros dans le Thisworbook.Open de chacun des 10.
À+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Contrôle du userform d'un autre fichier depuis une macro

Bonjour Toinet, bonjour le forum,

Difficile de t'aider avec juste ce bout de code...
Je ne crois pas que l'on puisse modifier comme ça une UserForm d'un autre classeur sans passer par VBAProject.
En plus, je ne comprends pas que .booklet.Value soit pointé et fasse référence à l'UserForm : Workbooks(Tablo(i, 2) & ".xltm").UserForm1 alors que tu dis qu'il vient de l'UserForm de ton fichier central...

[Édition]
Bonjour Bernard on s'est croisé...
 

toine59

XLDnaute Nouveau
Re : Contrôle du userform d'un autre fichier depuis une macro

Bonjour Robert,

Voici exactement le scénario que je souhaite :

Ouverture du fichier central
Apparition du Userform avec liste de valeurs . booklet.Value
Sélection d'une valeur

Puis...

Pour chacun des 10 fichiers :

Ouverture du fichier
Affichage du userForm 1 avec liste de valeur .mois.Value
Définition automatique de .mois.Value = .booklet.Value
Fermeture du userform ( la macro associée se lance)
Impression du document ( macro gérée :) )
Fermeture du document
Passage au document suivant...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Contrôle du userform d'un autre fichier depuis une macro

Bonjour Toine, Bernard, bonjour le forum,

Il ne faudrait pas que l'UserForm s'affiche à l'ouverture du fichier. Il faudrait d'abord ouvrir le fichier, puis modifier le code d'initialisation de l'UserForm pour y placer la valeur récupérée puis afficher cette UserForm... Mais je suis désolé je ne sais pas faire ça...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Contrôle du userform d'un autre fichier depuis une macro

Bonjour le fil, bonjour le forum,

Peut-être, comme ça :
Dans chaque fichier tu rajoutes une macro (Macro1) dans un module (Module1) qui ouvre l'Userform (UserForm1.Show). Plus d'affichage de l'Userform à l'ouverture du fichier.
Tu stockes la valeur du mois dans une variable. Tu ouvres le fichier. Tu places la variable dans une cellule du fichier ouvert.
Tu modifies le code d'initialisation de l'UserForm pour qu'il récupére la valeur de la cellule.
Tu lances la macro1 du module 1 du fichier ouvert... (comment ? ça je sais pas comment).
 

Dranreb

XLDnaute Barbatruc
Re : Contrôle du userform d'un autre fichier depuis une macro

Bonsoir.
Donc, l'idée:
Le moins de programmation possible dans les 10 classeurs: juste dans leurs modules ThisWorkbook:
VB:
Private Sub Workbook_Open()
Application.Run "ClassCentral.xls!Ouverture", Me.Name
End Sub
et dans un module ordinaire, cette fois, du ClassCentral.xls une procédure qui commence comme ça:
VB:
Sub Ouverture(NomClass As String)
Dim Class As Workbook
Set Class = Workbooks(NomClass)
Comme ça, pas besoin d'un userform dans chacun, un seul qui est dans le classeur central et que vous affichez dans cette procédure.
À+
 

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 342
Membres
103 821
dernier inscrit
Lorient56