Microsoft 365 RowSource d'une Combobox

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

eric72

XLDnaute Accro
Bonjour à tous,
Je cherche à faire une recherchev en vba à partir d'une combobox et avec une liste qui se trouve dans "Source Communes.xlsx", voilà le code que j'ai écrit (mais sans succès)

Private Sub TxtCommuneFacturation_Change()
TxtCpFacturation.Value = Application.WorksheetFunction.VLookup(TxtCommuneFacturation.Value, "MaListe", 2, 0)
et
Private Sub UserForm_Initialize()
MaListe = "'[Source Communes.xlsx ]feuil1'!List_Communes"
Me.TxtCommuneFacturation.RowSource = MaListe
End Sub

le message est impossible de définir la propriété RowSource (je ne suis pas très doué!!!)
Je pense que l'erreur va vous sauter aux yeux, mais pas au miens...
Merci beaucoup pour votre aide toujours aussi précieuse.
Eric
 
Patricktoulon
est-il également possible de récupérer le code postal juste en sélectionnant la ville avec la même méthode ou faut-il passer par vlookup (mais sans ouvrir le fichier source, ca va être compliqué)!!!
Eric
le code postal tu l'a déjà puisque je récupère les deux colonne dans le fichier fermé
et en sélectionnant un item dans ta liste tu fait par exemple
with TxtCommuneFacturation
msgbox .list(.listindex,1)
end with

le message t'affichera bien le code postal
voila pas la peine de retourner chercher la donnée tu l'a déja 🤣 🤣
et si par estetique tu ne veux pas voir la colonne des codes postals dans la combo ben a la fin du activate tu fait TxtCommuneFacturation.columnwidths="150;0"
 
regarde
VB:
Private Sub TxtCommuneFacturation_Change()
'TxtCpFacturation.Value = Application.WorksheetFunction.VLookup(TxtCommuneFacturation.Value, Workbooks("Source Communes.xlsm").Sheets("Feuil1").Range("List_Communes"), 2, 0)
'TxtCommuneFacturation.Value = Application.Proper(TxtCommuneFacturation.Value)
'Dim objPlageRecherche As Range
'Set objPlageRecherche = Workbooks("Source Communes.xlsm").Worksheets("Feuil1").Range("a2:b37000")
'TxtCpFacturation.Value = Application.WorksheetFunction.VLookup(TxtCommuneFacturation.Value, objPlageRecherche, 2)
With TxtCommuneFacturation
If .ListIndex > -1 Then TxtCpFacturation = .List(.ListIndex, 1)
End With
End Sub

VB:
Private Sub UserForm_Activate()
    Dim Bd$
    Bd = ThisWorkbook.Path & "\Source Communes.xlsm"
    Me.Repaint
    With CreateObject("ADODB.Connection")
        Sql = "select [Nom_commune],[Code_postal] from [Feuil1$]"
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Bd & ";Extended Properties='Excel 12.0;HDR=Yes'"
        tablo = .Execute(Sql).GetRows
        .Close
        With TxtCommuneFacturation
            .ColumnCount = 2
            .Column = tablo
            .ColumnWidths = "150;0"

        End With
    End With
End Sub

demo7.gif
 
- 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
7
Affichages
926
Retour