Bouton macro

Résolu/Fermé
anthony - 29 sept. 2012 à 20:40
 anthony - 6 oct. 2012 à 08:59
Bonjour,

J'ai créé plusieurs macros dans un tableau, en fait c'est la même que j'utilise pour chaque ligne du tableau,

Sur chaque ligne du tableau j'ai mis un bouton pour lancer la macro de la ligne.

Mes macros sont des analyse de scénario que je fait a partir d'un tableau annexe.

Mon souci c'est que pour effectué les analyse de scénarios, valeur cible, je suis obligé de préremplir ce tableau.

Ce que j'aimerais faire c'est qu'a chaque fois que je modifie la cellule B15 ( céllule qui modifira ma recherche, dans ma cellule M15 apparaisse "scenario", afin de ne pas oublié d'appuyé sur le bouton pour lancé mon scénario.

En effet lorsque je rempli mon tableau pour la première fois je n'ai pas de souci pour l'oubli, puisque dans la céllule M15 rien ne se passe si je ne lance pas ma macro, mais si je me rends compte que j'ai fait une erreur et que je modifi plusieurs, ligne ma céllule M15 ne se modifi pas si je ne relance pas une macro, et l'ancier résultat reste. d'ou un risque d'erreur. donc j'aimerais qu'a chaque fois que je modifi B15 j'ai un pense bête pour ne pas oublier de lancer ma macro

Est-ce possible et si oui comment faire ?

Merci



A voir également:

19 réponses

Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
29 sept. 2012 à 22:56
Bonjour,
Et comment vous réaliser : chaque fois que je modifie la cellule B15 ?

0
Logiquement, il est vrai que je n'ai pas la modifier. Mais comme je l.ai explique, si j'ai fait une erreur dans mon tableau j'aimerai le modifier et éviter d.oublier de relancer ma macro.
La celulle B 15 contient un nombre rentre manuellement.

Je voudrais juste une sécurité.
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
Modifié par Le Pingou le 29/09/2012 à 23:35
Bonjour,
Une solution, utilisé l'événement [Worksheet_Change] qui se produit lorsque les cellules de la feuille de calcul sont modifiées.
A placer dans le module de feuille concernée :
Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.Address = "$B$15" Then 
    Range("M15").Value = "scenario" 
End If 
End Sub


Salutations.
Le Pingou
0
Merci pour ta solution, mais je ne connais pas bien les VBA, et quand j'ai rajouté ta solution dans le même module que ma macro, ça ne marche pas.
Je dois faire quelque chose de mal mais je ne sais pas quoi.
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
30 sept. 2012 à 01:10
Bonsoir,
C'est un évènement feuille à mettre dans le module de la feuille concernée.
eric
0
Qu'est-ce qu'un evenement feuille ?

Voici ma macro :

Sub scenario15()
'
' scenario15 Macro
'

'
Sheets("Calcul").Select
Range("H15").GoalSeek Goal:=0, ChangingCell:=Range("C15")
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("PDC").Select
End Sub
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
30 sept. 2012 à 14:08
Qu'est-ce qu'un evenement feuille ?
Change par exemple : une cellule change de valeur.

Voici ma macro :
Oui, et ?
Content pour toi mais aucun rapport avec ta question initiale.

eric
0
Comme je l'ai dit précédemment je ne connais pas VBA donc je me suis dit que peut-être il fallait modifier ma macro initial pour faire ce que je voulais.
Et je suis peut être stupide mais je n.ai toujours pas compris comment je devais utiliser l.événement change
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
30 sept. 2012 à 14:55
Bonjour,
Avec les bonjours et merci d'usage, par ici : https://www.cjoint.com/?3IEo1WFbPhT
Au passage, merci eriiic.

0
Bonjour,
tout d'abord, toute mes excuses concernant mon manque de politesse.
oui un grand merci à vous 2-
J'ai encore un problème, j'ai fait un copier coller de ta macro dans ma feuille de calcul.
Mais quand je change B15 un message apparait et il me met ;
"Erreur d'execution 1004
Erreur définie par l'application et l'objet"
avec plusieurs solution :
Fin, Débogage et aide.
Quand je clique sur débogage il me met en surbrillance la ligne :

Range("M15").Value = "scenario"

Je ne sais pas ou j'ai fait l'erreur

Merci
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
Modifié par Le Pingou le 30/09/2012 à 16:21
Bonjour,
Le plus simple serait de mettre le fichier sur https://www.cjoint.com/ et poster le lien.
Vous pouvez aussi comparer avec mon exemple pour voir si tout est pareil... !


Salutations.
Le Pingou
0
Merci, ci joint mon fichier, c'est sur la feuille pdc
http://cjoint.com/?3IEqOg04Ya8
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
30 sept. 2012 à 16:51
Bonjour,
Merci.
Etonnant cela marche sans erreur sur la cellule [B15] .... !

0
Merci, et oui maintenant cela fonctionne je ne sais pas ce que j'ai fait, désole.
Par contre quand j'appuie sur le bouton 15, mon scénario ne ce produit plus en M15, y as-il un moyen pour que les deux macros se complète.
0
C.est à dire que quand je clique sur bouton 15, c.est le résultat de ma macro "scénario 15" qui agit en M15, mais si jamais je modifie B15 c.est ta macro qui agit en M15 et que scénario apparaît.
Merci
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
30 sept. 2012 à 17:11
Bonjour,
Pour vous répondre à votre deuxième question, je dois étudier le fonctionnement de votre application ... pas simple ... !
Patience.

0
Merci tu temps accordé pour résoudre mes problèmes.
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
30 sept. 2012 à 17:43
Bonjour,
Belle surprise, des feuilles protégées, donc je m'arrête.

0
oups, désolé, j'avais oublié, voici les feuilles non protégées
http://cjoint.com/?3IEr0vYxLTR
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
30 sept. 2012 à 23:31
Bonjour,
J'ai toujours l'erreur 1004 (Référence non valide) et qui concerne [GoalSeek], je suis donc bloqué ... !

0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
1 oct. 2012 à 18:59
Bonjour anthony,
J'ai pensé que comme vous utiliser cette fonction [GoalSeek] dans le code vous me donnerai une information en retour ... mais rien ne suit ... je quitte le poste!

0
Désole de ne pas avoir répondu plutôt mais pour ma défense je parts de chez moi à 5h30 le matin et rentre un peu avant 23h00. Et aujourd'hui je n'ai pas eu le temps de voir mes mails. La je n'ai pas limon fichier sous les yeux. Demain je devrais me libérer 1/2 heure le midi pour regarder mon fichier. Et t'expliquer ce que c'est.
Comme je l'ai dit je ne connais pas grand chose en VBA et on m'a aide a faire cette application.
Encore merci du temps pris pour m'aider
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
1 oct. 2012 à 23:20
Bonjour,
Si l'aide vient de CCM au moins vous pourriez donner le mois approximatif... !
Ce serait un plus.

0
Bonjour,
une parti vient de CCM ( juillet ou Aout)et l'autre d'un ami ( mais pour ma question il bloque).

Remplissage du tableau "PDC"
1/ on choisi les données Température ( B9); Perte de charge maxi (E9); type detuyauterie (I9) et Type de tube ( (O9)
2/ On saisie le numéro du tronçon en R15
3/On rempli les céllules Débit (B15) et la longeur de tuyauterie (C15)
4/(optionnel); on rrempl le kvs (J15) ou le Dzéta (U15)
5/on clique sur le bouton 15 et le reste du tableau se rempli.

Explication du tableau

1/Céllule D15 DN : est une fonction recherche par rapport à la température (B9); à la pdc maxi (E9), au type de tube (O9) et au débit (B15)
2/Céllules E15, F15 et G15 ( respectivement Diam intérieur, épaisseur, diam extérieur) : est une fontion recherche par rapport au DN (D15)
3/Céllules H15, I15, K15, L15 (respectivement (vitesse, Pdyn, Dzéta et PDC) : sont de simple formule de calcul.
4/Céllule M15 :est la céllule en rapport avec la macro et le bouton 15
4.a/ la macro est une simple automatisation de la fonction "analyse de scénario", "valeur cible" du tableau de la feuille "Calcul".
4.b/ Dans la feuille Calcul, j'ai 2 équations dont la somme doit être égal à 0 (F15 et G15).
Dans ces équations une même inconnue "lambda" (C15).
4.c/ Utilisation de la fonction Valeur cible :
A) Cliquer sur analyse de scénario
B)Cliquer sur Valeur cible
C)Céllule définir (H15)
D)Valer à atteindre ( résultat que l'on souhaite dans la formule du H15) : 0
E)Céllule à modifier: C15 ( C15 doit être prerampli car pour la fonction valeur cible, il faut que la céllule à modifier soit un chiffre, ni céllule vide, ni céllule à formule)

Enfin I15 de la feuille "calcul" est une simple formule.
et M15 de la feuille "PDC" est égale à I15 de la feuille "calcul".

J'espère avoir été clair dans mes explications car ce'est pas mon fort non plus :).

Encore un grand merci
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
2 oct. 2012 à 08:08
Bonjour,
Merci pour cette explication très complète.
Toutefois ce n'est pas le problème que j'ai rencontré car il s'agit de la fonction [GoalSeek] qui se trouve dans le code VBA et qui provoque une erreur [Erreur d'exécution 1004 : Référence non valide] et qui bloque l'exécution de a macro.
Ma question : quelle référence faut-il utiliser (c'est ce que je ne trouve pas ...) ?

0
Bonjour,

La tu me pose un problème, car pour faire ma macro, j'ai juste enresgistré ma fonction :
J'ai fait :
Depuis la feuille PDC
1/Affichage
2/Enregistrer la macro "scénario15
3/Données
4/Analyse de scénario
5/Valeur cible
6/aller sur la feuille calcul et choisir H15
7/Valeur à atteindre : 0
8/Valeur à modifié C15 de la feuille calcul
9/retour sur la feuille PDC en M15
10/arréter l'enregistrement de la macro
11/développeur
12/VBA
13/Aller sur le module scénario 15
14/copier/coller la macro jusqu'au scénario 45
et après j'ai modifié les ligne des céllules des macros pour que le nom des macros (scénario15,scénario16,scénario17....) corresponde aux ligne de la macro.

Pour te dire que malheureusement tout ce qui est écrit dans le code VBA, c'est fait fait automatiquement.

Cependant que je rempli le tableau et que j'appui sur le bouton il ne met pas de code erreur.
0
Rebonjour,
Je viens de m'apercevoir qu'il y a une erreur sur le DN 1", ma fonction recherche ne fonctionne pas, j'ai du faire un espace de trop sur les guillement. et que la cellule M15 ne fonctionne pas non pls, j'ai du faire une fausse manip quand j'ai débloqué la feuille, suffit de faire un glisser par rapport à la céllule M16 et ca fonctionne.

Désolé, comme je reprennais mon fichier de base je ne m'étais pas apercu de la seconde erreur et j'ai modifié la 1ere.
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
Modifié par Le Pingou le 3/10/2012 à 16:56
Bonjour,
Je suis à nouveau sur votre demande.
Pouvez-vous me donner quelques valeurs cohérentes ?
Merci.


Salutations.
Le Pingou
0
Bonjour,

Je viens d'avoir votre message, ce soir je n'ai maéheureusement pas le temps de vous donner des exemples, demain matin je ferais un exemple avec mon tableau et vous le transmettrai.

Merci de votre patience
Anthony
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
3 oct. 2012 à 23:41
Bonsoir,
Merci, pas de problème rien ne presse.
Salutations.
Le Pingou
0
Bonjour ci-joint un exemple.
Dans la 1ere pièce jointe je rempli mon tableau avec mes données :
http://cjoint.com/?0JegKO1Pwt8
Dans la 2ème pièce jointe je me suis apercu que je me suis trompé de débit sur la ligne 15, donc j'ai modifié ma céllule B15. Si j'oubli de réappuyer sur bouton 15, ma valeur en M15 est fausse.
http://cjoint.com/?0JegQJtCdV9
Voici mon tableau correctement corrigé après avoir appuyé sur le bonton 15
http://cjoint.com/?0JegPrHA6Ii.

Je te l'accorde il n'y a pas beaucoup de différence, mais si je fait cette oubli sur plusieurs ligne et que les longueur sont plus longues au final on peut avoir pas mal d'ecart.
C'est pourquoi j'aimerais qu'après que j'ai appuyé une première fois sur le bouton 15, toute modification entraine en M15 une annotaton "scénario", pour me faire penser a réappuyer sur le bouton 15. Une fois le bouton 15 appuyé, l'annotation scénario s'enlève pour laisser place à la bonne valeur.

Si jamais une 2 ème solution est possible, c'est que ma macro se fait atomatiquement sans avoir a appuyé sur un bouton ou un raccorci clavier, mais la non plue je ne sais pas comment faire, dance cas toute modification de B15 entrainerais la macro sans que j'ai aucune manipulatoin.
Merci
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
4 oct. 2012 à 10:11
Bonjour,
Merci.
Concerne : je modifie la cellule B15
Question : si vous modifiez la valeur d'une autre cellule de la plage [B16 :B45] est-ce qu'il faut aussi agir sur la cellule de la plage [M16 :M45] avec l'annonce [Scénario] ?

0
Rebonjour,

Oui, ce sont les mêmes formules et la même appilication, j'ai pris comme exemple uniquement la 1ere ligne, mais il faut le faire jusqu'à la ligne 45.

Cordialement
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
4 oct. 2012 à 11:13
Bonjour,
Merci c'est parfait.
Proposition dans la soirée.

0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
5 oct. 2012 à 11:06
Bonjour,
Proposition en gardant les boutons de commande.
Votre fichier : https://www.cjoint.com/?3JflfvkDzIW

0
Bonjour,

Un grand merci pour la proposition.Cependant j'ai un problème, lorsque je clique sur un bouton de commande, Excel me met le message d'erreur " erreur compilation projet ou bibliothèque introvable".
J'ai bien activé les macros
J'ai regardé la macro mais pour moi c'est devenu du chinois. :)

Cordialement
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
5 oct. 2012 à 14:22
Bonjour,
Dans la page de l'éditeur VBA, clic sur [Outils] puis sur [Références] et vous faites une copie d'écran que vous collez sur un document Word à mettre sur https://www.cjoint.com/

0
Bonjour,
http://cjoint.com/?0JfppfT0Vjf

Ce n'est pas tès lisible mais je n'ai pas reussi à faire mieux.
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
5 oct. 2012 à 16:42
Bonjour,
Merci, vous décochez la case de [Manquant : Solveur.XLAM].

Note : lorsqu'il y a un message d'erreur, toujours indiquer le numéro, le texte du message et ensuite clic sur [Débogage] et indiquer la ligne de code surligné et le nom de la procédure (Macro(.

0
Bonjour,
Merci beaucoup cela fonctionne, Y-a-t-il un moyen que lorsque que R15 est marqué dedans, plus rien ne s'affiche en M15.
Car la une fois que scénario est noté je n'arrive plus à l'enlevé,
Sinon ce n'est pas grave
Encore un grand merci
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
5 oct. 2012 à 21:45
Bonjour,
Etonnant votre question, je ne suis pas spécialiste hydraulicien, mais je vois que la colonne [M15:M45] représentes les pertes de charge linéaire, alors je ne comprends pas pourquoi plus rien ne s'affiche en M15.
Je vous laisse la réflexion.

0
Bonjour,
Excusez-moi, je me suis mal exprimé.
Ce que je souhaite c'est qui si ma cellule R15 est vide cela signifie que je n'ai pas de perte de charge linéaire. Donc ma cellule M15 doit être vide.
Hors avec votre macro modifie site me suis trompé d'une ligne "scénario" apparaît.

Par exemple imaginons que j'ai rempli mon tableau jusqu'à la ligne 20.
Je m'aperçois que je me suis trompé, et que je dois effacer la ligne 20, puisque mes pertes de charge s'arrête à la ligne 19.
Dans ces cas la cellule B20est modifié, puisque j'avais une valeur x et que maintenant ma cellule est vide.
Donc votre macro fonctionne puisque scénario apparaît en M20.
Ça veut dire que tout ma ligne est vide sauf ma cellule M20, donc je n'ai pas à cliquer sur le bouton 20.
Donc il faudrai que dans votre macro, scénario en {M15-M45} apparaît si {B15-B45} est modifié et différent de rien(cellule vide).

Encore désole de cette incompréhension.
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
5 oct. 2012 à 23:52
Bonjour,
Alors j'ai entré des données jusqu'à la ligne 20 et comme elle est en trop, je supprime la valeur dans la cellule [R20] (si c'est bien correct c'est là que l'on créer les tronçons .. !) le [Total] monte d'une ligne et je n'ai plus cas vider les cellules [B19 :C19] ... ton est en ordre, pas de [Scénario] dans [M19]... [M20] ....!

0
Bonjour,

Un grand merci cela fonctionne, il faut juste que j'efface les cellule dans l'ordre, quand j'efface d'abord la colonne B15-B45, et après R15-R45, la il me met scénario, par contre quand j'efface d'abord R15-R45, et B15-B45 Tout est vide.

Encore une fois merci, ca m'a enlevé une belle épine du pied.

A bientôt, pour d'autres questions :)
0