Erreur 1004 erreur définie par l'application ou par l'objet

Jacques_119 -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -

Salut tout le monde, 

je travaille sur la conception d'une application gmao avec vba par le biais d'excel. Et dans la partie gestion des stocks, je voudrais ajouter des nouveaux articles dans un tableau avec les informations nécessaires (Code, quantité, prix, etc). J'ai donc conçu un formulaire permettant l'insertion de ces données.

Cependant, en cliquant sur le bouton add du formulaire, l'erreur 1004 (erreur définie par l'application ou par l'objet) s'affiche. Toutes les pistes que j'ai trouvées sur le net n'ont pas marché jusque là. Le débogage renvoie à la ligne 15 (Set lstRow = .ListRows.Add) sur l'extrait de code.

Cependant, lorsque je transpose le même code à un autre tableau il marche sans problème. Je suppose donc que le problème est d'une manière ou d'une autre lié à l'objet (au tableau). je signale aussi que ce tableau d'articles est la source des trois autres tableaux dynamiques croisés qui me permettent de filtrer les articles par niveaux de stocks dans le tableau de bord. Que dois-je faire pour ne plus avoir cette erreur ?  

Voici l'extrait du code pénalisant, j'attends impatiemment vos réactions!!

Cordialement,

Merci !

Private Sub CommandButton2_Click()
    If Not Me.Cbx_Famille <> "" Then
            MsgBox " Veuillez définir les coordonnées de l'article "
        Else
            If Not Me.Txt_Prix <> "" Then
                MsgBox " Veuillez préciser le prix unitaire de l'article "
            Else
                If Me.Txt_Min <> "" Then
                    'Dim dl As Integer
                    Dim i As Long
                    Dim lstObj As ListObject
                    Dim lstRow As ListRow

                    
                    Set lstObj = Range("Tableau14").ListObject
                    With lstObj
                        Set lstRow = .ListRows.Add
                        i = lstRow.Index
                        
                    .ListColumns(1).DataBodyRange.Rows(i) = Me.Labe_Info.Caption
                    .ListColumns(2).DataBodyRange.Rows(i) = Me.Cbx_Famille
                    .ListColumns(3).DataBodyRange.Rows(i) = Me.Cbx_Place
                    .ListColumns(4).DataBodyRange.Rows(i) = Me.Txt_Nom
                    .ListColumns(5).DataBodyRange.Rows(i) = Me.Txt_Describe
                    .ListColumns(6).DataBodyRange.Rows(i) = CCur(Me.Txt_Prix)
                    .ListColumns(7).DataBodyRange.Rows(i) = CInt(Me.Txt_Min)
        
                End With
        
                Set lstObj = Nothing
                Set lstRow = Nothing
                     
                Sheets(33).Range("e19") = Sheets(33).Range("e19") + 1
                        
                        ThisWorkbook.Save
                        Unload Add_Articles
                Else
                    MsgBox "Veuillez indiquer le stock de sécurité"
                End If
            End If
        End If
End Sub


Windows / Chrome 106.0.0.0

2 réponses

danielc0 Messages postés 1857 Date d'inscription   Statut Membre Dernière intervention   229
 

Bonjour,

Peux-tu partager le classeur ?

Daniel


0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 

Bonjour a vous deux,

Un classeur serait le bienvenu car j'ai teste le code avec deux tablos et pas de probleme

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...

0