Salut à tous,
Je fais une application qui crée plusieurs nouveaux classeurs Excel. Après la création de chaque classeur j'ajoute des boutons (et l'évènement associé) sur une nouvelle ligne du classeur qui héberge mon application. Pour ça j'utilise le code suivant à la fin de la création de chaque nouveau classeur :
Petit problème, ça fait crashé Excel (Excel ne répond plus) à la création du second bouton (le premier passe sans histoire).
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 Sub CreerControle(pResp As Variant, pIteration As Integer) Dim ws As Worksheet Dim control As OLEObject Dim ligneEntete As Integer Dim x As Integer Dim macro As String Set ws = ThisWorkbook.Worksheets("Utilisateur") ligneEntete = 15 Set control = ws.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, _ displayAsIcon:=False, Left:=ws.Range("E1").Left - 17, Top:=ws.Range("A" & (ligneEntete + pIteration)).Top + 1, Width:=16.6, Height:=21) control.Name = "AjoutDestinataire" & pIteration control.Object.Caption = "+" 'ajout macro laMacro = "Sub AjoutDestinataire" & pIteration & "_Click()" & vbCrLf laMacro = laMacro & "gColDest = ""D""" & vbCrLf laMacro = laMacro & "gRowDest = " & (ligneEntete + pIteration) & vbCrLf laMacro = laMacro & "Unload Newdest" & vbCrLf laMacro = laMacro & "Newdest.Show" & vbCrLf laMacro = laMacro & "End Sub" With ThisWorkbook.VBProject.VBComponents("Feuil2").CodeModule x = .CountOfLines + 1 .InsertLines x, laMacro End With End Sub
Je pense que le problème se trouve au moment de créer l'évènement dynamiquement (je n'en suis pas sur car je ne peux pas faire de debogage, dès que j'ai un OLEObject dans mon code et que je veux le debugger, j'ai l'erreur "Impossible de passer en mode arrêt").
J'ai essayé de créer une fonction test qui lance simplement cette procédure plusieurs fois de suite et là ça marche.....
J'ai trouvé un forum anglais où une personne a eu le même problème, il a trouvé la solution mais ne la donne pas explicitement....
http://www.ozgrid.com/forum/showthread.php?t=85508
Merci d'avance![]()
Partager