Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Probleme dans maccro

  • Initiateur de la discussion Initiateur de la discussion Ganache
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

Ganache

Guest
BOnjour !!!

J'ai un petit probleme avec ma maccro.
La condition si l'utilisateur click sur "oui" a l'air de marcher.
Mais lorsqu'il click sur "non" cela fé toutes les actions de oui.

comment faire ?
Dois je metre if rep = bbYes
devant toutes les lignes ???



======================================================

Sub annulprog()
rep = MsgBox("Etes vous sur de vouloir suprimer toutes vos actions, et de commencer un nouveau portefeuille ?", vbYesNo)
If rep = vbYes Then Sheets("action 1").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 2").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 3").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 4").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 5").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 6").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 7").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 8").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 9").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 10").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Sheets("page principale").Select
If rep = vbYes Then MsgBox "le programme a été réinitialisé"
If rep = vbNo Then MsgBox "Le programme n'a pas été reinitialisé."
End Sub


=====================================================
 
Si j'ai bien compris tu veut que tous ton code : range.... ne s'execute que si on clique sur yes ?

Si c'est ça :
======================================================

Sub annulprog()
rep = MsgBox("Etes vous sur de vouloir suprimer toutes vos actions, et de commencer un nouveau portefeuille ?", vbYesNo)
If rep = vbYes Then
Sheets("action 1").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 2").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 3").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 4").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 5").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 6").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 7").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 8").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 9").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Range("H40").Select
Sheets("action 10").Select
Range("A19").Select
ActiveCell.FormulaR1C1 = "1"
Range("H38").Select
ActiveCell.FormulaR1C1 = "0"
Range("H39").Select
ActiveCell.FormulaR1C1 = "0"
Sheets("page principale").Select
MsgBox "le programme a été réinitialisé"

else

MsgBox "Le programme n'a pas été reinitialisé."

end if

End Sub


A+ Wilfried ;op
=====================================================
 
Bonjour Ganache Wilfried

Pour t'expliquer : quand tu ecris ceci

If rep = vbYes Then Sheets("action 1").Select
Range("A19").Select
......

Ta condition s'arrête après le Sheets("action 1").Select Donc tout le reste s'exécute.

Il faut ecrire comme wilfried l'a noté

En fait avec un If

soit tu ecris tout sur la ligne :

If Condition then resultat

soit

if condition then
Resultat
else
Resultat sinon
end if

Sinon tu peux simplifier ce que te fais l'enregistreur de macro en faisant ceci

Sub annulprog()

rep = MsgBox("Etes vous sur de vouloir suprimer toutes vos actions, et de commencer un nouveau portefeuille ?", vbYesNo)

If rep = vbYes Then
   with Sheets("action 1")
      .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   with Sheets("action 2")
      .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   with Sheets("action 3")
      .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   with Sheets("action 4")
        .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   with Sheets("action 5")
      .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   with Sheets("action 6")
      .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   with Sheets("action 7")
      .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   with Sheets("action 8")
      .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   with Sheets("action 9")
      .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   with Sheets("action 10")
      .Range("A19") = "1"
      .Range("H38")= "0"
      .Range("H39") = "0"
   end with
   Sheets("page principale").Select
   MsgBox "le programme a été réinitialisé"
else
   MsgBox "Le programme n'a pas été reinitialisé."
end if

End Sub

Pascal
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
808
Réponses
4
Affichages
587
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…