Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Contrôle de saisie dans un USF

  • Initiateur de la discussion Initiateur de la discussion ThierryP
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
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

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 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,
 
Bonsoir wDog66,
Solution également impeccable !!!

Merci d'avoir sauvé mes neurones,😁😁
Bonne soirée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

L
Réponses
6
Affichages
1 K
L
C
Réponses
2
Affichages
1 K
Chantal S.
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…