Userform modification suppresion de membre (désolé)

F

Faro

Guest
Bonjour à tous,

Débutant dans VBA, je me permet de vous poser ici quelques questions.

Mon objectif est de réaliser sur un Userform la modification et la suppresion de membres (dans un table différentes que la ou ce trouve le UserForm).
Ma premier Userform ajout les membres avec le format suivant :

Numéro/nom/prénom/...

Avec les codes récuperer ici et la, j'arrive a récuperer dans une combobox ma liste (avec le code :
DerLigne = Sheets("BD").Range("A65536").End(xlUp).Row
ThePlage = "BD!A3:E" & DerLigne
Nom.RowSource = ThePlage)

Cependant j'ai deux problèmes :

1.Le premier est que ma combobox affiche mon numéro de membres alors que j'aimerais que ce soit le nom, Comment faire pour préciser a la combobox qu'elle doit regarder la colonne B?

2. Une fois les données extraite, je ne sais plus quoi faire :)

Une réponse au problème 1 me ferait déjà pas mal avancer, je pense pouvoir trouver une solution au problème 2 en travaillant un peu.

Faro
 
G

G'Claire

Guest
Faro, le forum

Essaye ceci, si cela te va :

Avec 1 ComboBox appelé : ComboBoxNom
1 TextBox appelé : TextBoxNumeroDeMembre
1 TextBox appelé : TextBoxPrenom
1 Feuille appelée : BD

Dim WSDonnees As Worksheet
Dim Plage As Range
Dim A As Long
Dim PlageA As String


Private Sub ComboBoxNom_Change()

Set WSDonnees = Sheets("BD")
Set Plage = WSDonnees.Range("B3:B3" & Range("B65535").End(xlUp).Row)

On Error Resume Next
A = Plage.Find(What:=ComboBoxNom, LookAt:=xlWhole).Row

With WSDonnees

TextBoxNumeroDeMembre = .Range("A" & A)
TextBoxPrenom = .Range("C" & A)

End With

End Sub

Private Sub UserForm_Initialize()


Set WSDonnees = Worksheets("BD")

With WSDonnees
PlageA = .Range("B3:B" & .Range("B65536").End(xlUp).Row).Address
End With
ComboBoxNom.RowSource = "BD!" & PlageA

End Sub


Salut G'Claire
 
@

@+Thierry

Guest
Bonsoir, tout le monde ;-)

Mais où sont passées les gazelles ???

LOL non je voulais juste dire à G'claire que c'est pas mal, mais...

1) où diable déclares-tu tes variables ?? (grrrrrrr tout n'est pas public !!!!)
2) si on travaile sur une seule feuille, et surtout dans un seul classeur, inutile de faire une Set de feuille pour une simple intruction de la sorte. Mais c'est pas bien grave...
3) pouquoi faire un Find vu que tu as déjà rentré "RowSource" dans la combo, tu as déjà les numéros de lignes ! (juste décalées)

Enfin sans VBA ouvert (sous réserve de faute de frappe) voilà comment j'écrirai :

Private Sub UserForm_Initialize()
Dim PlageA As String
PlageA = Sheets("BD").Range("B3:B" & .Range("B65536").End(xlUp).Row).Address
ComboBoxNom.RowSource = "BD!" & PlageA
End Sub

Private Sub ComboBoxNom_Change()
With Sheets("BD")
TextBoxNumeroDeMembre = .Range("A" & ComboBoxNom.ListIndex + 3)
TextBoxPrenom = .Range("C" & ComboBoxNom.ListIndex + 3)
End With
End Sub
'ListIndex De ComboBox démarre à 0 donc je décale de + 3 (ajuster si pas ligne 3 sur la feuille)

On pourrait aussi faire du MultiColonnes en RowSource de la ComboBox et récupérer l'index de la colonne dans les TextBox (Voir ma démo Lien supprimé)

Bonne Nuit
@+Thierry
 
@

@+Thierry

Guest
oups !

Private Sub UserForm_Initialize()
Dim PlageA As String
PlageA = Sheets("BD").Range("B3:B" & Sheets("BD").Range("B65536").End(xlUp).Row).Address
ComboBoxNom.RowSource = "BD!" & PlageA
End Sub

C'est çà de travailler dans ces mini fenêtre de Post du Forum !! lol

Bonne Nuit
@+Thierry
 
F

Faro

Guest
Je vous remerci tout les deux pour vos réponses.

Merci de faire du code commenter qui me permet d'apprendre (avec l'espoir d'arriver un jour a votre cheville!).

Bravo aux créateur de ce forum aussi par la même ;)

Faro
 

Discussions similaires

Statistiques des forums

Discussions
313 274
Messages
2 096 754
Membres
106 739
dernier inscrit
jcdu16