1 pièce(s) jointe(s)
Formulaire d'ajout et modification (listbox,textbox,checkbox,optionbutton)
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).
Code:
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 |
En vous remerciant beaucoup.