Bonjour a tous,
J'ai un probleme qui a mes yeux est assez incomprehensible. Et j'espere que vous allez m'aider parce que la, je donne ma langue au chat.
Je suis sur un projet dans lequel j'utilise un userform pour remplir plusieurs de feuilles d'un meme classeur.
En gros, j'ai deux feuilles : StaffEvaluation et Training.
Je demande a l'utilisateur de remplir dans l'userform un certain nombre de donnees que j'insere apres dans les deux feuilles, a la fin.
Voici mon code (mon probleme est en note rouge dans le code):
Pourquoi, cette erreur 1004 (je ne comprends meme pas ce que veut dire le message d'erreur) alors que j'ai le meme code avant pour la feuille StaffEvaluation et que je n'ai pas ce probleme ?
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 Private Sub CommandButton2_Click() 'Deactivate the macro event of "Staff Evaluation" and "Training" Application.EnableEvents = False Dim i As Integer, j As Integer Dim macrosheet As Worksheet Set macrosheet = Workbooks("Succession plan").Worksheets("for macro") 'REMPLIT LA FEUILLE "STAFF EVALUATION" 'Trouve la derniere ligne de la feuille Dim StaffEvaluation As Worksheet Set StaffEvaluation = Workbooks("Succession plan").Worksheets("Staff Evaluation") i = StaffEvaluation.Range("A65536").End(xlUp).Row + 1 'Remplit la derniere ligne avec les donnees de l'userform With StaffEvaluation .Range("B" & i).Value = "0pen" .Range("C" & i).Value = "0pen" If ComboBox1 <> "Other" Then .Range("E" & i).Value = ComboBox1 Else .Range("E" & i).Value = TextBox7 j = macrosheet.Range("A65536").End(xlUp).Row macrosheet.Range("A" & j).Insert Shift:=xlDown macrosheet.Range("A" & j).Value = TextBox7 End If .Range("G" & i).Value = TextBox1 .Range("H" & i).Value = TextBox2 .Range("L" & i).Value = TextBox3 End With 'Met en forme la ligne inserer StaffEvaluation.Rows(i).RowHeight = 25.5 With StaffEvaluation.Rows(i) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With With StaffEvaluation.Range(Cells(i, 7), Cells(i, 8)) .HorizontalAlignment = xlGeneral .VerticalAlignment = xlCenter End With 'Jusque la, tout semble fonctionner correctement. Mais la ou cela devient incomprehensible, c'est que je fais exactement la meme chose pour la feuille Training et j'ai une erreur 1004. Voici la suite immediate du code : 'REMPLIT LA FEUILLE "TRAINING" 'Trouve la derniere ligne Dim Training As Worksheet Set Training = Workbooks("Succession plan").Worksheets("Training") i = Training.Range("A65536").End(xlUp).Row + 1 'Remplit la derniere ligne de la feuille avec les donnees de l'userform With Training .Range("A" & i).Value = "0pen" .Range("B" & i).Value = "0pen" .Range("C" & i).Value = ComboBox1 .Range("D" & i).Value = TextBox1 .Range("E" & i).Value = TextBox2 If ComboBox2 <> "Other" Then .Range("I" & i).Value = ComboBox2 Else .Range("I" & i).Value = TextBox6 j = macrosheet.Range("C65536").End(xlUp).Row macrosheet.Range("C" & j).Insert Shift:=xlDown macrosheet.Range("C" & j).Value = TextBox6 End If End With 'Mise en forme de la feuille Training.Rows(i).RowHeight = 25.5 With Training.Rows(i) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With 'ICI EST L'ERREUR 1004 DISANT: METHOD 'RANGE' OF OBJECT'_WORKSHEET' FAILED With Training.Range(Cells(i, 7), Cells(i, 8)) .HorizontalAlignment = xlGeneral .VerticalAlignment = xlCenter End With With Training.Rows.Font .Name = "Arial" .Size = 10 End With
Votre aide me sera d'un grand secours.
Merci d'avance,
Pubbins.
Partager