Tableau, incrementation et procédure VB

Fermé
Kakamou - Modifié par Kakamou le 16/04/2010 à 15:43
 Kakamou - 22 avril 2010 à 09:52
Bonjour,
Je vais essayer d'être clair, mais je promet rien, donc voici mon problème et je remercie d'avance ceux qui auront le temps de m'aider:
J'ai une macro sous excel qui a pour but d'afficher du texte dans un tableau, Pour éviter de réécrire plusieurs fois un bout de code j'ai préféré appeler une procédure. Le problème ce que les seules choses qui s'écrivent dans mon tableau sont les 2 premiers élément ("LSL réservoir HS" et "Période de mise en service"). A partir du moment ou je rentre dans ma procédure (je l'ai éxecuté en pas à pas pour voir), les indices de mon tableau MatResultHG n'appartiennent pas à la sélection.
Savez vous quel est le problème, si je m'y prend bien, ou autre, je suis ouvert à plusieurs propositions quitte à refondre une bonne partie du code.

Encore une fois merci d'avance et voici le bout de code qui va avec mon explication :

Kakamou

' VRAI_BAS_NIV_RESERVOIR_CAS1
i = 40
j = 4
comptagedesvrais = 0
faitstotaux = 12
'faits supposés
If lrh = "NSP" Then
MatResultHG(i, j) = "LSL réservoir HS"
j = j + 1
End If
If pdmes = "NSP" Then
MatResultHG(i, j) = "Période de mise en service"
j = j + 1
End If
'cavitation_cas1_supposé~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Call cavitation_cas1_supposé

avec
Sub cavitation_cas1_supposé()
If bdgt = "NSP" Then
MatResultHG(i, j) = "Bruit de gravier tuyauterie"
j = j + 1
End If
If pmrpb = "NSP" Then
MatResultHG(i, j) = "Pompage mano ref. pompe BP"
j = j + 1
End If
If pampb = "NSP" Then
MatResultHG(i, j) = "Pompage amp. moto pompe BP"
j = j + 1
End If
If mpes = "NSP" Then
MatResultHG(i, j) = "Moto pompe en service"
j = j + 1
End If
If prpbo = "NSP" Then
MatResultHG(i, j) = "Pression ref. pompe BP OK"
j = j + 1
End If
'baiss_press_ref_pomp_bp_cas1_supposé~~~~~~~~~~~~~~~~~~~~~~
Call baiss_press_ref_pomp_bp_cas1_supposé

et de manière semblable

Sub baiss_press_ref_pomp_bp_cas1_supposé()
If tbna = "NSP" Then
MatResultHG(i, j) = "Très bas niveau accu"
j = j + 1
End If
If pg = "NSP" Then
MatResultHG(i, j) = "PSL graissage"
j = j + 1
End If
If prpbh = "NSP" Then
MatResultHG(i, j) = "PSL ref. pompe bp HS"
j = j + 1
End If
If bna = "NSP" Then
MatResultHG(i, j) = "Baisse niveau accu."
j = j + 1
End If
If faa = "NSP" Then
MatResultHG(i, j) = "Fuite alimentation azote"
j = j + 1
End If
A voir également:

1 réponse

Bonjour,
essaye de déclarer les indices de ton tableau i et j en tant que Public integer tout en haut de ton module avant le debut de tes procedures : une variable non déclarée public est "oubliée" d'une procédure à une autre, c'est peut etre pour cela que tu as l'erreur l'indice n'appartient pas a la selection.
1
Salut moon, merci pour la réponse, mais ça ne marche pas : j'ai un message qui me dit que c'est un mauvais attribut.
Par contre j'ai essayé de déclarer mes variables dans un module à part pour voir si c'est ça qui clochait (ça avait le même effet que ton idée je pense). Le problème c'est que ça marchait pas non plus.
Finalement, j'ai rentré tout un tas de variables en public (comme tu me l'a dit : Public [variable] as [type de variable])
Et en tout cas pour ce que je voulais résoudre ça marche (après y'a un autre problème mais bon...)
0