Liste déroulante avec un autre classeur

léti07

XLDnaute Nouveau
Bonjour à tous :)

Mon probleme est le suivant, j'ai créer une liste déroulante dans mon classeur "Matrice" qui trouve sa source dans le classeur "description".
J'ai fait : Insertion --> nom --> definir , et j'ai étais cherché ma liste dans "description"
Ensuite j'ai fait : Données --> Validation, et la j'ai choisi liste
Ma liste déroulante fonctionne mais je dois laisser mon classeur "description" ouvert, dés que je le ferme il n'y a plus rien dans ma liste.

Donc ma question est la suivante, comment faire pour garder les données de ma liste avec le classeur "description" fermer?:confused:

Je travaille avec Excel 2002

Merci d'avance pour votre aide
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Liste déroulante avec un autre classeur

Bonjour,

Voir exemple en PJ

-Les données sont dans un classeur fermé DVSource.xls
-Elles sont copiées dans l'onglet Liste du classeur où est situé le menu Données/Validation

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$2" Then
repertoire = ThisWorkbook.Path & "\"
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & repertoire & "\" & "DVSource.xls"
Set rs = cnn.Execute("SELECT noms FROM MaBD where noms<>''" ORDER BY noms)
Sheets("Liste").[A2:A1000].ClearContents
Sheets("Liste").[A2].CopyFromRecordset rs
End If
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • DVClasseurFerme.zip
    18.3 KB · Affichages: 718
  • DVClasseurFerme.zip
    18.3 KB · Affichages: 731
  • DVClasseurFerme.zip
    18.3 KB · Affichages: 758

léti07

XLDnaute Nouveau
Re : Liste déroulante avec un autre classeur

:( j'arrive pas à faire fonctionner le code.

Rien ne se met dans ma liste :confused:
dans mon classeur "description", j'ai rajouté
MaBD (en C2) et en D2 j'ai mis "=Feuil4!$A$5:$A$506"

ma feuille s'appelle "Feuil4", le nom de ma colonne est "liste" est se trouve en A5 et ma liste commence donc en A6 jusqu'a A506.

ensuite dans mon classeur "Matrice", j'ai créer une feuille qui s'appelle "liste" et j'ai remis exactement la même chose que l'exemple (DVClasseurFerme)

Dans la feuille "Feuil1" (la ou dois apparaitre ma liste), j'ai mis le code.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  If Target.Address = "$A$B$6" Then
   repertoire = ThisWorkbook.Path & "\"
   Dim rs As ADODB.Recordset
   Set cnn = New ADODB.Connection
   cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & repertoire & "\" & "descriptionExpasy.xls"
   Set rs = cnn.Execute("SELECT liste FROM MaBD where liste<>''")
    Sheets("Liste").[A2:A506].ClearContents
   Sheets("Liste").[A2].CopyFromRecordset rs
  End If
End Sub

Ma liste déroulante doit se trouver dans la cellule AB6

Si quelqu'un peux me dire ce que j'ai fait de travers ca serait super gentil
merci d'avance
(je retourne me creuser la tete pour trouver mon erreur :rolleyes:)
 

léti07

XLDnaute Nouveau
Re : Liste déroulante avec un autre classeur

c'est bon j'ai trouver mon erreur,

j'avais juste oublier de créer MaBD (nom-->définir) dans ma classeur "description".

Merci de m'avoir aider.
Et je vous donne rendez-vous à la prochaine question ;)
 

Discussions similaires

Réponses
8
Affichages
168
Réponses
2
Affichages
283

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 180
dernier inscrit
Vcr