Symptôme de l'erreur - "La méthode 'add' de l'objet 'ListRows' à échoué"

taratata

XLDnaute Junior
Bonjour à tous,

j'ai identifier la cause du problème et ai trouver un contournement ne résolvant pas dans les règles de l'art (si je peux me permettre ce terme).

Voici le topo :

Sur une feuille "Stock", il y a 3 tableaux structurés "BaseNeutre" "Nicotine" "ARO"

Le formulaire "Select_Produits" permet de sélectionner le type de produits correspondant au tableau cible pour afficher
le formulaire "Add_Product" dont certains champs s'affiche selon le type de produit.
Le formulaire permet d'introduire plusieurs articles pour une commande, puis afin ajouter les frais de port via le bouton Fermer

Explication du phénomène de l'erreur "La méthode 'add' de l'objet 'ListRows' à échoué"
ligne mise ne cause --> Set list_row_sARO = list_obj_sARO.ListRows.Add dans Private Sub BT_Ajouter_Click()

1 - cas de figure :
--------------------
Ouverture fichier .xlsm
clic bouton noir "Ajouter un produit"
Sélection BaseNeutre
Remplissage formulaire "Add_Product"
Bouton Fermer - introduire frais

la ligne est ajoutée au tableau cible
fermer le fichier

2 - cas de figure :
--------------------
idem pour Nicotine (pas de soucis)
fermer le fichier

3 - cas de figure :
--------------------
idem pour BaseNeutre puis Nicotine (pas de soucis)
fermer le fichier

4 - cas de figure :
--------------------
Uniquement Arome alors erreur apparaît

5 - cas de figure :
--------------------
Ajout BaseNeutre ou Nicotine
puis Arome
alors pas d'erreur

Selon mes connaissance de débutant, j'en déduits que la routine pour Arome est ok!

dans Private Sub BT_Ajouter_Click(), j'ai ajouter, en tout premier le code ci-dessous pour ajouter une ligne vide dans le tableau structuré "BaseNeutre"
Cela fonctionne parfaitement.
Cela signifie aussi que je n'identifie pas clairement le soucis

VB:
....

If Nom_Tableau = "ARO" Then
                   ' Ajout une ligne vierge afin d'éliminer le plantage d'écriture sur le tableau ARO, s'il est sélectionnée en 1er.
                   ' Symptôme de l'erreur - "La méthode 'add' de l'objet 'ListRows' à échoué"
                   ' Si l'on ajoute une BaseNeutre ou une Nicotine puis Arome, alors pas de soucis
                   ' Si l'on ajoute diretement une Arôme alors messahe erreur
                   With Sheets("Stock").ListObjects("BaseNeutre")
                        'ajout d'une ligne vierge en fin du tableau
                       .ListRows.Add
                   End With

....
trouver le fichier joint, pour ceux qui aurai le temps pour m'aider à résoudre le problème


merci d'avance de votre temps
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Bonjour.
À tout hasard essayez en spécifiant le paramètre AlwaysInsert:=True
 

taratata

XLDnaute Junior
Solution trouvée :
--------------------
La cause :
-----------

la déclaration RowSource est déclarée directement sur ListBox_ARO dans le formulaire
RowSource NomTableauStructuré


Solution :
-----------

déclaration dans le code

VB:
' --------  Le contrôle ListBox ARO doit être configurer  -------
' ------------------------------------------------------------
' - RowSource --> champ vide
' - MultiSelect = fmMultiSelectSingle
' - ColumnCount   1
' - Columnwidths  18


    ' Déclaration du tableau structuté
    tablo_ListBox_ARO = [ARO]
    ' Lien RowSource
    ListBox_ARO.List = tablo_ListBox_ARO
 

Discussions similaires


Haut Bas