-obliger l'utilisateur à choisir la valeur de C10 si telle n'est pas le cas
Sub copiefacture()
Dim WKBK1 As Workbook
Dim WKBK2 As Workbook
Dim CHEMINWKBK2 As String
Range("invoice").Value = Range("F").Value
Set WKBK1 = ThisWorkbook
'***********************************************'
Select Case WKBK1.Sheets("F").Range("C10").Value
Case ""
MsgBox "vous devez renseigner C10 !"
WKBK1.Sheets("F").Range("C10").Select
Exit Sub
Case "lu"
'je ne sais pas
Case "non lu"
UserForm1.Show
End Select
'***********************************************'
CHEMINWKBK2 = ThisWorkbook.Path & "/" & "sauvegarde" & ".xlsm"
'ceci m'affiche chemin pas disponible qu'il est soit suprimer ou renommer
Workbooks.Open CHEMINWKBK2
Set WKBK2 = ActiveWorkbook
WKBK1.Sheets("invoice").Copy after:=WKBK2.Sheets(Sheets.Count)
ActiveSheet.Name = WKBK1.Sheets("F").Range("A5").Value
MsgBox "votre copie a été crée avec succès" & Chr(10) & "cliquez sur ok pour fermer le classeur ", vbOKOnly + vbInformation, "opération réussie"
WKBK2.Close True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$10" Then Exit Sub
If Target.Value = "non lu" Then UserForm1.Show
End Sub
Private Sub CommandButton1_Click()
Dim OA As Worksheet
Dim LI As Integer
Dim CTRL As Control
Set OA = Worksheets("achat")
LI = OA.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1
For Each CTRL In Me.Controls
If CTRL.Tag <> "" Then OA.Cells(LI, CTRL.Tag).Value = CTRL.Value
Next CTRL
If MsgBox("Souhaitez-vous enregistrer un autre agent?", vbYesNo) = vbYes Then
For Each CTRL In Me.Controls
If CTRL.Tag <> "" Then CTRL.Value = ""
Next CTRL
Me.TextBox1.SetFocus
Else
Unload Me
End If
End Sub
ReRe,
Dans L'Userform1, attribue à la propriété Tag de chaque textbox la valeur de la colonne qui lui correspond :
la propriété Tag de la TextBox1 sera : A
la propriété Tag de la TextBox2 sera : B, etc.
ensuite remplace le code du bouton par :
VB:Private Sub CommandButton1_Click() Dim OA As Worksheet Dim LI As Integer Dim CTRL As Control Set OA = Worksheets("achat") LI = OA.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1 For Each CTRL In Me.Controls If CTRL.Tag <> "" Then OA.Cells(LI, CTRL.Tag).Value = CTRL.Value Next CTRL If MsgBox("Souhaitez-vous enregistrer un autre agent?", vbYesNo) = vbYes Then For Each CTRL In Me.Controls If CTRL.Tag <> "" Then CTRL.Value = "" Next CTRL Me.TextBox1.SetFocus Else Unload Me End If End Sub