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

Fermé
Jacques_119 - 26 oct. 2022 à 00:52
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 - 26 oct. 2022 à 09:51

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

A voir également:

2 réponses

danielc0 Messages postés 1298 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 30 novembre 2024 148
26 oct. 2022 à 09:41

Bonjour,

Peux-tu partager le classeur ?

Daniel


0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
26 oct. 2022 à 09:51

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