Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Excel plante sur une procédure

Edze

XLDnaute Nouveau
Bonjour,

J'ai un souci avec mon code pour créer des boutons dynamiquement, il s'exécute parfaitement lorsque je lance la procédure par l'éditeur VB seulement lorsque je l'appel depuis une autre procédure ou depuis un bouton, excel plante.
Code:
 Private Sub btn_addprsn()
    ...
    Call AddBtnAdd
    ...
End Sub


Private Sub AddBtnAdd()
    Dim nbPersonnes As Integer
    Dim numLigne As Integer
    
    numLigne = Range("BC4") - 1
    nbPersonnes = Range("BC3")
    
    With ActiveSheet
        LargeurBouton = Columns(3).Width
        GaucheBouton = Columns(3).Left
        HauteurBouton = Rows(numLigne).Height
        SommetBouton = Rows(numLigne).Top
    End With

    Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
    Left:=GaucheBouton, Top:=SommetBouton, Width:=LargeurBouton, Height:=HauteurBouton)

    oOLE.Name = "btnAddLigne_" & nbPersonnes
    oOLE.Object.Caption = "+"
    
    Code = "Sub btnAddLigne_" & nbPersonnes & "_Click()" & vbCrLf
    Code = Code & "AddLigne(" & nbPersonnes & ")" & vbCrLf
    Code = Code & "End Sub"

    With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
        NextLine = .CountOfLines + 1
        .insertLines NextLine, Code
    End With
End Sub

J'ai l'impression que ca coince lorsque le code du bouton est écrit. Je vous serais très reconnaissant si vous aviez la solution ou du moins des pistes sur lequel je pourrai m'orienter.

Merci.
 

gilbert_RGI

XLDnaute Barbatruc
Re : Excel plante sur une procédure

Bonjour

voir cette ligne
numLigne = Range("BC4") - 1
ne fonctionne pas si BC4 <= 1
bc3 doit être aussi <> ""

mettre le code dans un module sans private


un autre problème ici
"Code = Code & "AddLigne(" & nbPersonnes & ")" & vbCrLf"
 
Dernière édition:

Edze

XLDnaute Nouveau
Re : Excel plante sur une procédure

Bon binh merci de votre aide, mais j'ai trouvé ma réponse.

Le problème venait que derrière l'appel de ma procédure il y avait encore une ligne de code et lorsqu'on écrit du code comme lors de la création de mon bouton il est immédiatement recompilé ce qui pose évidement un problème si le code est encore en exécution ..
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…