Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Affiche dans TextBox en fonction de saisie dans autre Textbox

5 réponses
Avatar
Jean Pierre Belfort
Bonjour, ou bonsoir (Select case)

J'ai, dans un userform, un textbox à remplir avec un CODE client, et je
voudrais que dans un autre textbox à coté s'affiche des informations sur ce
client (codes et info contenues dans une feuille)

Sur une feuille de calcul j'utilise un "RECHERCHEV" mais dans un userfom?

Question Bonus : dans mon Usf, j'indique dans un TB une durée et dans un
autre TB une autre durée, lesquelles je veux additioner automatiquement dans
un 3èmeTB
exemple : 0:30 + 1:45 = 2:15

Si vous avez une réponse à l'une ou l'autre, voir à ces 2 questions,
ca m'interesse
Merci
JPB

5 réponses

Avatar
isabelle
bonjour Jean Pierre,

pour la 1ère question :

TextBox2 = Application.Index(Sheets("Feuil1").Range("B:B"), Application.Match(TextBox1, Sheets("Feuil1").Range("A:A"), 0))

pour la 2ème question :

Dim x As Double, y As Double, w As Double
x = CDate(TextBox1) * 24 * 60
y = CDate(TextBox2) * 24 * 60
w = (x + y) / 24 / 60
TextBox3 = Format(w, "h:mm")

isabelle

Bonjour, ou bonsoir (Select case)

J'ai, dans un userform, un textbox à remplir avec un CODE client, et je
voudrais que dans un autre textbox à coté s'affiche des informations sur ce
client (codes et info contenues dans une feuille)

Sur une feuille de calcul j'utilise un "RECHERCHEV" mais dans un userfom?

Question Bonus : dans mon Usf, j'indique dans un TB une durée et dans un
autre TB une autre durée, lesquelles je veux additioner automatiquement dans
un 3èmeTB
exemple : 0:30 + 1:45 = 2:15

Si vous avez une réponse à l'une ou l'autre, voir à ces 2 questions,
ca m'interesse
Merci
JPB


Avatar
JB
Bonjour,

L'équivalent de RechercheV() est Application.Vlookup():

Me.TextBox1 = Application.VLookup(Me.ComboBox1, [Feuil2!A2:B100], 2,
False)

ou si champ nommé:

Me.TextBox1 = Application.VLookup(Me.ComboBox1, [MonChamp], 2, False)

Attention aux ereeurs de saisie des heures:

On Error Resume Next
Me.TextBox3 = Format(((CDate(Me.TextBox1)) * 24 * 60 +
CDate(Me.TextBox2) * 24 * 60) / (24 * 60), "hh:mm")
If Err <> 0 Then MsgBox "Erreur "

Contrôle dès la saisie:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
x = CDate(Me.TextBox1)
If Err <> 0 Then MsgBox "erreur saisie!"
End Sub


Cordialement JB



Bonjour, ou bonsoir (Select case)

J'ai, dans un userform, un textbox à remplir avec un CODE client, et je
voudrais que dans un autre textbox à coté s'affiche des informations sur ce
client (codes et info contenues dans une feuille)

Sur une feuille de calcul j'utilise un "RECHERCHEV" mais dans un userfom?

Question Bonus : dans mon Usf, j'indique dans un TB une durée et dans un
autre TB une autre durée, lesquelles je veux additioner automatiquement dans
un 3èmeTB
exemple : 0:30 + 1:45 = 2:15

Si vous avez une réponse à l'une ou l'autre, voir à ces 2 questions,
ca m'interesse
Merci
JPB


Avatar
JB
Calcul avec contrôles de saisie:

http://cjoint.com/?isjBJWbufD

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Not IsDate(Me.TextBox1) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub

Private Sub TextBox1_Change()
calcul
End Sub

Private Sub TextBox2_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Not IsDate(Me.TextBox2) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub

Private Sub TextBox2_Change()
calcul
End Sub

Sub calcul()
If IsDate(Me.TextBox1) And IsDate(Me.TextBox2) Then
Me.TextBox3 = Format(((CDate(Me.TextBox1)) * 24 * 60 +
CDate(Me.TextBox2) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub

JB


Bonjour, ou bonsoir (Select case)

J'ai, dans un userform, un textbox à remplir avec un CODE client, et je
voudrais que dans un autre textbox à coté s'affiche des informations sur ce
client (codes et info contenues dans une feuille)

Sur une feuille de calcul j'utilise un "RECHERCHEV" mais dans un userfom?

Question Bonus : dans mon Usf, j'indique dans un TB une durée et dans un
autre TB une autre durée, lesquelles je veux additioner automatiquement dans
un 3èmeTB
exemple : 0:30 + 1:45 = 2:15

Si vous avez une réponse à l'une ou l'autre, voir à ces 2 questions,
ca m'interesse
Merci
JPB


Avatar
Jean Pierre Belfort
Merci Pour vos Réponses JB et Isabelle
JB, votre doc joint semble répondre à bcoup de mes questions
Merci et bonne soirée
JPB
Avatar
Jean Pierre Belfort
Bonsoir,

En fait j'ai testé
Me.TextBox1 = Application.VLookup(Me.ComboBox1, [Feuil2!A2:B100], 2,False)

Que j'ai placé dans TextBox1 Change, mais ca bug à chaque fois.
Je vais creuser un peu ca (J'ai Excel 2003)
JPB