Je rencontre un problème de plantage d'Excel avec un message Erreur
d'application EXCEL.EXE de la forme suivante:
L'instruction à "0x650561a4" emploie l'adresse mémoire "0x076dba7c". La
mémoire ne peut pas être "read".
Les N° d'adresses peuvent changer
Ce message se produit dans les conditions suivantes:
Je crée sur une feuille des controles combox selon la méthode
Set dp = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
Left:=c.Left, Top:=c.Top, Width:=12, Height:=12)
et je nourris les combobox de valeurs de colonne par programmation.
je commence , par programmation, par écrire une macro qui va permettre à
chacun de mes combobox dans des procédures evenementielles que je décris
plus loin de s'y referencer.
La méthode d'écriture est la suivante: dans ce programme la fonction
ProcedureExists(procedure,module) renvoie un booleen pour tester l'existence
de la procedure dans un module donné.
Sub Macro1
Set proj1 = ActiveWorkbook.VBProject.VBComponents("modHZFILTER").CodeModule
If Not ProcedureExists("Search", "modHZFILTER") Then
Set Subrange = ThisWorkbook.Worksheets("MODULE").Range("nommodule")
Ensuite toujours par programmation, il faut que je crée des macros
evenementielles
attachées à chacun des combobox ce que je fais par la méthode suivante
Sub Macro 2
titi = ActiveWorkbook.ActiveSheet.CodeName
Set proj = ActiveWorkbook.VBProject.VBComponents(titi).CodeModule
For beta = 1 To nbHZ
nomcontrole = "HZFILTERA" & beta
If Not ProcedureExists1(nomcontrole & "_Click", titi) Then
textlocation = proj.CreateEventProc("Click", nomcontrole)
proj.InsertLines proj.ProcBodyLine(nomcontrole & "_Click",
vbext_pk_Proc) + 2, texteàécire
End If
Next
end sub
le corps d'appel des macros précédentes est le suivant
Sub mon_programme
call macro1
call macro2
end sub
Mon problème arrive toujours au moment de l'ajout des procédures
evenementielles à l'endroit du programme textlocation =
proj.CreateEventProc("Click", nomcontrole)
Précision: quand je fais la 1ere partie (c.à.d Macro1 ) et que je m'en tiens
là puis que j'exécute la 2eme partie (Macro2) après, c.à.d pas en séquence
dans la Sub Mon_programme , tout se déroule très bien. C'est seulement quand
je veux faire exécuter l'un après l'autre dans la même séquence de programme
que ça plante.
Volià, j'ai été long mais j'ai déjà copieusement cherché et je sèche vraiment.
J'espère avoir été assez clair pour que vous puissiez me donner une piste de
solution.
Merci d'avance à tous.
Merci pour ta réponse, mais qu'est ce qui te fait dire ça ? En effet, quand je déclenche ma 2eme macro à la suite de la 1ere (c.à.d pas dans le même corps de programme d'appel) , le programme écrit correctement les macros évenementielles dans le module que je lui indique .
Merci pour ta réponse, mais qu'est ce qui te fait dire ça ?
En effet, quand je déclenche ma 2eme macro à la suite de la 1ere (c.à.d pas
dans le même corps de programme d'appel) , le programme écrit correctement
les macros évenementielles dans le module que je lui indique .
Merci pour ta réponse, mais qu'est ce qui te fait dire ça ? En effet, quand je déclenche ma 2eme macro à la suite de la 1ere (c.à.d pas dans le même corps de programme d'appel) , le programme écrit correctement les macros évenementielles dans le module que je lui indique .