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?
-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
Rien ne se met dans ma liste
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 )