Bonjour,
J'ai créé un classeur excel qui contient un panel de macro tant évenementielles qu'à des fonctions, et qui fait appel sur commande à un programme extérieur.
Mon problème est que lorsque j'ouvre ce classeur au bout d'un certain temps, Excel rencontre une erreur et doit fermer. Ce temps est assez variable (parfois immédiat) et n'est pas directement lié à une erreur de programmation (enfin du moins je le crois) car toutes mes procédures fonctionnent correctement et sont assez sécurisées.
Avez-vous déjà rencontré un tel problème? Avez-vous une idée d'ou ca pourrait venir, si certaines procédures pourrait rendre excel assez instable?
j'ai en particulier un certain nombre de combobox avec des codes associés et qui sont liées les unes aux autres car un choix dans une modifie les choix possible dans les autres
J'ai du coup tenté de réduire ces activations de combobox
ca marche assez bien mais mon erreur persiste et j'obtiens maintenant assez rapidement cette erreur lorsque je me sert de ces combobox:
excel ne peut pas terminer cette tache avec les ressources disponibles,selectionnez moins de données ou fermez des applications
Pourtant toutes mes variables sont bien définies, j'ai aussi utilisé pour la plupart des sub et fonction en private pour ne pas remplir ma mémoire

Sauriez vous comment résoudre cela et d'où cela peut-il venir?

merci par avance et désolé de la longueur du msg
rémi

ps: voici les codes qui se lancent au démarrage:
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
Private Sub Workbook_open()
Dim i As Integer
Dim l As Integer
 
i = 2
Do While Worksheets("Configuration").Cells(i, 1).Value <> ""
Worksheets("Modèle").Cells(i, 50).Value = Worksheets("Configuration").Cells(i, 1).Value
 
i = i + 1
Loop
 
l = LookForRow(1, "Modèle", "Ambient temperature")
Worksheets("Modèle").Cells(l - 1, 2).Value = "Normal"
 
l = LookForRow(1, "Modèle", "Pression Enceinte")
Worksheets("Modèle").Cells(l - 1, 2).Value = "Normal"
 
l = LookForRow(5, "Modèle", "% Pressure Tolerance")
Worksheets("Modèle").Cells(l, 6).Value = 0.05
Worksheets("Modèle").Cells(l + 1, 6).Value = 0.05
Worksheets("Modèle").Cells(l + 2, 6).Value = 5000
 
Worksheets("Modèle").Activate
 
End Sub
Private Function LookForRow(ColumnId As Integer, feuille As String, target As Variant) As Integer
'trouve le numéro de ligne sur laquelle est écrit le nom du projet/réseau/resultat (target) que l'on veut lancer
On Error GoTo Error_LookForRow
 
LookForRow = 1
 
Do While Worksheets(feuille).Cells(LookForRow, ColumnId).Value <> target
    LookForRow = LookForRow + 1
    If LookForRow = 5000 Then GoTo Error_LookForRow
Loop
 
Exit Function
 
Error_LookForRow:
MsgBox ("le mot " & target & " est introuvable dans la feuille " & feuille & " dans la colonne" & ColumnId)
 
End Function
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub WorkSheet_activate()
 
Dim marange As Range
Dim i As Integer
i = 2
While Worksheets("Modèle").Cells(i, 50) <> ""
 i = i + 1
Wend
Set marange = Range(Worksheets("Modèle").Cells(2, 50), Worksheets("Modèle").Cells(i, 50))
If ComboBox1.ListFillRange <> marange.Address Then ComboBox1.ListFillRange = marange.Address
 
End Sub