XL 2019 activer commandbutton avec clic un autre commandbutton et textbox rempli

PETIT YANNICK

XLDnaute Occasionnel
Bonjour,

Je souhaite que le bouton commandbutton5 "reservation N° plan" soit activé quand les texbox seront renseignées ( TextBox1,TextBox2,TextBox4,TextBox5,TextBox6 5 chiffre,TextBox7,TextBox8 et textbox 10 3caratères) et lorsque commandbutton2 actif .

si l'on remodifie les textbox ci dessus rendre inactif commandbutton5

je n'arrive pas a rendre inactif



quelqu'un aurait une idée?

Merci d'avance
 

Pièces jointes

  • Products catalogue .xlsm
    46.3 KB · Affichages: 13
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour PETIT YANNICK,

Ce que vous demandez ne correspond pas à ce que fait la macro Test mais bon, voyez ceci :
VB:
Private Sub CommandButton2_Click()
Dim e, n As Byte
For Each e In Array("TextBox1", "TextBox2", "TextBox4", "TextBox5", "TextBox6")
    If Replace(Me(e), "ODM-", "") Like "#####" Then n = n + 1
Next
For Each e In Array("TextBox7", "TextBox8", "TextBox10")
    If Len(Me(e)) = 3 Then n = n + 1
Next
CommandButton5.Enabled = n = 8
'---suite du code---
End Sub
A+
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour PETIT YANNICK, bonjour job75

Ce code devrait répondre à ton attente. Il va falloir faire du nettoyage dans ton code car il y a pas mal de poussières ...lol
VB:
Sub Verif_Remplissage ()
    Dim i As Byte
   ListeControles = Array(1, 2, 4, 5, 6, 7, 8, 10)
   For i = LBound(ListeControles) To UBound(ListeControles)
  If Controls("TextBox" & ListeControles(i)).Value = "" Then
                 CommandButton2.Enabled = False
     CommandButton5.Enabled = False
            Exit Sub
        End If
    Next i
    CommandButton2.Enabled = True
CommandButton5.Enabled = True
End Sub

'  Message Designation Fr =30 caractères
Private Sub TextBox4_Change()
If Len(TextBox4) > 30 Then MsgBox " Nombre  de 30 caractères atteint!"
Verif_Remplissage
End Sub

' Message Designation UK =30 caractères
Private Sub TextBox5_Change()
If Len(TextBox5) > 30 Then MsgBox " Nombre  de 30 caractères atteint!"
Verif_Remplissage
End Sub

Private Sub TextBox1_Change()
Verif_Remplissage
End Sub
Private Sub TextBox2_Change()
Verif_Remplissage
End Sub
Private Sub TextBox7_Change()
Verif_Remplissage
End Sub
Private Sub TextBox8_Change()
Verif_Remplissage
End Sub

Private Sub TextBox10_Change()
TextBox10.BackColor = IIf(Len(TextBox10) < 3, vbRed, vbGreen)
TextBox10.ForeColor = IIf(Len(TextBox10) < 3, vbWhite, vbBlack)
Verif_Remplissage
End Sub
  
Private Sub TextBox6_Change()
Dim x$, i%
x = TextBox6
x = "ODM-" & Replace(x, "ODM-", "")
For i = Len(x) To 5 Step -1
    If Not IsNumeric(Mid(x, i, 1)) Then x = Left(x, i - 1) & Mid(x, i + 1)
Next
TextBox6 = x
TextBox6.BackColor = IIf(Len(x) < 9, vbRed, vbGreen)
TextBox6.ForeColor = IIf(Len(x) < 9, vbWhite, vbBlack)
Verif_Remplissage
End Sub
Bonne fin d'après-midi
@+ Eric c
 

PETIT YANNICK

XLDnaute Occasionnel
Bonjour PETIT YANNICK,

Ce que vous demandez ne correspond pas à ce que fait la macro Test mais bon, voyez ceci :
VB:
Private Sub CommandButton2_Click()
Dim e, n As Byte
For Each e In Array("TextBox1", "TextBox2", "TextBox4", "TextBox5", "TextBox6")
    If Replace(Me(e), "ODM-", "") Like "#####" Then n = n + 1
Next
For Each e In Array("TextBox7", "TextBox8", "TextBox10")
    If Len(Me(e)) = 3 Then n = n + 1
Next
CommandButton5.Enabled = n = 8
'---suite du code---
End Sub
A+

La macro test active le buttoncommand5 si les conditions textbox sont reunis, par contre je ne sais pas codé plusieurs conditions imbriquées . Merci pour votre retour. Je teste lundi.
Bonne fin de journée
 
Dernière édition:

Eric C

XLDnaute Barbatruc
Re

Comme je suis en train de rénover ma maison, j'ai profité d'un break pour passer l'aspirateur dans ton code (j'espère que je n'en ai pas trop enlevé...lol).
Bonne fin de week-end à toutes & à tous.
@+ Eric c
 

Pièces jointes

  • Products catalogue NRO(3 bis) En cours traitement.xlsm
    42.8 KB · Affichages: 17

PETIT YANNICK

XLDnaute Occasionnel
La macro test active le buttoncommand5 si les conditions textbox sont reunis, par contre je ne sais pas codé plusieurs conditions imbriquées . Merci pour votre retour. Je teste lundi.
Bonne fin de journée



Bonjour JOB 75,

J'ai collé votre macro et vous remercie du temps passé.
Par contre le fonctionnement de la macro n'est pas celle que je cherche.

Je me suis mal exprimé, Je reformule

j'aimerais que le bouton commandbutton2 soit activé quand les texbox sont renseignées suivant le format ci après(TextBox1,TextBox2,TextBox4,TextBox5,TextBox7,TextBox8 au moins un caractères et que ,TextBox6 : 5 chiffres et textbox 10 : 3caratères)
Lorsqu'on clique sur commandbutton2 rendre actif le bouton commandbutton5 (clignotant si possible)
Si l'on remodifie les textbox et qu'on n'est plus dans les conditions énoncé ci dessus rendre inactif commandbutton5 et commandbutton2

Une idée de comment faire?

yannick
 

PETIT YANNICK

XLDnaute Occasionnel
Re

Comme je suis en train de rénover ma maison, j'ai profité d'un break pour passer l'aspirateur dans ton code (j'espère que je n'en ai pas trop enlevé...lol).
Bonne fin de week-end à toutes & à tous.
@+ Eric c


Bonjour Eric,


J'ai testé tamacro et te remercie du temps que tu as passé.
Le fonctionnement de la macro tout a fait ce que je recherche.

Je me suis mal exprimé, Je reformule

j'aimerais que le bouton commandbutton2 soit activé quand les texbox sont renseignées suivant le format ci après(TextBox1,TextBox2,TextBox4,TextBox5,TextBox7,TextBox8 au moins un caractères et que ,TextBox6 : 5 chiffres et textbox 10 : 3caratères)
Lorsqu'on clique sur commandbutton2 rendre actif le bouton commandbutton5 (clignotant si possible option)
Si l'on remodifie les textbox et qu'on n'est plus dans les conditions énoncé ci dessus rendre inactif commandbutton5 et commandbutton2

Une idée de comment faire?

yannick
 

job75

XLDnaute Barbatruc
Si dès le post #1 les choses avaient été dites clairement on aurait évité 7 messages inutiles !!!
VB:
Sub Test()
Dim e, flag As Boolean
For Each e In Array("TextBox1", "TextBox2", "TextBox4", "TextBox5", "TextBox6", "TextBox7", "TextBox8", "TextBox10")
    If Me(e) = "" Then flag = True: Exit For
    If e = "TextBox6" Then If Len(Me(e)) < 9 Then flag = True: Exit For
    If e = "TextBox10" Then If Len(Me(e)) < 3 Then flag = True
Next
CommandButton2.Enabled = Not flag
CommandButton5.Enabled = Not flag
End Sub
 

Pièces jointes

  • Products catalogue(1).xlsm
    49.8 KB · Affichages: 11

PETIT YANNICK

XLDnaute Occasionnel
Si dès le post #1 les choses avaient été dites clairement on aurait évité 7 messages inutiles !!!
VB:
Sub Test()
Dim e, flag As Boolean
For Each e In Array("TextBox1", "TextBox2", "TextBox4", "TextBox5", "TextBox6", "TextBox7", "TextBox8", "TextBox10")
    If Me(e) = "" Then flag = True: Exit For
    If e = "TextBox6" Then If Len(Me(e)) < 9 Then flag = True: Exit For
    If e = "TextBox10" Then If Len(Me(e)) < 3 Then flag = True
Next
CommandButton2.Enabled = Not flag
CommandButton5.Enabled = Not flag
End Sub
Si dès le post #1 les choses avaient été dites clairement on aurait évité 7 messages inutiles !!!
VB:
Sub Test()
Dim e, flag As Boolean
For Each e In Array("TextBox1", "TextBox2", "TextBox4", "TextBox5", "TextBox6", "TextBox7", "TextBox8", "TextBox10")
    If Me(e) = "" Then flag = True: Exit For
    If e = "TextBox6" Then If Len(Me(e)) < 9 Then flag = True: Exit For
    If e = "TextBox10" Then If Len(Me(e)) < 3 Then flag = True
Next
CommandButton2.Enabled = Not flag
CommandButton5.Enabled = Not flag
End Sub


merci pour le retour et désolé si je me suis mal exprimé dès le début.

je souhaite rendre actif le bouton commandbutton5 lorsque clic possible sur commandbutton2 (commandbutton2 actif si conditions textbox réunies).
dans le code que vous avez mis a jour le commandbutton5 est actif ou inactif en même temps que le commandbutton2

Si l'on remodifie les textbox et qu'on n'est plus dans les conditions souhaitées rendre inactif commandbutton5 et commandbutton2 (fonctionnement OK de votre code)
 

PETIT YANNICK

XLDnaute Occasionnel
Et vous continuez à mal vous exprimer, je ne vous comprends pas.

J'essaye de m'exprimer au mieux.

Mes besoins d'utilisations sont les suivants :

1) commandbutton2 actif ou inactif si conditions textbox réunies ou non réunis ca c'est OK
2) commandbutton5 accessible après un clic sur commandbutton2. (pas le bon fonctionnement dans le code que vous avez fournis)
3) si texbox modifier et conditions non réuni , revérouiller commandbutton2 et commandbutton5 ca c'est OK


C'est le point 2 qui pose problème.
 
Dernière édition:

Statistiques des forums

Discussions
311 715
Messages
2 081 822
Membres
101 821
dernier inscrit
hybroxis