XL 2019 Contrôle de saisie dans un USF

ThierryP

XLDnaute Occasionnel
Bonjour le forum !

Je me débats toujours avec mes userform....

En double cliquant sur une cellule, mon user affiche l'USF. Il doit choisir un motif obligatoirement (jusque là, tout va bien !). Si il choisit "Autre", alors j'affiche un textbox dans lequel le user doit entrer un motif manuellement (obligatoire également). Et c'est là que ça se gâte..... Je patauge lamentablement dans la gestion de cette saisie, du coup avant de griller le peu de neurones qui me restent j'appelle au secours !

Merci d'avance à tous ceux qui me liront :)
 

Pièces jointes

  • USF Test.xlsm
    23 KB · Affichages: 7
Solution
Bonjour TjierryP,Pas sur d'avoir tout compris.
Mais en modifiant CB_OK_Click avec :
VB:
If UCase(Me.CB_Motif) = "AUTRE" And Me.TB_Motif.Visible = False Then
    With Me.TB_Motif
        .Visible = True
        .SetFocus
        Exit Sub
    End With
End If
ça améliore les choses car on différencie Confirmer sans ou sans la demande de saisie du motif.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour TjierryP,Pas sur d'avoir tout compris.
Mais en modifiant CB_OK_Click avec :
VB:
If UCase(Me.CB_Motif) = "AUTRE" And Me.TB_Motif.Visible = False Then
    With Me.TB_Motif
        .Visible = True
        .SetFocus
        Exit Sub
    End With
End If
ça améliore les choses car on différencie Confirmer sans ou sans la demande de saisie du motif.
 

Pièces jointes

  • USF Test.xlsm
    21.1 KB · Affichages: 4

wDog66

XLDnaute Occasionnel
Bonjour Thierry,

Voici comment il faut faire, je pense.
Il faut supprimer le début du code de l'USF et le remplacer par
VB:
Option Explicit

Private Sub CB_Motif_Change()
  If Me.CB_Motif.Value = "Autre" Then
    MsgBox "Saisissez votre motif (limité à 15 caractères)."
    With Me.TB_Motif
      .Visible = True
      .SetFocus
    End With
  End If
End Sub

Private Sub CB_OK_Click()
  If UCase(Me.CB_Motif) = "AUTRE" And Me.TB_Motif = "" Then
    MsgBox "Merci de saisir un motif (obligatoire) !"
    Me.TB_Motif.SetFocus
    Exit Sub
  End If
  With Feuil1
    ' ... suite du code'

Edit : Salut Sylvanu ;)

A+
 

ThierryP

XLDnaute Occasionnel
Bonjour TjierryP,Pas sur d'avoir tout compris.
Mais en modifiant CB_OK_Click avec :
VB:
If UCase(Me.CB_Motif) = "AUTRE" And Me.TB_Motif.Visible = False Then
    With Me.TB_Motif
        .Visible = True
        .SetFocus
        Exit Sub
    End With
End If
ça améliore les choses car on différencie Confirmer sans ou sans la demande de saisie du motif.
Bonsoir sylvanu,

eh ben pour quelqu'un qui n'est pas sûr d'avoir compris, je trouve que c'est plutôt impeccable moi !
Un grand merci à toi !

Bonne soirée,
 

ThierryP

XLDnaute Occasionnel
Bonjour Thierry,

Voici comment il faut faire, je pense.
Il faut supprimer le début du code de l'USF et le remplacer par
VB:
Option Explicit

Private Sub CB_Motif_Change()
  If Me.CB_Motif.Value = "Autre" Then
    MsgBox "Saisissez votre motif (limité à 15 caractères)."
    With Me.TB_Motif
      .Visible = True
      .SetFocus
    End With
  End If
End Sub

Private Sub CB_OK_Click()
  If UCase(Me.CB_Motif) = "AUTRE" And Me.TB_Motif = "" Then
    MsgBox "Merci de saisir un motif (obligatoire) !"
    Me.TB_Motif.SetFocus
    Exit Sub
  End If
  With Feuil1
    ' ... suite du code'

Edit : Salut Sylvanu ;)

A+
Bonsoir wDog66,
Solution également impeccable !!!

Merci d'avoir sauvé mes neurones,😁😁
Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
314 087
Messages
2 105 667
Membres
109 412
dernier inscrit
Marc Lambert