Transmettre les données entre les UserForms
Dans Excel VBA j'ai un Formulaire Utilisateur semblable à la suivante où l'utilisateur entre un numéro d'identification, puis les détails sont affichés sur le formulaire utilisateur:
Private Sub btnIDNo_Click()
Dim IDNo As Long
If txtIDNo.Text <> "" Then
If IsNumeric(txtIDNo.Text) = True Then
lblError.Caption = ""
IDNo = txtIDNo.Text
Worksheets("Details").Activate
Range("B4").Select
While ActiveCell.Value <> "" And ActiveCell.Value <> IDNo
ActiveCell.Offset(1, 0).Select
Wend
If ActiveCell.Value = IDNo Then
txtName.Value = ActiveCell.Offset(0, 1).Value
txtPhone.Value = ActiveCell.Offset(0, 2).Value
Else
lblError.Caption = "Cannot find ID nummber"
End If
Else
lblError.Caption = "Please enter the ID Number in numeric form"
End If
End If
End Sub
De Détails sur le Formulaire Utilisateur, j'ai un bouton "Modifier". En cliquant sur le bouton "Modifier" serait d'ouvrir un autre utilisateur du formulaire dans lequel l'utilisateur peut modifier les détails de ce numéro d'identification, mais évidemment pas le numéro d'identification lui-même. Pour ce faire, j'ai besoin de passer le numéro d'identification à partir des Détails de l'Utilisateur du Formulaire pour l'Édition de Formulaire Utilisateur. Est-il un moyen de faire cela?
Le bas sur Afficher les Détails de Formulaire Utilisateur pour ouvrir le Formulaire de modification d'un Utilisateur est semblable à la suivante:
Private Sub CommandButton1_Click()
Dim IDNo As Long
If txtIDNo.Text <> "" Then
If IsNumeric(txtIDNo.Text) = True Then
lblError.Caption = ""
IDNo= txtIDNo.Text
ufmEditDetails.Show
ufmShowDetails.Hide
Else
lblError.Caption = "Please enter the ID Number in numeric form"
End If
Range("B4").Select
End If
End Sub
J'ai déjà regardé les liens suivants, mais ils ne semblent pas aider:
http://gregmaxey.mvps.org/word_tip_pages/userform_pass_data.html
http://peltiertech.com/Excel/PropertyProcedures.html
OriginalL'auteur Ben Smith | 2015-09-11
Vous devez vous connecter pour publier un commentaire.
Il y a beaucoup, beaucoup de manières... Voici quelques-uns...
Voie 1
Public
Variable dans un ModuleDans Userform1
Dans Userform2
Dans Le Module
2
Utiliser le
.Tag
propriété de l'objet userformDans Userform1
Dans Userform2
3
Ajouter un
Label
dans Userform2 et définir la propriété visible àFalse
Dans Userform1
Dans Userform2
UserForm2.Txtbox.Text = UserForm1.txtIDNo.Text
Oui c'est ça 🙂 j'ai répondu à la question: "Comment puis-je passer des données entre l'Utilisateur Formes?" En ce qui concerne votre réponse, j'ai déjà démontré un concept similaire dans
Way 3
🙂OriginalL'auteur Siddharth Rout
Il existe plusieurs façons de résoudre ce problème.
Celui que j'utilise est de déclarer mondiale ou variable publique dans le module
Exemple:
puis dans userform vous pouvez attribuer ou de récupérer la valeur de cette variable.
Par exemple
dans userform1:
dans UserForm2:
OriginalL'auteur Adisak Anusornsrirung
La plus simple est:
UserForm2.TxtIDNo.Text = UserForm1.txtIDNo.Text
OriginalL'auteur DragonSamu