Erreur RowSource ComboBox
Bonsoir à tous,
Je souhaite que le rowsource d'un de mes combobox corresponde à une plage d'un tableau. Cependant, je ne connais pas à l'avance le nom de mon tableau car il s'agit d'une feuille créée en fonction de profils utilisateurs. En gros, quand je crée un profil utilisateur, une feuille individuelle (nommée par l'identifiant) à chaque utilisateur est créée comprenant un de mes tableaux que je souhaite avoir comme rowsource.
De ce fait, quand un utilisateur s'inscrit avec son identifiant et son MDP, le code récupère l'identifiant et va récupérer la plage du tableau se situant dans la feuille dédiée à cet utilisateur.
Mon code marche sans la ligne du rowsource. Je pense donc que j'ai fait une erreur dans la ligne du rowsource.
Ci joint le code écrit.
Merci pour votre retour.
Private Sub ComboBox1_Change()
ComboBox1.RowSource = Worksheets(Me.TextBox_User_Restitution.Value).Range("B6")
Dim i As Long
i = ComboBox1.ListIndex + 6
Worksheets("Me.TextBox_User_Restitution.Value").Unprotect "123"
If TextBox_User_Restitution <> "" Then
Range("Nom_Outils").Value = Worksheets(Me.TextBox_User_Restitution.Value).Range("B" & i).Value
Worksheets("Me.TextBox_User_Restitution.Value").Protect "123"
If Worksheets(Me.TextBox_User_Restitution.Value).Range("M6").Value > 0 Then
Rendre_outil.Quantité_Emprunts_en_cours.Caption = Worksheets(Me.TextBox_User_Restitution.Value).Range("M6").Value
Rendre_outil.Quantité_Emprunts_en_cours.BackColor = RGB(250, 0, 0)
Else
Rendre_outil.Quantité_Emprunts_en_cours.Caption = Worksheets(Me.TextBox_User_Restitution.Value).Range("M6").Value
Rendre_outil.Quantité_Emprunts_en_cours.BackColor = RGB(0, 250, 0)
End If
Else
MsgBox "Merci de saisir votre Nom / Prénom "
End If
End SubBonjour
Quelle version d'excel?
Mac ou windows?
Un fichier est TOUJOURS le bienvenu
Ton combobox est sur une feuille ou dans un userform?
On ne met pas le rowsource dans un combobox_change....
Là tu mets que la cellule B6 dans ton combobox....
Je te propose (si le combobox est dans un userform)
Private Sub UserForm_Initialize()
Dim tbl
tbl = Sheets("Feuil1").Range("B6").CurrentRegion
Me.ComboBox1.List = tbl
End SubA+ François
Bonjour François,
Merci pour votre retour.
Je pense que vous n'avez pas forcément saisi ce que je souhaitais faire et/ou je me suis peut-être mal exprimé.
1er point:
J'ai 2 userforms (en réalité j'en ai bien plus mais supprimés pour faire simple):
l'un "ident_" qui permet de s'identifier (auparavant, les utilisateurs ont été enregistré dans une feuille excel)
l'autre "rendre_outil" qui permet de rendre un outil.
Quand je souhaite rendre un outil, les utilisateurs doivent s'identifier (cliquer sur "s'identifier") de l'userform "rendre_outil". En cliquant sur "s'identifier" ça ouvre l'userform "ident_" pour pouvoir s'identifier.
2ème point:
Quand j'enregistre les utilisateurs, j'ai réalisé un code qui me crée automatiquement une feuille individuelle par chaque utilisateur nommée par le nom de l'utilisateur.
Je ne connais donc pas à l'avance qu'elle feuille sera choisie, seule l'userform "ident_" va permettre de trier. D'où le "Worksheets(Me.Txt_User.Value)" qui permet de savoir qu'elle feuille.
3ème point:
Je souhaite que quand l'utilisateur s'identifie, mon RowSource "ComboBox1" de mon userform "rendre_outil" change en fonction du tableau présent dans chaque feuille individuelle par utilisateur.
Pas facile de vous décrire tout en étant clair.
Vous trouverez ci-joint mon fichier (en effet, j'ai tout supprimé pour vous faciliter la tâche, seuls mes 2 userforms cités dessus sont présents).
Merci à vous.
J’ai oublié de spécifier:
J’ai mis votre code cité ci dessus ailleurs que dans le combobox change mais ça ne marche pas. Ça me met erreur d’exécution 381.
Bonsoir,
Merci beaucoup pour votre retour !
A bientôt.