Microsoft 365 Erreur code listbox

Marvin57

XLDnaute Occasionnel
Bonjour à tout le monde,

je me penche vraiment dans les sujets pour comprendre les codes, ais dans mon fichier j'ai une erreur et je voudrai également ajouter un code.

Explications;

1) Lorsque je clique sur le bouton USERFORM de l'onglet accueil, j'ai accès à des données via les listbox. Or, j'ai une erreur quelque part lors du click sur une ligne dans le listbox1.
Ce listbox1 à comme source le tableau Tab_1 de l'onglet accueil.

2) Ensuite j'aurai voulu que si je clique sur une ligne du listbox1 qui se trouve sur la page base du multipage1 et que ces mêmes données se trouvent dans le tableau de l'onglet CDE, alors il devra m'afficher le nombre qui se trouve en colonne E (OBS) de la ligne choisie, dans le textbox OBS du UserForm.

Le listbox2 de la page CDE du multipage1 doit rester comme cela.

Sachez que les tableaux de l'onglet accueil et CDE se nomment Tab_1 et Tab_C. Ces noms doivent rester.

J'espère m'avoir bien expliquer, sinon je reste disponible pour tout renseignement.

Merci beaucoup à vous.

Marvin57
 

Pièces jointes

  • Marvin CODE AFFICHAGE.xlsm
    28.1 KB · Affichages: 1
Solution
Bonjour Marvin,
Avec la structure de vos macros, lorsqu'on clique sur "Valider augmentation", comme on écrit dans Textbox6 on boucle sur cette macro car à chaque fois qu'on y écrit on repart sur la macro TextBox6_Change.
C'est pour ça que le résultat n'est pas celui attendu. Cela s'appelle de la ré-entrance.
Donc en PJ :
1- J'ai invalidé la macro TextBox6_Change ( en l'appelant TextBox6_Change_SUPPRIMEE donc elle n'est plus reconnue )
2- J'ai modifié la macro CommandButton1_Click pour réactualiser Textbox6 et vider Textbox7 avant d'actualiser la feuille CDE.
En espérant avoir bien tout compris. :)

sylvanu

XLDnaute Barbatruc
Supporter XLD
Pour le second point, peut être avec :
Code:
If Not IsError(Application.Match(TextBox3, [Tableau13[nom]], 0)) Then
   position = Application.Match(TextBox3, [Tableau13[nom]], 0)
   TextBox6 = [Tableau13].Item(position, 4)
End If
En supposant qu'il n'y a pas d'homonyme dans les noms.
 

Pièces jointes

  • Marvin CODE AFFICHAGE 2eme point.xlsm
    29.3 KB · Affichages: 3

Marvin57

XLDnaute Occasionnel
Pour le second point, peut être avec :
Code:
If Not IsError(Application.Match(TextBox3, [Tableau13[nom]], 0)) Then
   position = Application.Match(TextBox3, [Tableau13[nom]], 0)
   TextBox6 = [Tableau13].Item(position, 4)
End If
En supposant qu'il n'y a pas d'homonyme dans les noms.
Re sylvanu,

Merci pour l'aide. Cela me convient tout à fait, mais, est ce qu'on peut inclure les noms des tableauw comme Tab_1 pour le Tableau3 et Tab_C pour le Tableau2 ?

C'est trop compliqué à changer dans le fichier réel
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Dans votre fichier Tab_1 et Tab_c ne sont pas référencés comme des tableaux structurés, donc les instructions accédant aux TDS ne marchent pas.
Une autre approche en PJ.
1- J'ai supprimé les références Tab_1 et Tab_C
2- J'ai renommé Tableau1 et Tab_1 et Tableau13 en Tab_C

Question : Pourquoi est ce si compliqué de faire référence aux noms des tableaux structurés dans le fichier réel ?
 

Pièces jointes

  • Marvin CODE AFFICHAGE 2eme point (V2).xlsm
    29.6 KB · Affichages: 1

Marvin57

XLDnaute Occasionnel
Dans votre fichier Tab_1 et Tab_c ne sont pas référencés comme des tableaux structurés, donc les instructions accédant aux TDS ne marchent pas.
Une autre approche en PJ.
1- J'ai supprimé les références Tab_1 et Tab_C
2- J'ai renommé Tableau1 et Tab_1 et Tableau13 en Tab_C

Question : Pourquoi est ce si compliqué de faire référence aux noms des tableaux structurés dans le fichier réel ?
Re,

OK, j'ai vu. je vais donc mettre tout cela en place dans mon fichier réel et je reviendrai vers vous demain matin.
En attendant je vous Remercie beaucoup pour ce travail.

Marvin57
 

Marvin57

XLDnaute Occasionnel
Dans votre fichier Tab_1 et Tab_c ne sont pas référencés comme des tableaux structurés, donc les instructions accédant aux TDS ne marchent pas.
Une autre approche en PJ.
1- J'ai supprimé les références Tab_1 et Tab_C
2- J'ai renommé Tableau1 et Tab_1 et Tableau13 en Tab_C

Question : Pourquoi est ce si compliqué de faire référence aux noms des tableaux structurés dans le fichier réel ?
Bonjour sylvanu,

alors j'ai mis en place votre code et cela fonctionne très bien.
Par contre j'ai un dernier petit soucis que je n'arrive pas à résoudre. Alors si vous voulez bien me guider sur ce point.

Lorsque vous ouvrez le UserForm, vous verrez quand peut augment le chiffre de OBS.

J'ai mis un code en place pour le bouton VALIDER AUGMENTATION. Sauf que, il ne rajoute pas correctement le chiffre. C'est à dire si je choisi par exemple la ligne du listbox il m'indique que l'OBS est de 16. Si maintenant je rajoute 1 et que je valide il me marque dans le textbox de OBS DEJA OBTENU 161.

Alors que je voudrai qu'il marque tout de suite le vrai nombre, donc 17, dans le textbox et qu'il mette à jour le tableau de l'onglet CDE.

Merci d'avance à vous pour cette dernière demande à résoudre.

Marvin57
 

Pièces jointes

  • Marvin CODE AFFICHAGE 2eme point (V2).xlsm
    30.1 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Marvin,
Avec la structure de vos macros, lorsqu'on clique sur "Valider augmentation", comme on écrit dans Textbox6 on boucle sur cette macro car à chaque fois qu'on y écrit on repart sur la macro TextBox6_Change.
C'est pour ça que le résultat n'est pas celui attendu. Cela s'appelle de la ré-entrance.
Donc en PJ :
1- J'ai invalidé la macro TextBox6_Change ( en l'appelant TextBox6_Change_SUPPRIMEE donc elle n'est plus reconnue )
2- J'ai modifié la macro CommandButton1_Click pour réactualiser Textbox6 et vider Textbox7 avant d'actualiser la feuille CDE.
En espérant avoir bien tout compris. :)
 

Pièces jointes

  • Marvin CODE AFFICHAGE 2eme point (V3).xlsm
    26.2 KB · Affichages: 1

Marvin57

XLDnaute Occasionnel
Bonjour Marvin,
Avec la structure de vos macros, lorsqu'on clique sur "Valider augmentation", comme on écrit dans Textbox6 on boucle sur cette macro car à chaque fois qu'on y écrit on repart sur la macro TextBox6_Change.
C'est pour ça que le résultat n'est pas celui attendu. Cela s'appelle de la ré-entrance.
Donc en PJ :
1- J'ai invalidé la macro TextBox6_Change ( en l'appelant TextBox6_Change_SUPPRIMEE donc elle n'est plus reconnue )
2- J'ai modifié la macro CommandButton1_Click pour réactualiser Textbox6 et vider Textbox7 avant d'actualiser la feuille CDE.
En espérant avoir bien tout compris. :)
Re sylvanu,

MERCI beaucoup à vous. J'ai placé l'ensemble des codes dans le fichier réel et je viens d'effectuer une bonne vingtaine de tests et aucun bug ou autre erreur. FORMIDABLE.

Maintenant j'aurai un peu plus de temps et je vais essayer de mieux comprendre les codes de mon fichier afin que je puisse intervenir aussi sur certains points pas trop compliqués.

Mais je pense que je vais revenir pour de l'aide (certainement) ;)

Je vous dis à bientôt.

Marvin57
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 097
Messages
2 116 186
Membres
112 679
dernier inscrit
Yupanki