Vba excel
Fermé
tjamgot
Messages postés
27
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
11 août 2023
-
26 juin 2019 à 15:12
Tigran - 28 juin 2019 à 02:00
Tigran - 28 juin 2019 à 02:00
A voir également:
- Vba excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
27 juin 2019 à 09:01
27 juin 2019 à 09:01
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