Bonjour à tous, le Forum
Et bien me revoilà pour à nouveau vous demander de l'aide. J'ai bidouillé et non pas créé un code qui permet d'enregistrer les données saisies dans l'USF d'un fichier dans un autre fichier. Tout se passe bien à l'exception des "OptionButton". Mes variables Val et Val2 ne gardent pas leur valeurs respectives lorsque je dois écrire les infos dans mon fichier Destination. Je vous joins les 2 codes pour que vous puisiez me dire où je pêche.
et ci-dessous celui qui écrit dans mon fichier Destination
D'avance merci à tous.
Scoobidoo
Ps: n'hésitez pas à me proposer des amélioration pour le code que j'ai bricolé. A+
Et bien me revoilà pour à nouveau vous demander de l'aide. J'ai bidouillé et non pas créé un code qui permet d'enregistrer les données saisies dans l'USF d'un fichier dans un autre fichier. Tout se passe bien à l'exception des "OptionButton". Mes variables Val et Val2 ne gardent pas leur valeurs respectives lorsque je dois écrire les infos dans mon fichier Destination. Je vous joins les 2 codes pour que vous puisiez me dire où je pêche.
Code:
Private Sub CommandButton2_Click()
Dim Val As String
Dim Val2 As String
If ComboBox3.Value = "" Then Exit Sub
If IsNumeric(ComboBox3) Or ComboBox3 Like " *" Or ComboBox3.Value = "" Or InStr(ComboBox3, " ") > 0 Then
retMsg = MsgBox("Le nom indiqué n'est pas valide. Veuillez le corriger.", vbOKOnly)
Exit Sub
End If
If Not IsNumeric(TextBox1.Value) Or TextBox1.Value = "0" Then 'si la quantité saisie nest pas numérique ou si égale à 0
retMsg = MsgBox("La quantité saisie n'est pas valide. Veuillez la corriger.", vbOKOnly)
Exit Sub
End If
If TextBox1.Value = "1" Then
retMsg = MsgBox("Vous êtes sur le point d'ajouter " & Chr(10) & TextBox1.Value & " contrat " & " pour " & ComboBox3.Value, vbOKCancel)
Else: retMsg = MsgBox("Vous êtes sur le point d'ajouter " & Chr(10) & TextBox1.Value & " contrats " & " pour " & ComboBox3.Value, vbOKCancel)
End If
If retMsg = vbCancel Then UserForm_Initialize
If retMsg = vbOK Then
For I = 5 To 6
If Controls("Optionbutton" & I) = True Then 'on écrit le type de contrat
Val2 = Mid(Controls("Optionbutton" & I).Caption, 1, 15)
End If
Next I
If Controls("Optionbutton3") = True Then
Val = "Français"
ElseIf Controls("Optionbutton4") = True And Controls("Optionbutton7") = True Then
Val = "Etranger Direct"
ElseIf Controls("Optionbutton4") = True And Controls("Optionbutton7") = False Then
Val = "Etranger Via"
End If
End If
Enregistrer
With ComboBox3
If .Text <> "" And .ListIndex < 0 Then
.AddItem ComboBox3, 0
.ListIndex = -1
End If
End With
UserForm_Initialize
End Sub
et ci-dessous celui qui écrit dans mon fichier Destination
Code:
Private Sub Enregistrer()
Dim wbSour As Workbook, wsSour As Worksheet
Dim wbDest As Workbook, wsDest As Worksheet
Dim derLig As Long
Dim Val As String
Dim Val2 As String
Application.ScreenUpdating = False
Set wbSour = ThisWorkbook
'Set wsSour = wbSour.Worksheets("Base")
Set wUsf = UserForm2
'Vérifier que le classeur de destination existe
If Dir("Q:\_OEUVRES\JCK\Stats_Contrats\Récap_New_Stats_Contrats.xls", vbDirectory) = "" Then
MsgBox "Le classeur de destination n'existe pas", vbCritical, "Fichier introuvable..."
'Exit For
End If
' Ouvrir le classeur de destination
Workbooks.Open "D:\Mes documents\Stats_Contrats\Récap_New_Stats_Contrats.xls"
Set wbDest = ActiveWorkbook
Set wsDest = ActiveWorkbook.Worksheets("Total")
'D:\Mes documents\Stats_Contrats\New_Statistiques_Contrats.xls
derLig = wsDest.Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
wsDest.Range("A" & derLig).Value = UserForm2.ComboBox3.Value
wsDest.Range("B" & derLig).Value = UserForm2.ComboBox1.Value
wsDest.Range("C" & derLig).Value = UserForm2.ComboBox2.Value
wsDest.Range("D" & derLig) = Val
wsDest.Range("E" & derLig) = Val2
wsDest.Range("F" & derLig).Value = UserForm2.TextBox1.Value
wsDest.Range("G" & derLig).Value = CDate(Date) & " à " & Time
wsDest.Range("H" & derLig).Value = Application.UserName
' Sauvegarder les données dans le classeur de destination
wbDest.Save
' Fermer le classeur de destination
wbDest.Close
'End If
End Sub
D'avance merci à tous.
Scoobidoo
Ps: n'hésitez pas à me proposer des amélioration pour le code que j'ai bricolé. A+