Excel- Help appel de fonction
Résolu/Fermé
mod77
Messages postés
1273
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
14 janvier 2024
-
28 mars 2010 à 21:00
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 - 31 mars 2010 à 08:55
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 - 31 mars 2010 à 08:55
A voir également:
- Excel- Help appel de fonction
- Liste déroulante excel - Guide
- Appel anonyme - Guide
- Excel fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
11 réponses
triwix
Messages postés
296
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
4 février 2011
21
28 mars 2010 à 22:45
28 mars 2010 à 22:45
Hello
Copie le code de bp1, et clique droit sur bp2 - visualiser le code, et coller.
CA devrait aller
Copie le code de bp1, et clique droit sur bp2 - visualiser le code, et coller.
CA devrait aller
mod77
Messages postés
1273
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
14 janvier 2024
53
29 mars 2010 à 08:16
29 mars 2010 à 08:16
Bonjour triwix,
ça ne peut pas marcher ce que tu suggères car le code du BP1 s'applique à la feuil1, si je copie le code ça m'oblige à ajouter des "Sheets("feuil1") . " à chaque code. C'est pourquoi je veux simplement exécuter la fonction BP1.
merci quand même
ça ne peut pas marcher ce que tu suggères car le code du BP1 s'applique à la feuil1, si je copie le code ça m'oblige à ajouter des "Sheets("feuil1") . " à chaque code. C'est pourquoi je veux simplement exécuter la fonction BP1.
merci quand même
zebulon2503
Messages postés
1228
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
11 février 2016
110
29 mars 2010 à 08:26
29 mars 2010 à 08:26
Salut
Tu peux juste rajouter sheets("Feuil1").select dans la procédure de BP2 puis tu appelles ta fonction appellée par BP1.
A+
Tu peux juste rajouter sheets("Feuil1").select dans la procédure de BP2 puis tu appelles ta fonction appellée par BP1.
A+
mod77
Messages postés
1273
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
14 janvier 2024
53
29 mars 2010 à 08:32
29 mars 2010 à 08:32
Merci zebulon2503,
mais comment dois-je appeler ma fonction BP1 ?
si elle s'écrit ainsi: Private Sub cmdDebut_Click()
merci
mais comment dois-je appeler ma fonction BP1 ?
si elle s'écrit ainsi: Private Sub cmdDebut_Click()
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zebulon2503
Messages postés
1228
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
11 février 2016
110
29 mars 2010 à 08:38
29 mars 2010 à 08:38
Tu n'as pas besoin de l'appeler.
Par exemple, tu as ce code pour BP1 :
La fonction Test() s'applique à la Feuil1 mais tu veux l'appeler depuis la Feuil2 par un bouton BP2.
Donc le code de BP2 sera :
Il faut juste que tu lui dises de bosser sur la Feuil1 au début, ca te fait qu'une ligne à rajouter...
Par exemple, tu as ce code pour BP1 :
Private BP1_Click() Call Test End Sub
La fonction Test() s'applique à la Feuil1 mais tu veux l'appeler depuis la Feuil2 par un bouton BP2.
Donc le code de BP2 sera :
Private BP2_Click() Sheets("Feuil1").Select Call Test End Sub
Il faut juste que tu lui dises de bosser sur la Feuil1 au début, ca te fait qu'une ligne à rajouter...
mod77
Messages postés
1273
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
14 janvier 2024
53
Modifié par mod77 le 29/03/2010 à 08:54
Modifié par mod77 le 29/03/2010 à 08:54
Ok je pense avoir compris, je ne peux donc pas appeler en écrivant un truc comme ça:
Private BP2_Click()
Sheets("Feuil1").Select
call BP2
End Sub
??
Private BP2_Click()
Sheets("Feuil1").Select
call BP2
End Sub
??
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
29 mars 2010 à 09:03
29 mars 2010 à 09:03
Salut,
Non ça tu ne peux pas.
Si tu veux réaliser exactement la même chose, sur la même feuille et tout et tout à partir de 2 boutons de commande, chacun placé sur une feuille, ta procédure doit être placée dans un module (sous visual basic : Insertion/module). Ensuite tu n'as plus qu'à appeler ta procédure depuis tes boutons :
Exemple : [cette macro supprime le contenu de toutes les cellules de la feuille Feuil1] :
Le code des boutons :
Feuil1 bouton BP1 :
Feuil2 bouton BP2 :
Non ça tu ne peux pas.
Si tu veux réaliser exactement la même chose, sur la même feuille et tout et tout à partir de 2 boutons de commande, chacun placé sur une feuille, ta procédure doit être placée dans un module (sous visual basic : Insertion/module). Ensuite tu n'as plus qu'à appeler ta procédure depuis tes boutons :
Private BP2_Click() Call maprocédure End Sub
Exemple : [cette macro supprime le contenu de toutes les cellules de la feuille Feuil1] :
Sub Efface_cellules() With Sheets(1) .Cells.ClearContents End With End Sub
Le code des boutons :
Feuil1 bouton BP1 :
Private Sub BP1_Click() Call Efface_cellules End Sub
Feuil2 bouton BP2 :
Private Sub BP2_Click() Call Efface_cellules End Sub
zebulon2503
Messages postés
1228
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
11 février 2016
110
Modifié par zebulon2503 le 29/03/2010 à 08:59
Modifié par zebulon2503 le 29/03/2010 à 08:59
Non, c'est pas possible.
Le BP1_Click signifie "au clic sur le bouton BP1".
Ce n'est pas le nom d'une fonction...
Toutes les fonctions qui se lancent dans BP1 se lanceront au clic sur celui ci. Si tu veux les lancer depuis BP2 dans la Feuil1, tu dois mettre Sheets("Feuil1").Select puis appeler les fonctions voulues (les mêmes que dans BP1).
Et dans ton exemple
Tu cliques sur BP2 et relances la fonction Click. Si ca pouvais marcher, ca planterait quand même car ca te fait une boucle qui selectionnerait Feuil1 tout le temps.
Les cons peuvent avoir l'air intelligent à première vue... Heureusement pour eux que la vitesse de la lumière est supérieure à celle du son.
Le BP1_Click signifie "au clic sur le bouton BP1".
Ce n'est pas le nom d'une fonction...
Toutes les fonctions qui se lancent dans BP1 se lanceront au clic sur celui ci. Si tu veux les lancer depuis BP2 dans la Feuil1, tu dois mettre Sheets("Feuil1").Select puis appeler les fonctions voulues (les mêmes que dans BP1).
Et dans ton exemple
Private BP2_Click() Sheets("Feuil1").Select BP2_clik() End Sub
Tu cliques sur BP2 et relances la fonction Click. Si ca pouvais marcher, ca planterait quand même car ca te fait une boucle qui selectionnerait Feuil1 tout le temps.
Les cons peuvent avoir l'air intelligent à première vue... Heureusement pour eux que la vitesse de la lumière est supérieure à celle du son.
mod77
Messages postés
1273
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
14 janvier 2024
53
29 mars 2010 à 09:05
29 mars 2010 à 09:05
Je me suis trompé en réécrivant je voulais écrire "Call BP1".
Mais ça change rien. C'est dommage je suis obligé de copier tout mes code et d'intégrer en plus les déclaration de variable de BP1. C'est galère, mais si c'est j'ai pas le choix tant pis.
Merci à toi zebulon2503 pour tes explications
Bonne journée
Mais ça change rien. C'est dommage je suis obligé de copier tout mes code et d'intégrer en plus les déclaration de variable de BP1. C'est galère, mais si c'est j'ai pas le choix tant pis.
Merci à toi zebulon2503 pour tes explications
Bonne journée
zebulon2503
Messages postés
1228
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
11 février 2016
110
29 mars 2010 à 09:10
29 mars 2010 à 09:10
Pourquoi tu dois recopier tes codes ? Tu avais quoi dans BP1 ? Si c'est juste des appels de procédures tu as juste à les recopier dans BP2 en rajoutant la sélection de la Feuil1...
Et dans ce cas, pourquoi faire un BP1 quand tu fais la même chose avec le 2e bouton ?
Si tu veux, détailles vraiment ce que tu veux faire et met ton fichier en ligne si tu veux que j'y jette un oeil pour y voir plus clair et te filer un coup de main :-)
Et dans ce cas, pourquoi faire un BP1 quand tu fais la même chose avec le 2e bouton ?
Si tu veux, détailles vraiment ce que tu veux faire et met ton fichier en ligne si tu veux que j'y jette un oeil pour y voir plus clair et te filer un coup de main :-)
mod77
Messages postés
1273
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
14 janvier 2024
53
30 mars 2010 à 15:38
30 mars 2010 à 15:38
Décidément avec cette nouvelle configuration du site je perd encore plus de messages, désolé.
mais l'essentiel c'est de les voir.
zebulon,
pour explication: j'ai fais ce que tu m'a suggéré mais ça n'a pas marché comme prévu. les effacements que je devais réaliser sur la feuil1 se sont fait sur feuil2.
alors j'ai recopié le code.
Mais c'est pas grave, ça marche c'est l'essentiel.
Pijaku,
je te remercie pour ton code aussi, je vais l'essayer aussi.
Merci à tous les 2.
mais l'essentiel c'est de les voir.
zebulon,
pour explication: j'ai fais ce que tu m'a suggéré mais ça n'a pas marché comme prévu. les effacements que je devais réaliser sur la feuil1 se sont fait sur feuil2.
alors j'ai recopié le code.
Mais c'est pas grave, ça marche c'est l'essentiel.
Pijaku,
je te remercie pour ton code aussi, je vais l'essayer aussi.
Merci à tous les 2.
mod77
Messages postés
1273
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
14 janvier 2024
53
Modifié par mod77 le 30/03/2010 à 16:36
Modifié par mod77 le 30/03/2010 à 16:36
voici mon code pour info,
Private Sub cmdInit_Click() 'BP1, en feuil1
cbx1 = False
cbx2 = False
cbx3 = False
cbx4 = False
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
Range("D19") = 0
Range("F19") = 0
Range("H19") = 0
End SubPrivate
Private Sub cmdDebut_Click() 'BP2 en feuil2
Sheets("Description").Select
End Sub
pijaku,
ça n'a pas marché non plus.
pourtant j'ai créé un fonction:sub raz() avec le code de cmdInit
puis j'ai écris:
private cmdInit() 'BP1
call raz
end sub
j'ai testé BP1 mais rien ne s'est passé. désolé.
Private Sub cmdInit_Click() 'BP1, en feuil1
cbx1 = False
cbx2 = False
cbx3 = False
cbx4 = False
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
Range("D19") = 0
Range("F19") = 0
Range("H19") = 0
End SubPrivate
Private Sub cmdDebut_Click() 'BP2 en feuil2
Sheets("Description").Select
End Sub
pijaku,
ça n'a pas marché non plus.
pourtant j'ai créé un fonction:sub raz() avec le code de cmdInit
puis j'ai écris:
private cmdInit() 'BP1
call raz
end sub
j'ai testé BP1 mais rien ne s'est passé. désolé.
zebulon2503
Messages postés
1228
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
11 février 2016
110
31 mars 2010 à 08:55
31 mars 2010 à 08:55
Fais :
Puis ton code pour BP1 ou BP2 :
Sub RAZ() cbx1 = False cbx2 = False cbx3 = False cbx4 = False TextBox1 = "" TextBox2 = "" TextBox3 = "" Range("D19") = 0 Range("F19") = 0 Range("H19") = 0 End Sub
Puis ton code pour BP1 ou BP2 :
Private cmdInit_Click() ' BP1 / BP2(Mais oublie pas d'appeler ton bouton "cmdInit" sinon ca marchera pas)
Call RAZ End Sub