bonjour
j'ai un userformpri qui fait appel un autre userform2 si le cas du chekbox1 est cocher pour permettre a l’utilisateur de rentré les élément de l’équipement
a partir de la tout va bien .
mais dès que je valide userform2 cela me met une erreur

en fait je vroudrais que l'equipement selectionné dans userformpri et que le chekbox1 est cocher les donne des texbox de l'userform2 aille dans la feuille 'donne équipement' en face de l’équipement choisi dans userformpri

trouvez ci dessous le code de mon userformpri et celui de userform2


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
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
127
128
129
'enregistrement et protection blocage des donnees'
 
Private Sub CommandButton1_Click()
 
Dim l_info As Integer
Dim note_1 As String, note_2 As String, lanote As String
Dim ws As Worksheet
'protection feuille
Dim cell As Range
                Dim pl As Range
                Worksheets("TABLEAU RECAP").Visible = True
                Worksheets("TABLEAU RECAP").Unprotect ("cedric")
                Sheets("TABLEAU RECAP").Cells.Locked = True
                For Each cell In Sheets("TABLEAU RECAP").Range("M2")
                    If cell.MergeCells = True Then
                        Set pl = cell.MergeArea
                        cell.UnMerge
                        cell.Locked = False
                        pl.Merge
                    Else
                        cell.Locked = False
                    End If
                Next cell
                Worksheets("TABLEAU RECAP").Protect ("cedric"), DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
 
 
With ThisWorkbook.Worksheets("TABLEAU RECAP")
 l_info = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
 
 
     .Range("B" & l_info).Value = ComEQUI 'libelle equipement'
        .Range("c" & l_info).Value = Textlocal 'code local"
        .Range("D" & l_info).Value = ComRESP 'Nom du responsable'
        .Range("E" & l_info).Value = CDate(TextDATEAM) 'date du constat'
        .Range("F" & l_info).Value = CDate(TextMISE) 'date de mise en service'
        .Range("G" & l_info).Value = CInt(TextDUREVIE.Value)  'Duree de vie theorique'
        .Range("H" & l_info).Value = CDate(TextREMPL) 'Date theorique de remplacement '
        .Range("I" & l_info).Value = CInt(TextDURVIERESI.Value)  'Duree de vie residuelle '
        .Range("J" & l_info).Value = TextESTIMREMPL 'Duree de vie residuelle '
        .Range("K" & l_info).Value = CInt(TextRESUETAT.Value) 'note de etat equipement'
        .Range("l" & l_info).Value = CInt(TextRESUCRIT.Value) 'note de criticite equipement'
 
If CheckBox1.Value Then
'cas case cochee
.Range("p" & l_info).Value = "x"
.Range("q" & l_info).Value = CDate(Textboxdatechange) 'date de remplacement équipement
MsgBox ("attention imformer au equipe gmao le changement eqipement")
Else
'cas case non cochee
'rien ?
End If
 
 If UserFormpri.CheckBox1.Value = True Then
 userform2.Show
 Else
'rien
End If
 
If .Range("O" & l_info).Value <> lanote And CheckBox1.Value = False Then
MsgBox ("Note différente de l'année dernière")
Else
 
End If
 
With .Range("M" & l_info)
                'formulation
                .FormulaR1C1 = "=IF(RC[-2]<=21,""Mauvais"",IF(RC[-2]<=43,""Usuel"",IF(RC[-2]<=64,""Bon"")))"
                'équivaut à un collage spécial valeur
                .Value = .Value
                note_1 = .Value
         End With
 
         With .Range("N" & l_info)
                'formulation
                .FormulaR1C1 = "=IF(RC[-2]<=21,""Faible"",IF(RC[-2]<=43,""Moyenne"",IF(RC[-2]<=64,""Forte"")))"
                'équivaut à un collage spécial valeur
                .Value = .Value
                note_2 = .Value
         End With
 
        Select Case True
                    Case note_1 = "Mauvais" And note_2 = "Faible"
                            lanote = "B"
                    Case note_1 = "Mauvais" And note_2 = "Moyenne"
                            lanote = "C"
                    Case note_1 = "Mauvais" And note_2 = "Forte"
                            lanote = "C"
 
                     Case note_1 = "Usuel" And note_2 = "Faible"
                            lanote = "A"
                    Case note_1 = "Usuel" And note_2 = "Moyenne"
                            lanote = "B"
                    Case note_1 = "Usuel" And note_2 = "Forte"
                            lanote = "B"
 
                     Case note_1 = "Bon" And note_2 = "Faible"
                            lanote = "A"
                    Case note_1 = "Bon" And note_2 = "Moyenne"
                            lanote = "A"
                    Case note_1 = "Bon" And note_2 = "Forte"
                            lanote = "A"
 
        End Select
 
 
  .Range("O" & l_info).Value = lanote
 
Set ws = ThisWorkbook.Worksheets("Donnée équipement")
 l_info = ws.Cells.Find(ComEQUI.Value, , , xlWhole).Row
       ws.Range("G" & l_info).Value = lanote
 
 If .Range("O" & l_info).Value <> lanote And CheckBox1.Value = False Then
 
MsgBox ("Note différente de l'année dernière")
Else
End If
 
 
 
 End With
 
 
Me.hide
 
 
 
Unload UserFormpri
 
End Sub
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
Private Sub CommandButton1_Click()
 
Dim l_info As Integer
Dim ws As Worksheet
 
Set ws = ThisWorkbook.Worksheets("Donnée équipement")
 
 
ws.Range("p" & l_info).Value = TextBox1 'marque
ws.Range("q" & l_info).Value = TextBox2 'type
ws.Range("r" & l_info).Value = TextBox3 'réference
ws.Range("s" & l_info).Value = TextBox4 'puissance
ws.Range("s" & l_info).Value = TextBox4 'débit
 
Unload userform2
 
End Sub
merci de votre aide