Source ComboBox & Classeur fermé

Résolu/Fermé
Eladaz Messages postés 5 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 11 septembre 2013 - 10 sept. 2013 à 15:51
Eladaz Messages postés 5 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 11 septembre 2013 - 11 sept. 2013 à 14:04
Bjr à tous,

J'espère ne pas me tromper de forum.
J'essaye de faire fonctionner un ComboBox avec un classeur excel fermé. C'est à dire que la source (base de donnée) est dans un classeur fermé. Est ce que cela est possible ?
Voici les deux solutions que j'ai tenté sans succès:
(Pas la peine de préciser que je suis super débutant..., vous devriez vous en rendre compte avec mon code...):

Sol 1:
Private Sub UserForm_Initialize()

Dim CheminCompletBank As Variant
Dim CheminBd As String
Dim NomBd As String
Dim NomFeuil As String
Dim PlageBank As Range
Dim derlign As String

derlign = Range("A1").End(xlDown).Row
PlageBank = Range("A1:A" & derlign)
CheminBd = "'C:\Users\...\Bases de Données\"
NomBd = "BdVariables.xlsx"
CheminCompletBank = CheminBd & "[" & NomBd & "]" & NomFeuil & PlageBank

ComboBank.List = CheminCompletBank

End Sub



Sol 2:
Dim CheminCompletBank As Variant
Dim CheminBd As String
Dim NomBd As String
Dim NomFeuil As String
Dim PlageBank As Range
Dim derlign As String

derlign = Range("A1").End(xlDown).Row
PlageBank = Range("A1:A" & derlign)
CheminBd = "'C:\Users\...\Bases de Données\"
NomBd = "BdVariables.xlsx"
CheminCompletBank = CheminBd & "[" & NomBd & "]" & NomFeuil & PlageBank

With CheminCompletBank
i = 2
Do While CheminCompletBank.Cells(i, 1) <> ""
Me.ComboBank.AddItem Cells(i, 1)
i = i + 1
Loop
End With

End Sub


Voilà... Merci par avance pour votre aide....

8 réponses

Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
Modifié par Le Pingou le 10/09/2013 à 16:19
Bonjour,
Quel message d'erreur recevez-vous pour chacun des codes ?
Pourquoi les données de la liste déroulante ne peuvent pas être dans le même classeur ?
Note : cette instruction
derlign = Range("A1").End(xlDown).Row
se rapporte à la feuille active du classeur actif et non pas à celle du classeur fermer.... référence incorrect dans la ligne :
CheminCompletBank = CheminBd & "[" & NomBd & "]" & NomFeuil & PlageBank

Salutations.
Le Pingou
0
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
10 sept. 2013 à 16:44
Bonjour,
Et en plus le nom de la feuille manque dans la variable [NomFeuil]...!
Salutations.
Le Pingou
0
Eladaz Messages postés 5 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 11 septembre 2013
10 sept. 2013 à 16:51
Bjr Le Pingou,

Et merci pour ta réponse...
Alors:

Sol1: Msg erreur: "Erreur d'execution '1004'. La methode 'Range de l'objet '_Global' a échoué.

Sol2: Msg errur: "Erreur d'execution '424': Objet requis

Le pingouin:
"Pourquoi les données de la liste déroulante ne peuvent pas être dans le même classeur ? "

Eladaz:
"L'idée est de travailler avec un classeur excel qui va me servir de base de donnée mais je n'ai aucune utilité de l'ouvrir, j'ai juste besoin des données pour nourrir mon UserForm et travailler sur un autre classeur excel. Le projet global consiste à récupérer des données sur le classeur (base de données fermé) grâce à un UserForm puis après avoir mixé puis ordonner les données avec celles du classeur ouvert, enregistré puis envoyer un fichier par mail contenant toutes les informations nécessaires. (j'espère que c'est compréhensible.... )

S'il n'y a pas de solution, j'intégrerai l'ouverture puis la fermeture du fichier "base de données" à ma macro et ce n'est pas bien grave.... Ou peut être avez vous une solution (pour débutant) plus intelligente, il y a évidemment bcp de fonctionnalités que je ne connais pas.

Merci encore...
0
Eladaz Messages postés 5 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 11 septembre 2013
10 sept. 2013 à 17:04
... Et effectivement, j'avais oublié ds mon copier/coller le nom de variable NomFeuil mais cela ne change rien aux messages d'erreur....
0
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
10 sept. 2013 à 21:43
Bonjour,
Merci pour l'information.
Il n'y a aucun problème pour aller chercher les valeurs pour la liste déroulante dans un classeur fermé.
Il faut connaitre exactement l'endroit où se trouvent ces données ; c'est OK pour le chemin, le nom du classeur et la feuille, il reste à préciser la plage de la feuille... !
Je suppose que le formulaire (UserForm) avec la zone de liste déroulante se trouve sur le classeur actif ... !
Pouvez-vous mettre ce fichier sur https://www.cjoint.com/ et poster le lien, ceci m'évitera de construire un exemple... !

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Eladaz Messages postés 5 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 11 septembre 2013
11 sept. 2013 à 08:54
Eh bien pour le moment le UserForm ne se trouve attaché à aucune feuille active en particulier (il est dans "Feuilles" de mon VBAProjet (Personal.XLSB)), à terme il sera appelé par un autre UserForm présent dans une macro, lorsque l'on appuiera sur la touche "Ajouter Client". c'est pouquoi je ne suis pas sur de savoir comment vous envoyer de feuille active. Pour le moment le seul code que j'ai attaché à ce UserForm est:

Private Sub UserForm_Initialize()

Dim CheminCompletBank As Variant
Dim CheminBd As String
Dim NomBd As String
Dim NomFeuil As String
Dim PlageBank As Range
Dim derlign As String

derlign = Range("A1").End(xlDown).Row
PlageBank = Range("A1:A" & derlign)
NomFeuil = Sheets("Bank")
CheminBd = "'C:\Users\...\Documents\Projet TradeReports\Bases de Données\"
NomBd = "BdVariables.xlsx"
CheminCompletBank = CheminBd & "[" & NomBd & "]" & NomFeuil & PlageBank

ComboBank.List = CheminCompletBank

'With CheminCompletBank
'i = 2
'Do While CheminCompletBank.Cells(i, 1) <> ""
'Me.ComboBank.AddItem Cells(i, 1)
'i = i + 1
'Loop
'End With



End Sub

Et la feuille "Bank" présente dans "BdVariables.xlsx" ne contient rien d'autre qu'une colonne "A" avec l'intitulé "Client Bank" , et deux noms de banques en A2 et A3.

Merci encore de me consacrer du temps, l'idée n'est vraiment pas de vous en faire perdre trop, mais juste de connaitre la méthode de remplissage de mon Combobox avec fichier fermé.

Merci encore...
0
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
11 sept. 2013 à 09:32
Bonjour,
Merci pour l'information.
Comme c'est un peu boiteux, je vais vous créer un exemple selon ce que j'ai compris, patience... !

0
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
11 sept. 2013 à 10:51
Bonjour,
Voici ma proposition : https://www.cjoint.com/?3IlkYGpVySn
Voir la note sur la feuille du classeur... !

0
Eladaz Messages postés 5 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 11 septembre 2013
11 sept. 2013 à 14:04
Aaaahhhhh... Lorsqu'on a passé deux jours à chercher quelque chose et qu'enfin cela fonctionne... Cela fait un bien fou.... Merci beaucoup Le Pingou pour votre aide et votre temps. C'est très sympa.
Peut être à bientôt...
0