Autres Afficher NOM PRENOM dans combobox

FOUQUET Yves

XLDnaute Occasionnel
Bonjour,

Je n'arrive pas à trouver la solution pour afficher NOM et PRENOM dans le même combobox.
Si quelqu'un avait une idée ou une solution, ou une correction...
Ce serait gentil.
Merci;

Je joins un exemple de mon tableur.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,

Il serait plus simple de mettre le nom et le prénom dans la même colonne.

VB:
Private Sub UserForm_Initialize()
  Set f = Sheets("effectif")
  Set Rng = f.Range("B2:C" & f.[B65000].End(xlUp).Row)
  Me.ComboBox1.ColumnCount = 2
  Me.ComboBox1.List = Rng.Value
End Sub

Un crétin a supprimé mon fichier (qui ne contenait pas de données personnelles).
Je l'ai donc remis.

Boisgontier
 

Pièces jointes

  • ComboBox2col.xlsm
    20.4 KB · Affichages: 28
Dernière édition:

FOUQUET Yves

XLDnaute Occasionnel
Bonsoir,

J'ai essayé d’intégrer ta procédure mais je n'arrive pas à la lancer. erreur de compilation objet requis .
Elle fonctionne toute seule dans le fichier téléchargé mais pas dans mon Userform de gestion des adhérents...
Où est l'erreur

VB:
Private Sub UserForm_Initialize()    '---- Affichage NOM et PRENOM dans le "combobox1" à partir de la feuille "Effectif".
Dim j As Long
Dim i As Integer
Dim eff_total As Integer
Dim [B]f[/B] As [B]Range[/B]                      ' Quel type de variable SVP
Dim [B]Rng[/B] As [B]Long[/B]                   ' quel type de variable SVP

eff_total = 0
Set [B]f[/B] = Sheets("Effectif")
 With Me.ComboBox1
   Set [B]Rng[/B] = f.Range("B2:C" & f.[B65000].End(xlUp).Row)
   Me.ComboBox1.ColumnCount = 2
   Me.ComboBox1.List = Rng.Value
 
   eff_total = eff_total + 1   'Je compter le nombre d'adhérents et je l'affiche dans le textbox14.
   TextBox14.Value = (eff_total)
 End With
End Sub
'----------------------------
Merci de ton aide.
 

FOUQUET Yves

XLDnaute Occasionnel
Bonsoir camarade,

OK j'ai copié ta proposition et cela fonctionne!
mais maintenant j'ai un autre problème qui se crée.

et quand je sélectionne un adhérent dans le combobox cela plante et il ne s'affiche pas dans les textboxs.
VB:
Private Sub ComboBox1_Change()
Dim ligne As Long
Dim i As Integer
Dim num_adherent As Integer
ligne = Me.ComboBox1.ListIndex + 2
  For i = 1 To 13    ' ----- 13 textbox à compléter et afficher
    Me.Controls("TextBox" & i) = Ws.Cells(ligne, i + 1)
  Next i
End Sub
...
"Variable objet ou variable du bloc white non définie"
Je pense qu'il doit y avoir un problème d'index... mais où.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

En cas de problème avec un code, on peut ajouter des Msgbox pour voir ce qui se passe
VB:
Private Sub ComboBox1_Change()
Dim ligne As Long
Dim i As Integer
Dim num_adherent As Integer
ligne = Me.ComboBox1.ListIndex + 2
Msgbox ligne
  For i = 1 To 13    ' ----- 13 textbox à compléter et afficher
MsgBox Me.Controls("TextBox" & i).Name
MsgBox Ws.Cells(ligne, i + 1)
   ' Me.Controls("TextBox" & i) = Ws.Cells(ligne, i + 1)
  Next i
End Sub
Ca peut permettre de voir ou cela coince ;)

Excel jamais ne s'aviserait d'écrire cela ;)
"Variable objet ou variable du bloc white non définie"
Sauf peut-être sur le PC d'un membre du KKK.

NB: A quoi correspond la variable Ws dans ton code?
 

FOUQUET Yves

XLDnaute Occasionnel
Code:
Private Sub UserForm_Initialize() 'à l'initialisation de l'userform
' --------------------------------------------------------
Dim j As Long
Dim i As Integer
Dim eff_total As Integer
Dim f As Worksheet
Dim Rng As Range

eff_total = 0
Set f = Sheets("Effectif")
   Set Rng = f.Range("B2:C" & f.[B65000].End(xlUp).Row)
   Me.ComboBox1.ColumnCount = 2
   Me.ComboBox1.List = Rng.Value
    
    For j = 2 To f.Range("B" & Rows.Count).End(xlUp).Row
    eff_total = eff_total + 1
    TextBox14.Value = (eff_total)
    Next j
 
   eff_total = eff_total + 1   'Je compter le nombre d'adhérents et je l'affiche dans le textbox14.
   TextBox14.Value = (eff_total)
End Sub

'============================== Si combobox change et ça plante !! =================================================
Private Sub ComboBox1_Change()
Dim ligne As Long
Dim i As Integer

ligne = Me.ComboBox1.ListIndex + 2
  For i = 1 To 13    ' ----- 13 textbox à compléter et afficher
    Me.Controls("TextBox" & i) = Ws.Cells(ligne, i + 1)
  Next i
End Sub
 

FOUQUET Yves

XLDnaute Occasionnel
C'est là que çà plante... ligne en jaune
Me.Controls("TextBox" & i) = Ws.Cells(ligne, i + 1)


Alors qu'avant cela marchait ...
J'ai réglé l'affichage du nom et prénom (c'est chouette) mais je dois avoir écrit tout ça bizarrement car dès que j'interviens sur le combobox pour sélectionner un nom! Tilt!!
 

FOUQUET Yves

XLDnaute Occasionnel
Ouais!!!! tu es THE KING!!!
Bon c'est quand que j'arrive à ton niveau? Explique moi STP la différence des deux lignes en mots simples...
Me.Controls("TextBox" & i) = Ws.Cells(ligne, i + 1)
Me.Controls("TextBox" & i) = Sheets("Effectif").Cells(ligne, i + 1)
ta ligne fait référence à la "feuille" mais quelle différence entre Ws. et Sheets ("effectif")
 

Discussions similaires

Réponses
10
Affichages
350