Vba excel
tjamgot
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
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