1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| Private O As Worksheet 'déclare la variable O (Onglet)
Private LI As Integer 'déclare la variable LI (LIgne)
Private CTRL As Control 'déclare la variable CTRL (ConTRôLe)
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Set O = Sheets("RECAPITULATIF") 'définit l'ontglet O
If Nouveau = True Then 'condition : si la variable nouveau est [Vrai]
Me.Caption = "SAISIE DES INTERVENTIONS" 'définit le titre de la boîter de dialogue
LI = O.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 'définit la ligne LI
TextBox15.Value = WorksheetFunction.Max(O.Columns(2)) + 1 'incrémente le numnéro de l'intervention
Me.CommandButton4.Visible = False 'masque le bouton "SUPPRIMER"
Else 'sinon
Me.Caption = "MODIFIER" 'définit le titre de la boîter de dialogue
LI = ActiveCell.Row 'définit la ligne LI
TextBox15.Value = O.Cells(LI, 2).Value 'récupèr ele numéro d'intervention
Me.CommandButton4.Visible = True 'affiche le bouton "SUPPRIMER"
End If 'fin de la condition
Nouveau = False 'initalise la variable Nouveau
ComboBox2.List() = Array("", "CAEN", "ANGERS", "LE MANS", "TOURS", "POITIERS", "NANTES", "RENNES", "BREST", "BORDEAUX")
ComboBox3.List() = Array("", "DIAGNOSTIQUE", "MISE EN SERVICE", "VISITE")
ComboBox4.List() = Array("", "FAIT")
ComboBox5.List() = Array("", "ANNULE", "FABRIQUAND", "OK")
ComboBox6.List() = Array("", "SALMSON", "GRUNDFOS", "PNEUMATEX", "WILO", "XYLEM")
For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'userForm
'si la propriété [Tag] du contrôle n'est pas vide, récupère la valeur de la cellule
'ligne LI colonne [Tag] (converti en entier) du contrôle de l'onglet O, dans le contrôle CTRL
If CTRL.Tag <> "" Then CTRL.Value = O.Cells(LI, CInt(CTRL.Tag)).Value
Next CTRL 'prochain contrôle de la boucle
End Sub
Private Sub CommandButton1_Click() 'bouton "VALIDATION"
For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'userForm
'si la propriété [Tag] du contrôle n'est pas vide, renvoie la valeur du contrôle CTRL
'dans la cellule ligne LI colonne [Tag] (converti en entier) du contrôle, de l'onglet O
If CTRL.Tag <> "" Then O.Cells(LI, CInt(CTRL.Tag)).Value = CTRL.Value
Next CTRL 'prochain contrôle de la boucle
Unload Me 'vide et ferme l'UserForm
End Sub
Private Sub CommandButton3_Click() 'bouton "QUITTER"
Unload Me 'vide et ferme l'UserForm
End Sub
Private Sub CommandButton4_Click() 'bouton "SUPPRIMER"
'si "oui" au message, supprime la ligne sélectionnée
If MsgBox("Êtes-vous sûr(e) de vouloir supprimer la ligne " & LI & " ?", vbYesNo, "ATTENTION !") = vbYes Then O.Rows(LI).Delete
End Sub |
Partager