Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1307 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] éviter la répétition avec des noms d'objets similaires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] éviter la répétition avec des noms d'objets similaires

n°2019236
Kartvelo
Posté le 26-08-2010 à 22:27:10  profilanswer
 

Bonjour à tous,
 
c'est mon premier message ici :jap: il se trouve que je débute en Visual basic et pour mon premier projet, je cherche à créer une fonction pour multiplier le nombre inscrit dans un NumericUpDown, par celui dans un TextBox (ce qui ne pose pas de problème de compatibilité). J'utilise ensuite la fonction à chaque changement de la valeur de NumericUpDown pour la faire apparaître dans un NumericUpDown "somme". Le problème, c'est que j'ai pas une multiplication mais 17, donc 17 NumericUpDown et 17 TextBox, avec en prime 17 CheckBox qui conditionnent le calcul !
 
Leur seule différence est le chiffre au milieu : les entrées dont j'ai besoin sont TextBox1.Text à TextBox17.Text, NumericUpDown1.Value à NumericUpDown17.Value, et CheckBox1.Checked à CheckBox17.Checked
 
Pour info, ce premier projet est une grille de notes du bac toute bête, avec notes (NUD), coeffs (TB) et matière bonus ou obligatoire (CB)...
 
Je ne sais pas ce que je dois faire, seulement ce que je ne veux PAS faire, comme écrire 17 fois que, à chaque changement de la valeur de NUDx, il faut utiliser la fonction de calcul... peut-on ouvrir un private sub pour plusieurs évènements possibles ?, ou écrire une fonction dans laquelle j'ai à additionner les 17 produits (avec la condition If-Then-Elseif : 4 lignes)...
 
Comment je pourrais gagner du temps, ce qui est je crois le propre du programmeur ? :-)
 
Je vous remercie :)

mood
Publicité
Posté le 26-08-2010 à 22:27:10  profilanswer
 

n°2019295
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 27-08-2010 à 10:01:24  profilanswer
 

Salut,
 
Chaque controle gère ses propres évènements. Je ne connais pas d'évènement commun à plusieurs contrôles.
 
Par contre, une fonction peut être appelée par plusieurs contrôles.
 
Donc, écris le code commun dans une fonction, et dans chaque évènement "change" de tes TextBox, appelle cette fonction (1 ligne de code) en passant éventuellement des paramètres tels que la valeur du TextBox, ou son nom.
 

n°2019338
Kartvelo
Posté le 27-08-2010 à 12:14:50  profilanswer
 

Je te remercie de ta réponse, je n'avais pas pensé aux arguments de fonction. Mais je suis déçu de savoir que VB ne prévoit rien pour éviter d'écrire 17 fois un même appel à une fonction ! Faudrait-il que je me tourne vers d'autres langages ? Passer à des langages de programmation séquentielle plutôt qu'évènementielle par exemple ?

n°2019359
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 27-08-2010 à 13:35:56  profilanswer
 

Une autre possibilité, si j'ai bien compris ton problème, c'est d'ajouter un bouton qui refait tous les calculs, si tu changes une valeur de TextBox.
 
On refait tous les calculs, c'est du temps machine, mais ça dure un battement de cil (c'est peanuts).  :jap:  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] éviter la répétition avec des noms d'objets similaires

 

Sujets relatifs
[VB Outlook] Changer de compte de messagerie au moment de l'envoiAfficher une image sous VB
WORD VB Comment supprimer des liaisons dans l'en-tête?Mes objets ne veulent pas se « ré-enfiler »
Tableau d'objets XmlHttpRequest[Résolu] Problème concaténation et chemin vers autre classeur
[VB.net] Reload, refresh form après changement de la langueINTRODUIRE une base de donnée dans Le VB
[VB.NET] Affichage MsChart continuellement mis a jour[VB.net] Renommer section fichier .ini
Plus de sujets relatifs à : [VB] éviter la répétition avec des noms d'objets similaires


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR