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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| Option Explicit
Dim LigneCelluleActive As Long
Private Sub UserForm_Initialize()
LigneCelluleActive = ActiveCell.Row
If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
Me.Caption = "Modifier la ligne N° " & Cells(LigneCelluleActive, 1) & " du journal"
Me.TextBox_Description = Cells(LigneCelluleActive, 4).Value
If Cells(LigneCelluleActive, 7) = "" Then
Me.TextBox_Cout_provision = 0
Else
Me.TextBox_Cout_provision = Replace(CStr(Cells(LigneCelluleActive, 7).Value), ",", ".")
End If
If Cells(LigneCelluleActive, 8) = "" Then
Me.TextBox_Cout_reel = 0
Else
Me.TextBox_Cout_reel = Replace(CStr(Cells(LigneCelluleActive, 8).Value), ",", ".")
End If
If Cells(LigneCelluleActive, 9) = "" Then
Me.Label_Cout_dif = 0
Else
Me.Label_Cout_dif = Replace(CStr(Cells(LigneCelluleActive, 9).Value), ",", ".")
End If
If Cells(LigneCelluleActive, 6) = "Info" Then
Me.Option_Info = True
End If
If Cells(LigneCelluleActive, 6) = "En cours" Then
Me.Option_En_cours = True
End If
If Cells(LigneCelluleActive, 6) = "En retard" Then
Me.Option_En_retard = True
End If
If Cells(LigneCelluleActive, 6) = "Terminé" Then
Me.Option_Terminé = True
End If
Me.TextBox_Description.SetFocus 'Place le curseur dans la textbox
End Sub
Sub BT_OK_Click()
Dim Utilisateur As Variant
Utilisateur = Application.UserName 'Environ("USERNAME")
LigneCelluleActive = ActiveCell.Row
If Me.TextBox_Description = "" Then
MsgBox "Indiquer une description", vbExclamation, "! Oups ! Action interrompue"
Me.TextBox_Description.SetFocus 'Place le curseur dans la textbox
Exit Sub
Else
'Vérifier l'état si un des boutons d'options est sélectionné avec Function OptionSelected_Avancement
If OptionSelected_Avancement Then
'Info
If Me.Option_Info = True Then 'Si coché ...
Cells(LigneCelluleActive, 6) = "Info"
End If
'En cours
If Me.Option_En_cours = True Then 'Si coché ...
Cells(LigneCelluleActive, 6) = "En cours"
End If
'En retard
If Me.Option_En_retard = True Then 'Si coché ...
Cells(LigneCelluleActive, 6) = "En retard"
End If
'Terminé
If Me.Option_Terminé = True Then 'Si coché ...
Cells(LigneCelluleActive, 6) = "Terminé"
End If
Unload Me
Else 'de OptionSelected_Avancement
MsgBox "Préciser l'avancement.", vbExclamation, "! Oups ! Action interrompue"
Exit Sub
End If 'de OptionSelected_Avancement
Cells(LigneCelluleActive, 2) = Utilisateur
Cells(LigneCelluleActive, 3) = Now
Cells(LigneCelluleActive, 4) = Me.TextBox_Description
If Me.TextBox_Cout_provision = 0 Then
Cells(LigneCelluleActive, 7) = ""
Else
Cells(LigneCelluleActive, 7) = Val(Me.TextBox_Cout_provision) 'CDbl(Me.TextBox_Cout_provision.Value) 'CDbl convertit la textbox en valeur numérique pour la cellule
End If
If Me.TextBox_Cout_reel = 0 Then
Cells(LigneCelluleActive, 8) = ""
Else
Cells(LigneCelluleActive, 8) = Val(Me.TextBox_Cout_reel.Value) 'CDbl convertit la textbox en valeur numérique pour la cellule
End If
If Me.Label_Cout_dif = 0 Then
Cells(LigneCelluleActive, 9) = ""
Else
Cells(LigneCelluleActive, 9) = Val(Me.Label_Cout_dif.Caption) 'CDbl convertit la textbox en valeur numérique pour la cellule
End If
'Lancer le correcteur orthographique
Cells(LigneCelluleActive, 4).CheckSpelling SpellLang:=1036
End If
End Sub
Private Sub TextBox_Cout_provision_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Pour sélectionner le 0 qui va s'effacer si l'on tape une valeur
If TextBox_Cout_provision = 0 Then
With TextBox_Cout_provision
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End Sub
Private Sub TextBox_Cout_reel_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Pour sélectionner le 0 qui va s'effacer si l'on tape une valeur
If TextBox_Cout_reel = 0 Then
With TextBox_Cout_reel
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End Sub
Private Sub TextBox_Cout_provision_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57 'Accepte de 0 à 9
Case 46 'Accepte le point
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox_Cout_reel_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57 'Accepte de 0 à 9
Case 46 'Accepte le point
Case Else
KeyAscii = 0
End Select
End Sub |
Partager