Je dois alimenter un tableau (Feuille 1) par l’intermédiaire d’une base de données (Feuille BD). Je dois donc rentrer dans la feuille 1 le matricule qui va permettre de renseigner les autres cellules avec la fonction Recherche V.
Je voudrai qu’on ne puisse saisir que des matricules existant dans la base. Peut-imaginer que si je tape 1 il me propose dans une liste tous les matricules qui comment par un 1 !
Exemple : Je tape 1 : Il me propose au sein d’une liste 1000 – 102500
Re : Proposition de saisie dans une liste déroulante
Boujour
Si une validation sur la cellule selon liste nommée ne suffit pas,
Une ComboBox pourrait faire un peu mieux.
Il serait bon de mettre un format Texte sur les matricules
À +
Re : Proposition de saisie dans une liste déroulante
Sauf que dans ce cas, l'agent doit choisir dans la lsite déroulante.
La plage des matricules sera énorme de 1 à 100000 donc pourquoi j'avais si tu tapes la première lettre il te renvoie les chiffres pouvant correspondrent.
Re : Proposition de saisie dans une liste déroulante
Je pensais passer par un combobox qui serait rendu visible en sélectionnant une cellule de la colonne A.
Mais je n'arrive pas à lui faire comprendre qu'un chiffre tapé dont entrer dans la dite combobox et non dans la barre de formule.
Alors ce sera carrément un Userform muni de la combobox, là je suis sûr que ça marchera.
Re : Proposition de saisie dans une liste déroulante
Alt+F11 pour aller dans VBA
Demandez s'il y a lieu l'affichage de l'explorateur de projet.
Cliquez 2 fois sur UfSaisieMat dans l'explorateur de projet, il vous emmènera à la fenêtre de conception de la feuille (UserForm).
Demandez l'affichage du code, ou mieux cliquez 2 fois sur mon bouton "Ok".
Modifiez comme suit la procédure BtOk_Click
VB:
Private Sub BtOk_Click()
If Me.CbxSaisie.ListIndex >= 0 Then
Cel.Value = Me.CbxSaisie.Text
Me.Hide
Else
MsgBox "Saisie incorrecte", vbExclamation, Me.Caption
End If
End Sub
Je me suis aussi aperçu d'un problème dans la procédure précédente: elle ne marche plus bien quand on fait défiler les lignes. Correction:
VB:
Public Sub Afficher(Cellule As Range)
Set Cel = Cellule
Me.CbxSaisie.Text = Cel.Value
Me.Top = Cel.Top - ActiveWindow.VisibleRange.Top + 65
Me.Show
End Sub