[-RESOLUTO-]Simplifier le code d'un USF

Ilino

XLDnaute Barbatruc
:eek:Forum buon anno:eek:
je souhaite a simplifier le code ci-dessous
Code:
If TextBox1.Value = "" Then
     Label9.Visible = True
     Exit Sub
    End If
If TextBox2.Value = "" Then
     Label11.Visible = True
     Exit Sub
    End If
 If TextBox4.Value = "" Then
     Label12.Visible = True
     Exit Sub
    End If
If TextBox3.Value = "" Then
     Label13.Visible = True
     Exit Sub
    End If
If TextBox5.Value = "" Then
     Label14.Visible = True
     Exit Sub
    End If
GRAZIE PAR AVANCE
EDIT: ci dessous un code presque ce que je cherche pour controler les TextBox avant la validation (grazie ROBERT )
PHP:
Private Sub CommandButton1_Click() 'bouton de commande de validation de l'UserForm
 Dim ctrl As Control 'déclare la variable ctrl
 For Each ctrl In Me.Controls 'boucle sur tous les contrôles de l'userform
     If TypeOf ctrl Is MSForms.TextBox And ctrl.Value = "" Then 'condition : si le type de contôle est une Textbox et si elle est vide
         ctrl.SetFocus 'place le curserur dans la Textbox
         MsgBox "Vous devez éditer ce champs !" 'message
     End If 'fin de la condition
 Next ctrl 'prochain contrôle de l'userform
 End Sub
mais il se bloque a ce niveau :
PHP:
 If TypeOf ctrl Is MSForms.TextBox And ctrl.Value = "" Then 'condition : si le type de contôle est une Textbox et si elle est vide
avec un message d'erreur d'execution 438
Propriété ou méthode non gérée par cet objet
GRAZIE
 

Pièces jointes

  • ILINO CONTRATS.xlsm
    19.9 KB · Affichages: 29
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Simplifier le code d'un USF

Bonjour Ilino,
If TextBox1.Value = "" Then
Label9.Visible = True
Exit Sub
End If
If TextBox2.Value = "" Then
Label11.Visible = True
Exit Sub
End If
If TextBox4.Value = "" Then
Label12.Visible = True
Exit Sub
End If
If TextBox3.Value = "" Then
Label13.Visible = True
Exit Sub
End If
If TextBox5.Value = "" Then
Label14.Visible = True
Exit Sub
End If

un moyen de simplifier serait d'abord de mettre un peu d'ordre

Si:
TBox1 est en rapport avec Label1
TBox2 est en rapport avec Label2
TBox3 est en rapport avec Label3
...................

tu pourrais alors utiliser uniquement ceci:

Code:
For i = 1 To 5
     If Me.Controls("TextBox" & i).Value = "" Then
     Me.Controls("Label" & i).Visible = True
End If

à+
Philippe
 

Discussions similaires

Réponses
12
Affichages
446

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel