Vba excel
tjamgot
Messages postés
31
Statut
Membre
-
Tigran -
Tigran -
Bonjour,
Comment saisir plusieurs champ : ex: (plusieurs txt, cbo) en vba excel pour:
- Si il ni a rien d’écrit dans les champs "Le btn enregistrer est en mode (enabled fals) bloquer ".
- Si tous les champs sont remplis "le btn enregistrer est activé " envoiler sur la feuille de "Saisie"
merci.
ps : Je suis novice en VBA j'essaie de faire un petit programme de gestion
Comment saisir plusieurs champ : ex: (plusieurs txt, cbo) en vba excel pour:
- Si il ni a rien d’écrit dans les champs "Le btn enregistrer est en mode (enabled fals) bloquer ".
- Si tous les champs sont remplis "le btn enregistrer est activé " envoiler sur la feuille de "Saisie"
merci.
ps : Je suis novice en VBA j'essaie de faire un petit programme de gestion
A voir également:
- Vba excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Bonjour Tjamgot, bonjour le forum,
J'utilise la propriété [Tag] des contrôles qui renvoient leur valeur vers le tableau (TextBoxes, Comboboxes, etc.), Je leur attribue la valeur de la colonne où leur valeur doit être renvoyée.
Par exemple : propriété [Tag] de la TextBox1 = A / propriété [Tag] de la ComboBox1 = B / propriété [Tag] de la TextBox2 = C / etc.
Puis ce code sur le bouton Enregistrer (à adapter à ton cas) :
J'utilise la propriété [Tag] des contrôles qui renvoient leur valeur vers le tableau (TextBoxes, Comboboxes, etc.), Je leur attribue la valeur de la colonne où leur valeur doit être renvoyée.
Par exemple : propriété [Tag] de la TextBox1 = A / propriété [Tag] de la ComboBox1 = B / propriété [Tag] de la TextBox2 = C / etc.
Puis ce code sur le bouton Enregistrer (à adapter à ton cas) :
Private Sub CommandButton1_Click()
Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe)
Dim PLV As Integer 'déclare la variable LI (Première Ligne Vide)
'Empêcher les champs non renseignés
For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'Userform en cours
If CTRL.Tag <> "" Then 'condition 1 : si la propriété [Tag] du contrôle n'est pas vide
If CTRL.Value = "" Then 'condition 2 : si le contrôle est vide
MsgBox "Vous devez renseigner ce champ !" 'message
CTRL.SetFocus 'place le curseur dans le contrôle
Exit Sub 'sort de la procédure
End If 'fin de la condition 2
End If 'fin de la condition 1
Next CTRL 'prochain contrôle de la boucle
'renvoyer les données de Userform dans le tableau
PLV = Worksheets("Feuil1").Cells(Application.Rows.Count, "A").End(xlUp).Row + 1 'définit la première ligne vide PLV de la colonne A
For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'Userform en cours
'renvoie la valeur du contrôle dans la cellulue ligne=LI, colonne=propriété [Tag] du contrôle
Worksheets("Feuil1").Cells(LI, CTRL.Tag).Value = CTRL.Value
Next CTRL 'prochain contrôle de la boucle
End Sub