Bonjour,
La première colonne présente un listing de machines, les colonnes suivantes leurs caractéristiques et la dernière colonne l'état de cette machine.
J'ai fait un formulaire pour gérer tout ceci, sur lequel il y a une ListBox, 13 TextBox, 2 OptionButton, 1 CheckBox et des boutons.
Donc à l'initialisation le bouton d'option "OptModifier" est à True, TextBox1.Enable=true (machine, valeur col A)et TextBox13.Enable=true (Etat machine, valeur col M)
(Etat machine=En service ou Hors-service).
Le formulaire à son ouverture est prêt pour la modification, on selectionne une ligne dans la listbox (on ne peut pas modifier textbox1=machine concernée
et textbox13=etat de la machine concernée). à ce niveau je voudrai pouvoir modifier textbox13 avec la checkbox (la mise à jour doit s'effectuer sur la BD et la listbox).
En selectionnant le bouton d'option (OptAjout), on vide les textboxs, textbox1.enable=false, textbox13 reste bloqué et ne peut être modifier qu'avec la checkbox comme pour la modification.
J'ai 2 macros qui fonctionnent bien, une pour la modification et une pour l'ajout d'une machine que j'execute avec 2 boutons.
Je voudrai utiliser un seul bouton pour qu'elles s'executent suivant les boutons d'option (Modifier-Ajouter).En vous remerciant beaucoup.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
52 Private Sub Btn_Modif_Outil_Click() Dim c As Range, i As Byte If Me.TextBox1 = "" Then MsgBox "Aucune Machine!": Exit Sub Dim rs As String rs = ListBox1.rowsource Dim ListBox1_Listindex As Long ListBox1_Listindex = ListBox1.ListIndex Set c = F.[A:A].Find(Me.TextBox1, LookIn:=xlValues) If Not c Is Nothing Then On Error Resume Next ListBox1.rowsource = "" For i = 1 To 13 F.Cells(c.Row, i).Value = Me.Controls("TextBox" & i).Value Next End If ListBox1.rowsource = rs ListBox1.ListIndex = ListBox1_Listindex MsgBox "Correction terminée!", vbInformation End Sub Private Sub Btn_Valider_Ajout_Click() Dim i As Byte, ligne As Integer If Me.TextBox1 = "" Then MsgBox "Aucune Machine!": Exit Sub Dim rs As String rs = ListBox1.rowsource Dim ListBox1_Listindex As Long ListBox1_Listindex = ListBox1.ListIndex ligne = F.Range("A" & Rows.Count).End(xlUp).Row + 1 '--- Transfert Formulaire dans BD For i = 1 To 13 F.Cells(ligne, i).Value = Me.Controls("TextBox" & i).Value Next '--- Vide textbox For i = 1 To 13 Me.Controls("TextBox" & i) = "" Next ListBox1.rowsource = rs ListBox1.ListIndex = ListBox1_Listindex MsgBox "Machine Ajoutée dans BD!" End Sub
Partager