Bonjour le Forum,
Je dois inclure comme formule dans la TextBox46 ce genre de formule mais je n'arrive pas à la traduire en VBA, pouvez vous m'aider s'il vous plait. Je débute en VBA et je n'ai pas encore toutes les notions.
SI il y a du texte dans (TextBox112) et du texte dans (TextBox104) et du texte dans (TextBox96) et du texte dans (TextBox88) et du texte dans (TextBox80) et du texte dans (TextBox72) alors la valeur de TextBox46 = 6 SI il y a PAS du texte dans (TextBox112) et du texte dans (TextBox104) et du texte dans (TextBox96) et du texte dans (TextBox88) et du texte dans (TextBox80) et du texte dans (TextBox72) alors la valeur de TextBox46 = 5 SI il y a PAS du texte dans (TextBox112) et PAS du texte dans (TextBox104) et du texte dans (TextBox96) et du texte dans (TextBox88) et du texte dans (TextBox80) et du texte dans (TextBox72) alors la valeur de TextBox46 = 4 SI il y a PAS du texte dans (TextBox112) et PAS du texte dans (TextBox104) et PAS du texte dans (TextBox96) et du texte dans (TextBox88) et du texte dans (TextBox80) et du texte dans (TextBox72) alors la valeur de TextBox46 = 3 SI il y a PAS du texte dans (TextBox112) et PAS du texte dans (TextBox104) et PAS du texte dans (TextBox96) et PAS du texte dans (TextBox88) et du texte dans (TextBox80) et du texte dans (TextBox72) alors la valeur de TextBox46 = 2 SI il y a PAS du texte dans (TextBox112) et PAS du texte dans (TextBox104) et PAS du texte dans (TextBox96) et PAS du texte dans (TextBox88) et PAS du texte dans (TextBox80) et du texte dans (TextBox72) alors la valeur de TextBox46 = 1 SI il y a PAS du texte dans (TextBox112) et PAS du texte dans (TextBox104) et PAS du texte dans (TextBox96) et PAS du texte dans (TextBox88) et PAS du texte dans (TextBox80) et PAS du texte dans (TextBox72) alors la valeur de TextBox46 = 0
Si vous regardez le code associé au Userform de mon classeur, vous verrez que pour chaque TextBox concernée, il y la procédure une évènementielle Change() :
VB:
Private Sub TextBox104_Change()
Numero
End Sub
Private Sub TextBox112_Change()
Numero
End Sub
Private Sub TextBox72_Change()
Numero
End Sub
Private Sub TextBox80_Change()
Numero
End Sub
Private Sub TextBox88_Change()
Numero
End Sub
Private Sub TextBox96_Change()
Numero
End Sub
Donc chaque fois que la valeur d'une de ces Textbox est modifiée, la procédure Numero est lancée et affiche ce qu'il faut dans TextBox46.
Comme vous n'aviez pas jugé bon de joindre un fichier, j'en ai fait un.
Le code pour l'affichage dans TextBox46 est :
VB:
Sub Numero()
Dim i&, s$
For i = 112 To 72 Step -8: s = s & IIf(Me.Controls("Textbox" & i).Text = "", 0, 1): Next
On Error Resume Next
TextBox46 = ""
TextBox46 = 7 - Application.Match(Application.Bin2Dec(s), Array(63, 31, 15, 7, 3, 1, 0), 0)
End Sub
edit : vous n'avez pas indiqué ce qu'on doit faire dans les nombreux autres cas. J'ai choisi de mettre à vide la TextBox46.
Si vous regardez le code associé au Userform de mon classeur, vous verrez que pour chaque TextBox concernée, il y la procédure une évènementielle Change() :
VB:
Private Sub TextBox104_Change()
Numero
End Sub
Private Sub TextBox112_Change()
Numero
End Sub
Private Sub TextBox72_Change()
Numero
End Sub
Private Sub TextBox80_Change()
Numero
End Sub
Private Sub TextBox88_Change()
Numero
End Sub
Private Sub TextBox96_Change()
Numero
End Sub
Donc chaque fois que la valeur d'une de ces Textbox est modifiée, la procédure Numero est lancée et affiche ce qu'il faut dans TextBox46.