Automatisation du calcul sur vba à excel 2007

Bonjour,
je suis débutante en programmation sur VBA à excel.
je veux programmer un bouton, et quand je clique là dessus il fait le calcul et m'affiche le résultats dans une de mes cellules.
En fait, j'ai programmer ce bouton, mais le problème réside dans le fait que dès que j'ouvre le fichier excel le résultat s'affiche dans la cellule avant que je clique sur mon bouton.
SVP, si vous avez une solution de me la proposer, ça sera vraiment sympa de votre p

9 réponses

  1. bonjour

    peux tu nous donner le code attaché au bouton

    bonne suite
    0
    1. bonsoir,
      voici le code que j'ai utilisé:
      Sub Bouton7_Clic()
      Range("F11") = "=R[-1]C[-3]/(R[1]C[-3])^2"
      End Sub

      SVP de me dire qu'est ce qu'il faut ajouter pour que ma cellule apparaisse vide au début.
      Merci d'avance.
      0
      1. ce que j'ai compris

        1. au cours de ta session, clic sur Bouton7, ce qui affecte F11 de la formule =C10/(C12)^2
        2. tu fermes ton classeur
        3. au prochain démarrage du classeur, F11 contient (bien sur) ta formule, et toi, tu ne veux pas

        tu as 2 solutions
        S1. à la fermeture de ton classeur tu vides F11
        Private Sub Workbook_BeforeClose(Cancel As Boolean)   
          Range("F11").Value = ""   
        End Sub

        S2 à l'ouverture de ton classeur tu vides F11
        Private Sub Workbook_Open()   
          Range("F11").Value = ""   
        End Sub

        à mettre dans le module du Workbook

        bon courage
        0
        1. bonjour,
          oui,c'est ça ce que je veux.
          Mais en plus, je veux que quand je change les valeurs des deux cellules C10 et C12, la valeur de F11 reste la même et elle change après clic sur le bouton 7.

          malheureusement les deux solutions que vous m'avez proposé ne marchent pas.

          SVP de me donner une autre réponse.

          Merci beaucoup.
          0
          1. re

            bon, si tu changes la question ...
            si j'ai compris, le clic sur le bouton affecte la valeur (et non la formule) de C10/C12

            Private Sub Bouton7_Click()
            Dim c As Range
            Set c = Range("F11")
              c.Value = c.Offset(-1, -3) / c.Offset(1, -3)
            End Sub

            ou bien

            Private Sub Bouton7_Click()
              Range("F11").Value = Range("C10").Value / Range("C12").Value
            End Sub

            RQ. à toi de voir ensuite si tu veux effacer le contenu de F11 au démarrage

            bonne suite
            0
            1. Merci, j'ai essayé la 2ème solution et ça marche.
              0
              1. SVP, j'ai une autre question. En fait, mon application est comme suit:

                1) quand j'ouvre mon fichier excel, un userform1 apparait
                2) en faisant le choix sur un combobox et en cliquant sur un commandboton (suivant), l'application m'envoie vers un onglet excel en fonction du choix fixé
                3) dans cet onglet j'effectue le calcul en cliquant commandboton (calculer) sur la feuille excel
                4) je clique sur un autre commandboton (suivant) et il m'apparait un userform2
                5) je fais mon choix dans un combobox
                6) je clique sur un commandboton (suivant), je veux que l'application m'envoie à un onglet en fonction du choix fixé et de l'onglet précédent où j'ai fait le calcul

                je suis bloqué dans cette étape (6).
                SVP de me proposer une solution, ça sera très sympa de votre part.
                0
                1. bonjour

                  peux tu mettre ton fichier sur cjoint.com au format excel 2003 sans données confidentielles, en expliquant ce que tu veux obtenir et joindre le lien obtenu à ton prochain message.
                  tu pourrais en profiter pour ouvrir une nouvelle discussion sur ce nouveau sujet, ça te permettra d'avoir d'autres avis/conseils/aides que les miens.

                  bonne suite
                  0
                  1. c bon, j'ai utilisé une autre démarche.

                    merci pour tes explications et pour le temps que vous avez consacré à me répondre.
                    0