Demande d'information, récupérer dans une combobox une liste d'un autre classeur

  • Initiateur de la discussion Initiateur de la discussion zephir94
  • 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 !

zephir94

XLDnaute Impliqué
Bonjour à tous,

J'ai deux classeurs dans un même répertoire et je voudrais récupérer dans une combobox une liste d'un autre classeur.
Le classeur source peut être ouvert ou fermé.
La liste que je souhaite récupérer est dans une plage nommée et dans une feuille de mon classeur A
La combobox où je souhaite récupérer cette liste est dans un userform de mon classeur B.

Merci par avance à ceux qui pourront m'expliquer comment faire avec qu'elle instruction ou méthode

Amicalement

Zephir94
 
Re : Demande d'information, récupérer dans une combobox une liste d'un autre classeur

Bonjour,

Si tu tiens aux zones nommées (qui ne servent à rien)

-Dans le fichier source, nommer la (les) zone(s) Risques par exemple
-Dans l'autre classeur
-Sélectionner le champ récepteur
=ADOrisquesSource!risques
-Valider avec maj+ctrl+entrée

La zone Risques peut être déplacée dans la source

JB
 
Re : Demande d'information, récupérer dans une combobox une liste d'un autre classeur

Et bien si cette solution simple ne vous convient pas, ouvrez le classeur A s'il n'est pas ouvert pour récupérer les infos, ou débrouillez vous avec ce qui vous a été indiqué par d'autres.

L'éventualité de ne pas déposer effectivement la formule matricielle dans une feuille mais seulement de la définir comme référence à un nom du classeur B était la première piste suggérée dans mon poste #3
 
Dernière édition:
Re : Demande d'information, récupérer dans une combobox une liste d'un autre classeur

Bon j'ai avancé, le code est un peu lourd mais il a le mérite de fonctionner

Code:
Sub test()
répertoire = ThisWorkbook.Path & "\"
    fichier = "classeur A.xls"

    Dim lFound As Boolean
    
    lFound = False
    For Each lWorkbook In Workbooks
        If lWorkbook.Name = fichier Then
            lFound = True
            Exit For
            With Workbooks("classeur B.xls").Worksheets("Base")
    .Cells.ClearContents
    Workbooks("classeur A.xls").Worksheets("Base").Cells.Copy Destination:=.Range("A1")
        End With
        End If
    Next
    If lFound Then

Else
Workbooks.Open filename:=ThisWorkbook.Path & "\classeur A.xls"
   With Workbooks("classeur B.xls").Worksheets("Base")
    .Cells.ClearContents
    Workbooks("classeur A.xls").Worksheets("Base").Cells.Copy Destination:=.Range("A1")
End With
Workbooks(fichier).Close
    End If

End Sub

en l'intégrant à l'ouverture de mon userform1 il récupère la dernière base avant que l'utilisateur ne l'utilise
 
Dernière édition:
Re : Demande d'information, récupérer dans une combobox une liste d'un autre classeur

Ton code copie un champ (comme le mien dans le post #22) mais il n'importe pas les noms de champ.

Pour importer les noms de champ, il faut copier la feuille et non pas un champ:

Sheets("BD").Copy After:=Workbooks("FormCascade2nivRisque2.xls").Sheets(1)



Code:
Private Sub UserForm_Initialize()
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  répertoire = ThisWorkbook.Path & "\"
  fichier = "RisqueAdoSource.xls"
  If Dir(répertoire & fichier) = "" Then MsgBox fichier & " inconnu": Stop
  Sheets("bd").Delete
  Workbooks.Open Filename:=répertoire & fichier
  Sheets("BD").Copy After:=Workbooks("FormCascade2nivRisque2.xls").Sheets(1)
  Windows(fichier).Close
  Sheets(1).Select
  Application.ScreenUpdating = True
  Set f = Sheets("bd")
  Me.ListBox1.List = Application.Transpose(f.[A1].Resize(, Application.CountA(f.[A1:IV1])))
End Sub

Private Sub ListBox1_Click()
  col = Me.ListBox1.ListIndex + 1
  i = 2
  Me.ListBox2.Clear
  Do While f.Cells(i, col) <> ""
    Me.ListBox2.AddItem f.Cells(i, col)
    i = i + 1
  Loop
End Sub

JB
 

Pièces jointes

Dernière édition:
- 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

Réponses
9
Affichages
395
Retour