Zone de liste déroulante lié à un autre fichier excel
Seby45
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
thev Messages postés 1986 Date d'inscription Statut Membre Dernière intervention -
thev Messages postés 1986 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Mon travail consiste à réaliser une base de donnée de consommation électrique, j'ai donc plusieurs fichiers excel concernant un logement chacun. Mon but étant de réaliser une interface "bilan" sur un autre fichier excel pour récupérer les données de chaque logement.
En premier lieu j'ai voulu créer un bouton ou lorsque l'on appuie dessus nous avons la possibilité de choisir le fichier, parmi nos documents, pour copier les informations voulues et les coller sur mon fichier "bilan".
Cependant je souhaite maintenant l'améliorer en créant une zone de liste déroulante proposant tous les logements qui me permettra dès lors qu'on sélectionne dans la liste le logement voulue il nous ouvre le fichier correspondant pour copier les valeurs puis referme le fichier comme le faisait le bouton.
Voici mon code pour le sub avec un bouton que j'essaie d'adapter sans succès:
J'espère avoir été clair, merci de votre temps.
Cordialement,Seby45.
Mon travail consiste à réaliser une base de donnée de consommation électrique, j'ai donc plusieurs fichiers excel concernant un logement chacun. Mon but étant de réaliser une interface "bilan" sur un autre fichier excel pour récupérer les données de chaque logement.
En premier lieu j'ai voulu créer un bouton ou lorsque l'on appuie dessus nous avons la possibilité de choisir le fichier, parmi nos documents, pour copier les informations voulues et les coller sur mon fichier "bilan".
Cependant je souhaite maintenant l'améliorer en créant une zone de liste déroulante proposant tous les logements qui me permettra dès lors qu'on sélectionne dans la liste le logement voulue il nous ouvre le fichier correspondant pour copier les valeurs puis referme le fichier comme le faisait le bouton.
Voici mon code pour le sub avec un bouton que j'essaie d'adapter sans succès:
Sub Informations_du_logements()
' Déclaration des variables
Dim xls As Excel.Workbook
Dim ligne As Integer
Dim i As Integer
' Créer liste déroulante
ActiveSheet.DropDowns.Add(275, 78, 100, 15.75).Select
With Selection
.ListFillRange = "AD1:AD10"
.LinkedCell = "A1"
.DropDownLines = 10
.Display3DShading = False
End With
' Sélection du classeur source à partir d'une fenêtre
cheminfichier = Application.GetOpenFilename("Fichiers Excels (*.xlsx), *.xlsx")
' Si on clique sur Annuler dans la fenêtre, on sort de la boucle
If cheminfichier = False Then
End If
'Ouverture du classeur source
Workbooks.Open cheminfichier
' Récupération du nom du classeur + extension
For i = Len(cheminfichier) To 1 Step -1
If Mid(cheminfichier, i, 1) = "\" Then Exit For
Next
nomfichier = Mid(cheminfichier, i + 1, Len(cheminfichier))
Set xls = GetObject(nomfichier)
' Copie des valeurs entre les classeurs
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(8, "E").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "C").Value
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(8, "H").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "D").Value
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(9, "E").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "E").Value
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(9, "H").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "H").Value
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(12, "E").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "I").Value
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(12, "H").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "J").Value
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(10, "E").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "K").Value
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(11, "D").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "L").Value
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(11, "F").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "M").Value
Workbooks("Bilan_mesures_effectuees.xlsm").Sheets("Bilan").Cells(11, "H").Value = Workbooks(nomfichier).Sheets("Recap").Cells(5, "N").Value
' Fermeture du classeur source
Set xls = Nothing
Windows(nomfichier).Activate
Workbooks(nomfichier).Close False
' Incrémentation du numéro de ligne
ligne = ligne + 1
End Sub
J'espère avoir été clair, merci de votre temps.
Cordialement,Seby45.
A voir également:
- Zone de liste déroulante lié à un autre fichier excel
- Liste déroulante excel - Guide
- Excel liste déroulante en cascade - Guide
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
1 réponse
Ta procédure me parait bien compliquée.
Il te suffit dans ton fichier bilan de créer les liens hypertexte relatifs à tes fichiers logement et d'insérer ton code récapitulatif dans l'événement ci-dessous de la feuille où tu auras créé tes liens :
Il te suffit dans ton fichier bilan de créer les liens hypertexte relatifs à tes fichiers logement et d'insérer ton code récapitulatif dans l'événement ci-dessous de la feuille où tu auras créé tes liens :
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
<ton code récapitulatf>
End Sub