Activer une cellule selon la reponse trouvée

julien13009 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'aimerai savoir si quelqu'un pourrait m'aider à trouver la solution qui me permettrais selon de choix trouvé à la macro ChoixFormule () de selectionner soit la macro Formule1() soit la macro Formule 2().

Quand je fais fonctionner le code ce la m'active les deux macros Formule1 et 2 à la suite.

cordialement

Sub ChoixFormule()
FormuleID = InputBox("Tapez le nom de la formule")
Sheets("feuil1").Activate
Caractéristique = Application.WorksheetFunction.VLookup(FormuleID, Range("Listfx"), 2, False)
MsgBox (FormuleID & " est " & Caractéristique)

If Cells(7, 1).Activate Then
Dim Reponse As Long
Reponse = MsgBox(" voulez vous faire le calcul?", vbQuestion + vbYesNo)
If Reponse = vbYes Then
Call Formule1
Else: MsgBox "Au revoir...", vbInformation
End If
End If

If Cells(11, 1).Activate Then
Reponse = MsgBox(" voulez vous faire le calcul?", vbQuestion + vbYesNo)
If Cells(11, 1).Activate Then
End If
If Reponse = vbYes Then
Call Formule2
Else: MsgBox "Au revoir...", vbInformation
End If
End If

End Sub

Sub Formule1()

' valeur à rentrer
Worksheets("feuil1").Cells(8, 3).Select
ActiveCell = InputBox("Entrez valeur du volume en m^3")
Worksheets("feuil1").Cells(8, 5).Select
ActiveCell = InputBox("Entrez valeur du temps en secondes")
Worksheets("feuil1").Cells(8, 6).Select
ActiveCell = InputBox("Entrez valeur de la masse en Kg")

' formule
Worksheets("feuil1").Cells(8, 7).Select
ActiveCell = Cells(8, 3) * Cells(8, 5) / (Cells(8, 6))

' Message résultat
MsgBox "Le résultat est égale à"
MsgBox Cells(8, 7)

End Sub

Sub Formule2()

' valeur à rentrer
Worksheets("feuil1").Cells(11, 3).Select
ActiveCell = InputBox("Entrez valeur du volume en m^3")
Worksheets("feuil1").Cells(11, 5).Select
ActiveCell = InputBox("Entrez valeur du temps en secondes")
Worksheets("feuil1").Cells(11, 6).Select
ActiveCell = InputBox("Entrez valeur de la masse en Kg")

' formule
Worksheets("feuil1").Cells(11, 7).Select
ActiveCell = Cells(11, 3) * Cells(11, 5) * (Cells(11, 6)) ^ 2

' Message résultat
MsgBox "Le résultat est égale à"
MsgBox Cells(11, 7)

End Sub
A voir également:

1 réponse

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour

If Cells(11, 1).Activate Then

if range("A11").activate then sera toujours vrai (ici activate est uine méthode et non une propriété

utilise putôt
if activecell.address="$A$11" then

pareil pour l'appel de formule 2

Mais il y a beaucoup de choses à dire sur ce code! enfin, si ca marche...
0