[VB] Récupérer du code d'un bouton vers un autre bouton

Récupérer du code d'un bouton vers un autre bouton [VB] - VB/VBA/VBS - Programmation

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() :??:
 :hello:


---------------
L'expérience est une lanterne que l'on a accrochée dans le dos et qui n'éclaire que le chemin parcouru [:albator7k]
Reply

Marsh Posté le 03-03-2003 à 20:09:08   

Reply

Marsh Posté le 03-03-2003 à 20:20:38    

Private Sub Command2_Click()
    Command1_Click
End Sub
 
Tout bêtement :)

Reply

Marsh Posté le 03-03-2003 à 20:26:56    

MagicBuzz a écrit :

Private Sub Command2_Click()
    Command1_Click
End Sub
 
Tout bêtement :)


j'y avais pensé mais message d'erreur :/


---------------
L'expérience est une lanterne que l'on a accrochée dans le dos et qui n'éclaire que le chemin parcouru [:albator7k]
Reply

Marsh Posté le 03-03-2003 à 20:34:12    

Quel message ?
 
Les deux boutons sont dans la même form ?

Reply

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

Reply

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
 
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


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


---------------
L'expérience est une lanterne que l'on a accrochée dans le dos et qui n'éclaire que le chemin parcouru [:albator7k]
Reply

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 !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

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


---------------
L'expérience est une lanterne que l'on a accrochée dans le dos et qui n'éclaire que le chemin parcouru [:albator7k]
Reply

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
 

Reply

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
 
Private Sub Command2_Click()
   Call Command1_Click
End Sub
 
 


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 :??:


---------------
L'expérience est une lanterne que l'on a accrochée dans le dos et qui n'éclaire que le chemin parcouru [:albator7k]
Reply

Marsh Posté le 03-03-2003 à 21:35:31   

Reply

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

Reply

Marsh Posté le 03-03-2003 à 21:57:54    

JagStang a écrit :

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


ok c'est bon à savoir  [:zionkitroll]


---------------
L'expérience est une lanterne que l'on a accrochée dans le dos et qui n'éclaire que le chemin parcouru [:albator7k]
Reply

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 :pt1cable:) => module "générique".

Reply

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".
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 :pt1cable:) => module "générique".


ok vais creuser ça  :hello:


---------------
L'expérience est une lanterne que l'on a accrochée dans le dos et qui n'éclaire que le chemin parcouru [:albator7k]
Reply

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.
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() :??:
 :hello:  


 
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


---------------
MZP est de retour
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed