XL 2013 Aide pour traduire et faire fonctionner formule sous un Code VBA

Ismagapi

XLDnaute Junior
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

Merci ,

Cordialement
 
Solution
Re,

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.

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @Ismagapi ,

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.
 

Pièces jointes

  • Ismagapi- Pas de fichier- v1.xlsm
    22.3 KB · Affichages: 15

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

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.
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 317
Membres
102 862
dernier inscrit
Emma35400