Récupérer du code d'un bouton vers un autre bouton [VB] - VB/VBA/VBS - Programmation
Marsh Posté le 03-03-2003 à 20:20:38
Private Sub Command2_Click()
Command1_Click
End Sub
Tout bêtement
Marsh Posté le 03-03-2003 à 20:26:56
MagicBuzz a écrit : Private Sub Command2_Click() |
j'y avais pensé mais message d'erreur
Marsh Posté le 03-03-2003 à 20:51:09
Bon, faute de réponse, essaie quand même de mettre "public" au lieu de private pour le command1_click
Si ça marche toujours pas, alors met l'intégralité du code de command1_click dans une sub dans un module, avec "public" comme préfixe, et appel cette sub depuis command1_click et command2_click
Si ça merde toujours, c'est que tu appelles des éléments propres à command1 ou command2, ou à leurs forms parentes dans le sub, et à ce moment c'est pas gagné. Tu peux essayer de jouer avec des "Me." devant les différents noms d'objet afin de faire partir la recherche d'objets de la procédure en cours d'éxécution, mais c'est loin d'être gagné, le "Me" de VB étant énormément plus limité que le "this" du C/Java
Marsh Posté le 03-03-2003 à 21:10:30
MagicBuzz a écrit : Bon, faute de réponse, essaie quand même de mettre "public" au lieu de private pour le command1_click |
je vais essayer mais je capte pas trop, passer par des modules ça complique je trouve qe faire du copier/coller n'est pas très judicieux c'est pour ça que je cherche une autre métode, oui sur la même form
Marsh Posté le 03-03-2003 à 21:26:50
J'aimerais bien savoir pourquoi le code de MagicBuzz ne marche pas... Poste donc le code !
Marsh Posté le 03-03-2003 à 21:31:31
Harkonnen a écrit : J'aimerais bien savoir pourquoi le code de MagicBuzz ne marche pas... Poste donc le code ! |
j'avais oublié les ()
l'erreur du copier/coller
va falloir que je la perde cette habitude dur dur
Marsh Posté le 03-03-2003 à 21:31:58
essaie peut-être ceci, car tu appelles un sub et non une fonction
Private Sub Command2_Click()
Call Command1_Click
End Sub
Marsh Posté le 03-03-2003 à 21:35:31
JagStang a écrit : essaie peut-être ceci, car tu appelles un sub et non une fonction |
donc Call je le mets avec les sub d'une façon générale même si ça marche sans, ça apporte quoi
la notion de module de MagicBuzz m'intéresse, j e peux appeler la fonction de n'importe quelle forme avec
Marsh Posté le 03-03-2003 à 21:39:16
Citation : donc Call je le mets avec les sub d'une façon générale même si ça marche sans, ça apporte quoi |
ça apporte rien. C'est plus propre
Marsh Posté le 03-03-2003 à 21:57:54
JagStang a écrit :
|
ok c'est bon à savoir
Marsh Posté le 03-03-2003 à 22:30:15
Ca peut rendre pas mal de services de mettre une action dans un module "volant".
Si le click sur un bouton, ou un menu ou ... génère la même action, un module unique ActionSurUnBouton() évite de répéter le code autant de fois, suffit qu'il soit accessible. On peut (généralement) paramétrer les objets (sous VB3, il y avait un type d'objet permettant de passer bouton ou feuille en paramètre, ai oublié son nom ) => module "générique".
Marsh Posté le 03-03-2003 à 23:10:25
CARBON_14 a écrit : Ca peut rendre pas mal de services de mettre une action dans un module "volant". |
ok vais creuser ça
Marsh Posté le 06-03-2003 à 11:33:53
albator7k a écrit : J'ai un bouton qui répond au doux nom de Private Sub Command1_Click() dedans il y a 60 lignes de code. |
Soit tu fais appelles à la procedure Command1_Click() s'il est sur la mm form. Si non, son code ne sera pas visible de l'exterieur (autre form ou module).
Autre solution, et la plus propre. Il faut faire un groupe de boutons. Pour ce faire, donne le meme nom aux 2 boutons, avec un index different.
La procedure deviendra Command1_Click(byval index as integer)
index identifie le bouton du group sur lequel tu as cliqué. Comme ca tu peux generaliser le code pour les deux boutons.
Par exemple
Command1(index).enabled=false
Marsh Posté le 03-03-2003 à 20:09:08
J'ai un bouton qui répond au doux nom de Private Sub Command1_Click() dedans il y a 60 lignes de code.
Je veux qu'un 2eme bouton sur la même page exécute la même fonction mais sans faire un copier/coller du code.
Y aurait pas un moyen de dire dans Command1_Click() tu éxecutes le code qui se trouve dans Command1_Click()
---------------
L'expérience est une lanterne que l'on a accrochée dans le dos et qui n'éclaire que le chemin parcouru [:albator7k]