Vba userform
Résolu
la9
-
la9 -
la9 -
Bonjour,
J'utilise VBA sous Excel 2010. Je suis dans un userform qui me permet de choir un nom dans une liste déroulante.
Après avoir validé je veux pouvoir rentrer (grâce à des textbox) et archiver des infos qui correspondent au nom précédemment sélectionné.
En gros:
La première liste déroulante du premier userform permet le choix du nom et le deuxième userform doit archiver les données rentrées (dans le deuxième userform) en fonction de la sélection du nom faite dans le premier userform.
quelqu'un aurait il une explication et un peu d'aide pour moi svp????
J'utilise VBA sous Excel 2010. Je suis dans un userform qui me permet de choir un nom dans une liste déroulante.
Après avoir validé je veux pouvoir rentrer (grâce à des textbox) et archiver des infos qui correspondent au nom précédemment sélectionné.
En gros:
La première liste déroulante du premier userform permet le choix du nom et le deuxième userform doit archiver les données rentrées (dans le deuxième userform) en fonction de la sélection du nom faite dans le premier userform.
quelqu'un aurait il une explication et un peu d'aide pour moi svp????
2 réponses
Bonjour,
Un exemple vaut parfois mieux qu'un long discours
Codes utilisés :
Userform 1 :
bouton "valider" :
initialisation du UserForm1 :
Userform 2 :
Bouton : "enregistrement des modifications" :
Initialisation des données au chargement de l'USF2 :
Un exemple vaut parfois mieux qu'un long discours
Codes utilisés :
Userform 1 :
bouton "valider" :
Private Sub CommandButton1_Click()
If ComboBox1.Value = "" Then
MsgBox "Veuillez choisir un nom"
Exit Sub
End If
Load UserForm2
UserForm2.Show
End Sub
initialisation du UserForm1 :
Private Sub UserForm_Initialize()
Dim DerniereLigne As Integer, Ligne As Integer
DerniereLigne = Sheets("Feuil1").Range("A65536").End(xlUp).Row
For Ligne = 2 To DerniereLigne
ComboBox1.AddItem Cells(Ligne, 1).Value
Next Ligne
End Sub
Userform 2 :
Bouton : "enregistrement des modifications" :
Private Sub CommandButton1_Click()
Dim Trouve As Range
Dim Valeur_cherchee As String
If TextBox1.Value = "" Then
MsgBox "Veuillez entrer un nom"
Exit Sub
End If
Valeur_cherchee = TextBox1.Value
Set Trouve = Sheets("Feuil1").Columns(1).Cells.Find(what:=Valeur_cherchee)
If Trouve Is Nothing Then
MsgBox "Pas trouvé"
Else
Trouve.Offset(0, 1).Value = TextBox2.Value
Trouve.Offset(0, 2).Value = TextBox3.Value
Trouve.Offset(0, 3).Value = TextBox4.Value
Trouve.Offset(0, 4).Value = TextBox5.Value
Trouve.Offset(0, 5).Value = TextBox6.Value
End If
Set Trouve = Nothing
End Sub
Initialisation des données au chargement de l'USF2 :
Private Sub UserForm_Initialize()
Dim Trouve As Range
Dim Valeur_cherchee As String
TextBox1.Value = UserForm1.ComboBox1.Value
Valeur_cherchee = TextBox1.Value
Set Trouve = Sheets("Feuil1").Columns(1).Cells.Find(what:=Valeur_cherchee)
If Trouve Is Nothing Then
MsgBox "Pas trouvé"
Else
TextBox2.Value = Trouve.Offset(0, 1).Value
TextBox3.Value = Trouve.Offset(0, 2).Value
TextBox4.Value = Trouve.Offset(0, 3).Value
TextBox5.Value = Trouve.Offset(0, 4).Value
TextBox6.Value = Trouve.Offset(0, 5).Value
End If
Set Trouve = Nothing
End Sub