Bonjour à tous,

Voilà, j'ai un problème au niveau d'un formulaire de saisie que j'ai créé, quand je lance mon programme, j'ai un message d'erreur disant que ma procédure est trop longue.

Le problème c'est que je n'arrive pas à coder une procédure générale que je pourrai appeler dans une subroutine et ainsi ne pas dépasser la capacité de mémoire de ma procédure.

Voici le code principale qui doit executer les tâches suivantes via le formulaire de saisie:

- j'ai une liste de projet et je dois savoir pour chaque acteur quelle est la charge de travail qui a été réalisée. Donc j'ai créé un formulaire ou l'utilisateur décide via une combobox quel projet il souhaite renseigner.

- puis j'ai un tableau, avec dans la colonne d'entête les 6 acteurs et en entête de ligne les 12 mois de l'année (ce sont mes labels)
puis à l'intérieur du tableau j'ai 75 textbox que va remplir l'utilisateur afin d'allouer un certain nombre d'heure à chaque acteur.

Mon problème c'est que je dois faire cette opération pour plus de 100 projets, et l'affectation de mes données rend la procédure beaucoup trop lourde, la mémoire de ma procédure est dépassée quand j'ai plus de 10 projets...

Quelqu'un a t-il une solution pour optimiser mon code svp, toute aide est la bienvenue... je suis complètement bloquée, je n'ai pas l'habitude de coder ?

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
Private Sub UserForm_Initialize()
 
'Alimentation de la combobox avec le nom des différents projets que l'on a
 
        ComboBoxChoixProjet.AddItem "projet A"
        ComboBoxChoixProjet.AddItem "projet B"
        ComboBoxChoixProjet.AddItem "projet C"
 
End sub 
 
'PROJET 1
    If ComboBoxChoixProjet.Value = "projet1" Then
 
'tranfert des données pour charger l'acteur 1 pour ce projet
    f.Cells(9, 16) = Me.TextBox1.Value
    f.Cells(9, 17) = Me.TextBox2.Value
    f.Cells(9, 18) = Me.TextBox3.Value
    f.Cells(9, 20) = Me.TextBox4.Value
    f.Cells(9, 21) = Me.TextBox5.Value
    f.Cells(9, 22) = Me.TextBox6.Value
    f.Cells(9, 24) = Me.TextBox7.Value
    f.Cells(9, 25) = Me.TextBox8.Value
    f.Cells(9, 26) = Me.TextBox9.Value
    f.Cells(9, 28) = Me.TextBox10.Value
    f.Cells(9, 29) = Me.TextBox11.Value
    f.Cells(9, 30) = Me.TextBox12.Value
 
 'tranfert de donnée pour l'acteur 2 pour ce projet
    f.Cells(10, 16) = Me.TextBox13.Value
    f.Cells(10, 17) = Me.TextBox14.Value
    f.Cells(10, 18) = Me.TextBox15.Value
    f.Cells(10, 20) = Me.TextBox16.Value
    f.Cells(10, 21) = Me.TextBox17.Value
    f.Cells(10, 22) = Me.TextBox18.Value
    f.Cells(10, 24) = Me.TextBox19.Value
    f.Cells(10, 25) = Me.TextBox20.Value
    f.Cells(10, 26) = Me.TextBox21.Value
    f.Cells(10, 28) = Me.TextBox22.Value
    f.Cells(10, 29) = Me.TextBox23.Value
    f.Cells(10, 30) = Me.TextBox24.Value
 
'transfert de données pour l'acteur 3 pour ce projet
    f.Cells(11, 16) = Me.TextBox25.Value
    f.Cells(11, 17) = Me.TextBox26.Value
    f.Cells(11, 18) = Me.TextBox27.Value
    f.Cells(11, 20) = Me.TextBox28.Value
    f.Cells(11, 21) = Me.TextBox29.Value
    f.Cells(11, 22) = Me.TextBox30.Value
    f.Cells(11, 24) = Me.TextBox31.Value
    f.Cells(11, 25) = Me.TextBox32.Value
    f.Cells(11, 26) = Me.TextBox33.Value
    f.Cells(11, 28) = Me.TextBox34.Value
    f.Cells(11, 29) = Me.TextBox35.Value
    f.Cells(11, 30) = Me.TextBox36.Value
 
'transfert de données pour l'acteur 4 pour ce projet
    f.Cells(12, 16) = Me.TextBox37.Value
    f.Cells(12, 17) = Me.TextBox38.Value
    f.Cells(12, 18) = Me.TextBox38.Value
    f.Cells(12, 20) = Me.TextBox40.Value
    f.Cells(12, 21) = Me.TextBox41.Value
    f.Cells(12, 22) = Me.TextBox42.Value
    f.Cells(12, 24) = Me.TextBox43.Value
    f.Cells(12, 25) = Me.TextBox44.Value
    f.Cells(12, 26) = Me.TextBox45.Value
    f.Cells(12, 28) = Me.TextBox46.Value
    f.Cells(12, 29) = Me.TextBox47.Value
    f.Cells(12, 30) = Me.TextBox48.Value
 
'transfert de données pour l'acteur 5 pour ce projet
    f.Cells(13, 16) = Me.TextBox49.Value
    f.Cells(13, 17) = Me.TextBox50.Value
    f.Cells(13, 18) = Me.TextBox51.Value
    f.Cells(13, 20) = Me.TextBox52.Value
    f.Cells(13, 21) = Me.TextBox53.Value
    f.Cells(13, 22) = Me.TextBox54.Value
    f.Cells(13, 24) = Me.TextBox55.Value
    f.Cells(13, 25) = Me.TextBox56.Value
    f.Cells(13, 26) = Me.TextBox57.Value
    f.Cells(13, 28) = Me.TextBox58.Value
    f.Cells(13, 29) = Me.TextBox59.Value
    f.Cells(13, 30) = Me.TextBox60.Value
 
'transfert de données pour l'acteur 6 pour ce projet
    f.Cells(14, 16) = Me.TextBox61.Value
    f.Cells(14, 17) = Me.TextBox62.Value
    f.Cells(14, 18) = Me.TextBox62.Value
    f.Cells(14, 20) = Me.TextBox64.Value
    f.Cells(14, 21) = Me.TextBox65.Value
    f.Cells(14, 22) = Me.TextBox66.Value
    f.Cells(14, 24) = Me.TextBox67.Value
    f.Cells(14, 25) = Me.TextBox68.Value
    f.Cells(14, 26) = Me.TextBox69.Value
    f.Cells(14, 28) = Me.TextBox70.Value
    f.Cells(14, 29) = Me.TextBox71.Value
    f.Cells(14, 30) = Me.TextBox72.Value
 
 
private Sub CommandButtonQuitter_Click()
unload UserFormprojet
end Sub

Merci d'avance