Remplir automatiquement données textbox userform
Bonjour à tous,
J'aimerais que des données s'ajoutent automatiquement dans plusieurs TextBoxs d'un UserForm lorsque:
1) Je choisis dans un ComboBox du même UserForm une feuille du classeur
ET
2) J'inscris une donnée particulière (un numéro de commande dans mon cas) dans un TextBox.
Il faut que des données se rajoutent automatiquement dans plusieurs TextBoxs lorsque cette donnée particulière (numéro de commande) existe déjà / ait été préalablement renseignée.
Ces données sont présentes dans des feuilles différentes.
J'ai retourné le problème dans tous les sens mais je n'y arrive pas, petit débutant VBA que je suis ...
Merci à vous
Voici mon code initial permettant de renseigner via un userform que j'active via un bouton, plusieurs tables dans des feuilles différentes:
Private Sub Label6_Click()
End Sub
'Procédure permettant l'initialisation du formulaire de
' charger dans la liste déroulante du formulaire
' les noms des feuilles des différentes catégories de prestations
Private Sub UserForm_Initialize()
Dim feuille As Worksheet
'Nous parcourons toutes les feuilles du classeur
For Each feuille In Worksheets
Select Case feuille.CodeName 'Codename étant le nom de code de la feuille
'On retire dans la combobox les feuilles 1,2,3,4,5,6,8
Case "Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5", "Feuil6", "Feuil8"
'et on prend toutes les autres
Case Else
'On charge les noms des feuilles dans la liste déroulante
Me.cboNomFeuille.AddItem feuille.Nam
End Select
Next feuille
End Sub
'procédure permettant d'ajouter sur la feuille sélectionnée le
' nouvel enregistrement à la fin de la table
Private Sub btnValiderCommande_Click()
Dim nbControle As Integer
Dim NouvelleLigne As Range
Dim MaFeuille As String
'On récupère le nom de la feuille de la liste déroulante
MaFeuille = cboNomFeuille.Value
'On test qu'il y ait bien le nom d'une feuille de sélectionnée
If Me.cboNomFeuille.Value = "" Then
MsgBox "La catégorie de prestation n'a pas été choisie", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien le N° de commande renseigné
If Me.TextBox1.Value = "" Then
MsgBox "Le N° de commande n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien le type de prestation non renseigné
If Me.TextBox2.Value = "" Then
MsgBox "Le type de prestation n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien le nom du titulaire renseigné
If Me.TextBox3.Value = "" Then
MsgBox "Le titulaire n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien le Responsable RATP renseigné
If Me.TextBox4.Value = "" Then
MsgBox "Le responsable RATP n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien le N° du BER renseigné
If Me.TextBox5.Value = "" Then
MsgBox "Le N° du BER n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien la date de réception renseigné
If Me.TextBox6.Value = "" Then
MsgBox "La date de reception n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien ce qui a été renseigné
If Me.TextBox7.Value = "" Then
MsgBox "Ce qui a été receptionné n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien le lien du fichier renseigné
If Me.TextBox8.Value = "" Then
MsgBox "Le lien du fichier n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien le montant du BER renseigné
If Me.TextBox9.Value = "" Then
MsgBox "Le montant du BER n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
'On test qu'il y ait bien le montant mis à disposition de renseigné
If Me.TextBox10.Value = "" Then
MsgBox "Le montant mis à disposition n'a pas été renseigné", vbOKOnly + vbInformation, ""
Exit Sub
End If
If MsgBox("Confirmez-vous l'ajout de cette commande ?", vbYesNo, "") = vbYes Then
'On récupère le nombre de contrôle dans le Userform
nbControle = 10 'Changer le numéro si vous ajouté de nouveaux contrôles
'On se positionne sur la dernière ligne vide de la table de données
Set NouvelleLigne = Sheets(MaFeuille).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
For x = 1 To nbControle
NouvelleLigne = Me.Controls("TextBox" & x).Value
'Me.Cont1.Value = Format(Me.Cont1.Value, "JJ/MM/AAAA")
Set NouvelleLigne = NouvelleLigne.Offset(0, 1)
Next x
cboNomFeuille.Value = ""
'On affiche un message confirmant la nouvelle saisie dans la table
MsgBox "La commande a bien été ajoutée sur : " & MaFeuille, vbOKOnly + vbInformation, "VALIDATION"
'on réinitialise les champs du formulaire à vide
For x = 1 To nbControle
Me.Controls("Textbox" & x).Value = ""
Next x
End If
Unload Me
End SubBonjour
Tu devrais joindre ton fichier...
Bye !
Salut, il ets bien trop lourd et il y a des données confidentielles malheureusement.
Je vais essayer de faire une copie sans rien dans la journée.
Voilà le bébé
Bonjour,
je ne vois qu'un seul userform. .. celui qui sert à Valider une commande.
Tu comptes utiliser le même userform pour un mode "interrogation - modification" ?
Bonjour
Bonjour à tous
Un essai à tester. Te convient-il ?
Trop rapide pour moi Gmb
Salut gmb et xmenpl !
Je compte au final faire un seul et même userform avec les fonctions suivantes :
- Ajouter
- Modifier
- Supprimer
Je travaille dessus mais si vous avez des tips je suis preneur.
Cette fonction de remplir des textbox automatiquement si le numéro de commande a déjà été renseigné me facilitera la vie, car j'aurai plusieurs centaines de commandes à rajouter avec le même numéro.
Je regarde ton code dans la soirée, l'entreprise dans laquelle je travaille bloque la vue de macro / codes quand je suis sur le réseau.
Merci à vous 2