Fonction Excel

Résolu/Fermé
gabigabou Messages postés 16 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 3 janvier 2008 - 13 nov. 2007 à 13:19
gabigabou Messages postés 16 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 3 janvier 2008 - 18 nov. 2007 à 14:59
Bonjour,
J'ai besoin d'effectuer un travail sur Excel, et il y'a un point que je n'arrive pas a résoudre.
En fait, j'aimerais afficher le résultat d'un produit de deux cases (ex: A1*B1) dans une troisième case (ex:C1), mais uniquement lorsque je clique simplement dans une quatrième case (ex:D1)
Il me semble que visual basic permet de faire ca, mais je ne sais pas du tout ce que c'est.
Merci d'avance pour votre aide.
+
A voir également:

18 réponses

konkombre Messages postés 1386 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 6 octobre 2009 468
13 nov. 2007 à 13:24
Bonjour, tu peux le faire en créant un bouton et en lui affectant une macro qui affiche ce que tu demandes.
0
gabigabou Messages postés 16 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 3 janvier 2008 3
13 nov. 2007 à 13:26
Quand tu dis un bouton, c'est ceux du type formulaire qui se superposent a la case???
De plus, je ne sais pas coment créer un macro, je débute dans excel...
0
konkombre Messages postés 1386 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 6 octobre 2009 468
13 nov. 2007 à 13:30
Oui c'est ça. Pour les macros, pour commencer tu peux essayer d'enregistrer une macro en faisant outils->macro->nouvelle macro et tu effectues les actions que tu veux retrouver par la suite. A la fin tu arretes l'enregistrement et tu crées un bouton auquel tu affecte ta macro.
0
gabigabou Messages postés 16 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 3 janvier 2008 3
13 nov. 2007 à 13:32
Le probleme, c'est que si je suis ton idée, je dois fabriquer une cinquantaine de boutons, les redimentionner, etc.
Je sais qu'il existe un truc pour transformer la case en bouton, et non pas ajouter un bouton par dessus la case.
0

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

Posez votre question
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
13 nov. 2007 à 15:10
Bonjour,

Sans faire de macro tu peux mettre dans C1:
=SI(D1="x";A1*B1;"") et recopier vers le bas.
Lorsque tu saisis x dans D1 le produit A1*B1 apparait dans C1

Si ça peut te convenir...
eric
0
Bonjour,
voici la macro évémentiel

en cliquant sur le bouton droit de ta souris

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
[c1] = [a1] * [b1]
End Sub
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 412
13 nov. 2007 à 17:48
Bonjour
A toutes fins utiles pour créer 50 boutons bien migons sans trop de peine
réserver un champ au nombre de lignes suffisant et sur deux colonnes (ou inverser colonne et ligne selon vos besoins).
Dimensionner les cellules de la colonne(disons de droite) qui recevra les boutons à la dimension que vous souhaitez pour ceux ci
Barre d'outil /Outil clic droit / Formulaire
Dans la boite qui apparait,sél.le bouton
Sél. votre1° cellule et dessinez le bouton en maintenant la touche Alt appuyée. Le bouton pend la dimension de la cellule
Vous pouvez dans le bouton suppimer le texte et mettre le titre de votre macro dans la cellule d'a cotè, c'est plus facile à remplir
Sélectionnez en même temps la cellule de gauche et celle de droite comportant le bouton
Prenez la poignée à droite
Tirez vers la bas
C'est magique, mais arrètez vous à 50!!
Si vous voulez espacer les boutons, prenez 4 cellules , voire plus,au lieu de 2 avant de les recopier
Pour compléter
Sélectionner le bouton / Clic droit / Affecter une macro / Choisir dans la boite / OK
Nota:Vous pouvez faire l'intégralité de cette manoeuvre avec n'importe quelle forme automatique que vous trouverez dans Outil _clic droit/ dessin. Les Macros titrées réalisées avec l'enregistreur s'affectent aussi bien à celles ci qu'au bouton.ce qui revient, physiquement avec un rectangle , à affecter une macro à une cellule.Sachant que le rectangle dessiné peut être transparent, vous pouvez mettre le titre dans la même cellule...ou sur celle où vous voulez obtenir le résultat.

BCRDLMNT
0
ou aussi

une autre macro évémentiel

en cliquant sur le bouton droit de ta souris et en étant placé sur la cellule de droite par rapport a la somme

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
A = ActiveCell.Offset(0, -3).Value
B = ActiveCell.Offset(0, -2).Value

ActiveCell.Offset(0, -1).Value = A * B
End Sub
0
gabigabou Messages postés 16 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 3 janvier 2008 3
13 nov. 2007 à 18:51
Merci a tous pour vos reponses, je viens de rentrer des cours.
J'aimerais bien essayer le 1ere macro evenementielle, mais en fait je ne me rappelle plus comment on fait les formulaires dans excel 2007, si qqn pouvait m'éclairer, ca serait simpa.
0
Bonjour,
il n'y a pas de formulaire a faire

il suffit de faire un clic droit sur l'onglet de ta feuille puis "visualiser le code"

sélectionne "Worksheets" a la place de "général" et copie le code


Utilsfr
http://utilsfr.new.fr
Applications, Utilitaires, Macros, Fonctions, Formulaires, Graphiques Excel
0
gabigabou Messages postés 16 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 3 janvier 2008 3
13 nov. 2007 à 19:32
Dsolé, mais je n'ai pas compris ton explication, de quel code parles-tu?
0
celui ci

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
[c1] = [a1] * [b1]
End Sub


ou

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
A = ActiveCell.Offset(0, -3).Value
B = ActiveCell.Offset(0, -2).Value

ActiveCell.Offset(0, -1).Value = A * B
End Sub
0
gabigabou Messages postés 16 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 3 janvier 2008 3
13 nov. 2007 à 21:52
Re, ta formule arche nikel, mais le probleme, c'est que je voudrais faire ca avec un clik gauche, et avec plusieurs foi ce types de calcul.
De plus, je ne voudrais pas faire cette opération en cliquant dans nimporte quelle case, mais dans une case bien précise.
Je suis peut-être un peu exigeant, mais je suis sur que c'est possible.
Merci quand même pour votre aide, et je reste a dispo pour de nouveaux conseils ;)
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
13 nov. 2007 à 23:51
Bonsoir,

Voici une macro qui réagit lorsqu'on sélectionne une cellule (clic gauche).
Change [C1:C10] pour la plage qui t'interesse.
Le résultat s'inscrit dans la cellule cliquée mais ça peut se modifier avec .offset()

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, [C1:C10]) Is Nothing Then Exit Sub 
    Target.Value = Target.Offset(0, -2).Value * Target.Offset(0, -1).Value
End Sub


eric
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
14 nov. 2007 à 00:00
Une petite modif pour que la macro ne réagisse que sur sélection d'une seule cellule.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, [C1:C10]) Is Nothing Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    Target.Value = Target.Offset(0, -2).Value * Target.Offset(0, -1).Value
End Sub
0
gabigabou Messages postés 16 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 3 janvier 2008 3
18 nov. 2007 à 12:01
Merci a tous pour vos conseils, mais en fin de compte, j'ai un prof qui a bien voulu me le faire.
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
18 nov. 2007 à 12:33
Bonjour,
n'oublie pas de mettre en résolu stp
merci
eric
0
gabigabou Messages postés 16 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 3 janvier 2008 3
18 nov. 2007 à 14:59
Ok, dsl, javais pas pensé a ca ++
0