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
et l’enregistrement ne s’ajoute pas dans ma feuille « BASE PRODUITS ». puis excel plante et reboot.
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
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
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.
« 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 ?
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 »
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