VBA bug création d'un enregistrement sur feuille de calcul

Bonjour,

voici mon appli gestion de stock de consommables.
Gestion-de-stock-consommables-informatiques.xlsm (2,0 Mo)

Cependant, je rencontre un bug que je n’explique pas lorsque je crée plusieurs articles.
A partir de l’onglet « Appli », je lance mon appli (userform « Test_multipage »).
Mes articles s’affichent.
Si je créer un article via le bouton « Ajouter article »…no problem.
Par contre, si je sors et que je veux créer un article supplémentaire, je rencontre un bug lors de l’ajout de la ligne dans la macro du bouton « Ajouter ».
Le soucis semble venir de la ligne de commande Cells(ligne, 1) = ComboBox1.Value
Je me demande si cela ne vient pas de la ligne du dessus ligne = Sheets(« BASE PRODUITS »).Range(« A1000 »).End(xlUp).Row + 1

Le message d’erreur est le suivant
image

et l’enregistrement ne s’ajoute pas dans ma feuille « BASE PRODUITS ». puis excel plante et reboot.

Merci de votre aide

Bonjour

Je viens de réaliser un test sans aucun bug
J’ai rajouté ces 2 articles l’un après l’autre :

Décris moi exactement tes manipulations pour que de mon côté je les réalise à l’identique et de voir ce que j’obtiens

Car avec ma façon de faire no problème

1 - j’ouvre l’appli
2- j’ajoute un article et je reviens au menu principal
3- j’ajoute un autre article
4 je quitte complètement l’appli
5-je rouvre l’appli
6-je rajoute un article → et là le bug se produit

moi j’ai créé les articles « cccccccc » puis « eeeeeeee » et quand je reviens pour créer le dernier voilà ce qu’il me fait(ligne 34)
image

Je viens de tester sans la moindre difficulté :

Cela vient peut être d’un paramètre de saisie car dans ta copie je n’en ai que 3 (catégorie emplacement désignation)
Or il faut aussi saisir ceux-ci :

Code SAP
Code barre
Conditionnement
Quantité initiale
Stock d’alerte

Et je ne sais pas ce que toi tu mets pour toutes ces données

C’est peut être l’une voir plusieurs d’entre elles qui sont à l’origine du dysfonctionnement

Il faut me donner l’intégralité de tes saisies pas d’autre choix

Pour l’instant je n’ai pas réussi avec mes données d’intégration à provoquer ton défaut

Donc je ne peut en l’état te venir en aide

Je me demande si je n’ai pas plutôt un soucis avec mon Excel car il me fait des bugs bizarre qu’il ne me faisait pas avant.
En ce qui concerne mes ajouts dans mon appli, je ne fais rien qui pourrai produire l’erreur.
Lorsque je créer un article, dans les champs liste de choix, je prends la première valeur, dans les zones de texte je mets des caractères et les 2 derniers, des chiffres.
Mais aux vues du message d’erreur, je me demande s’il n’y a pas un soucis avec la ligne de commande
ligne = Sheets(« BASE PRODUITS »).Range(« A1000 »).End(xlUp).Row + 1
car ma ligne 34 ne s’est pas créée dans mon tableau, mais en dessous

Fais un essai avec le même fichier mais dans un autre environnement informatique nouveau PC nouvel excel
Ainsi de voir ce que tu obtiens

FFO, je viens de tester sur un autre poste de travail. En fait après plusieurs(beaucoup) tests, j’ai trouvé dans quelle condition apparaît l’erreur.
Si tu utilises l’appli en partant depuis l’onglet "Appli’. Que tu ouvres, que tu fermes, ré ouvres, refermes etc etc…le soucis n’apparaît jamais.
par contre quand tu lances l’appli depuis le développeur VB et que tu fais les manips…au bout de 2 fois ça plante.
Sauf que je ne sais pas d’où cela provient. Car Pour contrôle,avant le rajout du nouvel enregistrement, j’affiche une msgbox pour qu’il me donne la valeur de la variable « Ligne ». La variable est correcte.
Testes de ton côté et l’erreur sera présente.
Pourquoi ? c’est un mystère.
Mais je ne vais pas passer des heures dessus.
Je vais continuer le développement…c’est plus judicieux.

Merci quand même pour ton aide.

Bonjour

« par contre quand tu lances l’appli depuis le développeur VB et que tu fais les manips…au bout de 2 fois ça plante. »

Quand tu dis « le dėveloppeur VB » tu parles de quoi ?
L editeur de macro ?
Quel intérêt de passer par l éditeur de macro ?
De plus une fois ouvert quelle macro executes tu celle de l ouverture du formulaire ?
Quel est l onglet actif à l écran ?

Il me manque des précisions

FFO,

oui exactement le développeur Macro. L’intéret pour moi c’est de développer, tester, modifier en live.
Quand j’y suis, tout le temps la même manip. Je passe par le UserForm « Test_multipage ».
L’onglet ouvert varie, mais c’est principalement « BASE PRODUITS » ou quelquefois « Appli »

Je viens enfin de provoquer ton défaut
Mais avec une manière d’opérer très particulière qui n’est en aucun cas c’elle qui doit l’être
A partir de l’éditeur de macro j’ai exécuté la macro « Bouton21_Cliquer » qui ouvre le formulaire « Ajouter_un_article » seul
Le souci lorsque tu remplis celui-ci et que tu exécutes son bouton « Ajouter » tu alimentes des données saisies l’onglet « BASE PRODUITS » celles-ci étant associées à un tableau
Si celui-ci est actif à l’écran dés que la première donnée en colonne A est intégrée la deuxième en colonne B se bouscule avec la nécessité pour le tableau de s’agrandir d’une ligne
Ces 2 opérations simultanée ne peuvent s’opérer en même temps c’est obligatoirement l’une aprés l’autre
C’elle de l’actualisation de la dimension du tableau prend le pas empêchant le déroulement du code du bouton « Ajouter » ce qui engendre le Bug
Si au moment de ce plantage du réalises « Débogage » tu tombes sur la ligne de code qui doit alimenter la colonne B de cet onglet
Un appui sur la touche « F5 » réenclenche le déroulement de cette procédure jusqu’à son terme avec la ligne de l’onglet complétée sur toute les colonnes

Donc ton dysfonctionnement n’a rien à voir à une anomalie quelconque de ton fichier ou de ces traitements mais simplement 2 opérations qui veulent s’exécuter en même temps l’une empêchant l’autre
Il aurait fallu que les données de ton onglet « BASE PRODUITS » ne soit pas associées à un tableau
L’utilisation par le biais normal (Bouton onglet « Appli » formulaire « Test multipage » bouton « Ajouter Article ») offre l’avantage d’avoir actif à l’écran un onglet qui n’est pas celui à alimenter donc du tableau à redimensionner
J’ai testé le déroulement décrit ci-dessus à partir de l’éditeur de macro avec un onglet actif à l’écran autre que « BASE PRODUITS » et plus aucun souci

Je te propose ce fichier ci-joint avec une ligne de code rajoutée dans le traitement bouton « Ajouter » du formulaire « Ajouter un Article » ici :

avant
ligne = Sheets(« BASE PRODUITS »).Range(« A1000 »).End(xlUp).Row + 1
Cells(ligne, 1) = ComboBox1.Value

aprés
ligne = Sheets(« BASE PRODUITS »).Range(« A1000 »).End(xlUp).Row + 1
On Error Resume Next
Cells(ligne, 1) = ComboBox1.Value

Et plus aucune difficulté

Donc à toi de choisir
Soit cette adaptation
Soit éviter l’onglet « BASE PRODUITS » actif à l’écran lors de l’ajout d’un enregistrement par le formulaire « Ajouter un Article »
Soit supprimer le tableau pour les données de l’onglet « BASE PRODUITS »

A toi de faire ton choix

Ton fichier avec la parade du bug
Gestion-de-stock-consommables-informatiques.xlsm (2,0 Mo)

FFO,
pour l’instant je ne suis qu’à la fase de qualification. Donc je vais prendre ton option car quand ça plante…ça plante et bien comme il faut !
Quand je passerai en prod, il n’y aura plus aucun soucis donc soit je laisserai « On Error Resume Next » soit je le supprimerai.
Encore un grand Merci pour le temps passé sur mon soucis

@ la prochaine

Merci pour ce retour

A ta disposition si tu le souhaites

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.