Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

UF - Récupérer la valeur d'un combobox

La braise

XLDnaute Occasionnel
Bonjour à Tous,

J'ai un UF avec plusieurs Combobox.

Ce que je souhaite :
- lors que l'on modifie un combobox (celui avec un nom), récupérer la valeur du combobox pour effectuer des Vlookup (dans un onglet du fichier) permettant de rapatrier différentes infos et les afficher dans le UF.

J'ai essayé en utilisant l'option : Private Sub ComboBox1_Change()
où j'ai indiqué :
Nom = UF_02.ComboBox1.Text
Puis
Unload me pour fermer l'UF
et
macro_2 pour aller effectuer les vlookup dans un Sub

La macro_2 est censée :
effectuer les Vlookup,
affecter les résultats à des variables publiques,
relancer le même UF mais cette fois en ajoutant les infos rappatriées.

Mon code Macro_2 :
Sheets("SoldeNom").Select
Set BaseB = Range("A3:B" & ActiveSheet.UsedRange.Rows.Count)
Solde = Application.WorksheetFunction.VLookup(Nom, BaseB, 2, 0)
Uf_02.show

(dans l'UF j'ai un code Private Sub UserForm_Initialize qui charge les variables publiques)

Mais voilà... ça ne marche pas...

je pense avoir identifié un premier pbm via un "msgbox Nom" dans la macro_2 qui est vide.
Conclusion : le code dans Private Sub ComboBox1_Change() ne fonctionne pas pusiqu'il ne me rapatrie pas la valeur modifié du combobox.

Est-ce possible de récupérer ce type d'info (la valeur "changée" suite modif. utilisateur dans combobox) d'un UF?
et comment?

Est-ce possible d'écrire le calcul vlookup comme je l'ai fait c'est à dire :
Solde = Application.WorksheetFunction.VLookup(Nom, BaseB, 2, 0) ?

Je sais que j'aurais pu tout faire dans l'UF mais cela me semble plus compliqué.

Merci d'avance pour votre aide.

 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : UF - Récupérer la valeur d'un combobox

Bonjour le fil, bonjour le forum,

Essaie comme ça :
Code:
Private Sub ComboBox1_Change()
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)
 
Label3.Caption = ""
If ComboBox1.ListIndex = -1 Then Exit Sub
 
With Sheets("Feuil2") 'prend en compte l'onglet "Feuil2"
    Set pl = .Range("A3:A" & .Range("A65536").End(xlUp).Row - 1) 'définit la plage pl
    Set r = pl.Find(Me.ComboBox1.Value, , xlValues, xlWhole) 'définit la variable r
    If Not r Is Nothing Then 'condition : si il existe au moins une occurrence de r dans pl
        Me.Label3.Caption = r.Offset(0, 1).Value 'affiche la valeur de la cellule de la colonne B à droite de r
    Else 'sinon
        Me.Label3.Caption = "Absent" 'affiche "Absent
    End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet "Feuil2"
 
End Sub
 

La braise

XLDnaute Occasionnel
Re : UF - Récupérer la valeur d'un combobox

C'est parfait et c'est excatement ce que je recherchais.

Merci beaucoup.



PS : merci encore pour toutes les explications du code que tu as ajouté.
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : UF - Récupérer la valeur d'un combobox

Bonjour, Bonjour Robert ,
On peut également récupérer directement un champs du TCD
Code:
Private Sub ComboBox1_Change()
Dim Pvt As PivotTable
Label3.Caption = ""
On Error GoTo Fin
Set Pvt = Worksheets("Feuil2").PivotTables("TCD")
Label3 = Pvt.GetData("'Chiffre' Nom " & ComboBox1 & "")
Exit Sub
Fin:
MsgBox "Pas d'entrée pour ce client dans le TCD"

End Sub
A+
kjin
 

Pièces jointes

  • labraise v3.zip
    19.2 KB · Affichages: 29

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…