Redondance de question macro

je viens de regler le problème, j'ai en effet mis Application.EnableEvents = True juste après Range("k2").Select. Est ce que ca marche pour toi aussi

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim AnswerYes As Integer

If Worksheets("Sheet1").Cells(2, 11).Value > 0 Then

Exit Sub

Range("c2").Select

End

If

Application.EnableEvents = False

AnswerYes = MsgBox("Voulez-vous aussi évaluer DKG et FM?", vbQuestion + vbYesNo, "User Repsonse")

If AnswerYes = vbYes Then If Worksheets("Sheet1").Cells(2, 11).Value = 0 Then

MsgBox ("Entrer le décimal Rounding DKG&FM, Rounding DKG et Rounding FM")

Range("k2").Select

End If

Application.EnableEvents = True

End If

End Sub

j'ai en effet mis Application.EnableEvents = True juste après Range("k2").Select. Est ce que ca marche pour toi aussi

Non. Avec K2 vide, cliquez sur Non lors du message puis recliquez dans une cellule.

Vous devez la mettre avant le END SUB comme je vous ai proposé depuis le début.

comme j'ai fais : k2 vide je clique sur non, la macro ne me demande rien meme si clique dans plusieurs cellules et ca ce que je veux

si je mets Application.EnableEvents = True avant end sub meme si je clique sur non la question revient indefiniment ce que je ne veux pas

cordialement

comme j'ai fais : k2 vide je clique sur non, la macro ne me demande rien meme si clique dans plusieurs cellules et ca ce que je veux

si je mets Application.EnableEvents = True avant end sub meme si je clique sur non la question revient indefiniment ce que je ne veux pas

???? ben c'est le but de votre macro non ?. Si k2 est vide vous voulez le message.
Que K2 soit vide au départ ou après parce que K2 est de nouveau vide ou à 0 cela n'a pas d'importance. Le code doit vous renvoyer un message pour aller compléter K2. Enfin je suppose ..

si k2 est vide il faut poser la question si on le rempli ou non

c'Est possible que k2 ne soit pas vide et contient une valeur qu'on ne veut pas, alors j'ai crée un msg box dans workbook: Workbook_Open

Private Sub Workbook_Open()

Application.EnableEvents = False

 MsgBox "**Si vous commencer une nouvelle analyse : cliquez sur le bouton reinitialiser les données Entrez le nom du client et le nombre de decimal dans Rounding si vous voulez faire du DKG&FM.**"

 Application.EnableEvents = True
 End Sub

comme ca j'Evite le cas où k2 contient une valeur non desiré non nul

je vais voir comment ameliorer ca

le programme est fonctionnel à 98%, mais si l'utilisateur fait attention au msgbox de workbook_open c'Est fonctionnel à 100%

je vous reviens

alors j'ai crée un msg box dans workbook:

Vu que votre macro s'exécute uniquement à l'ouverture du fichier, les deux instructions Application.Enable sont inutiles.

Mettez votre fichier en ligne ce sera plus simple

ok

j'ai pris l'habitude de mettre Application.Enable pour accelerer l'affichage

on me l'a conseillé

je vais remplacer certaines information confidentielles et je poste le fichier.

je vous reviens

j'ai pris l'habitude de mettre Application.Enable pour accelerer l'affichage. on me l'a conseillé

On vous a mal conseillé. Cette instruction n'a rien à voir avec l'affichage, elle sert à suspendre les macros événementielles

Pour l'affichage, il s'agit de l'instruction Application.ScreenUpdating

Ok pour votre fichier

oui j'utilise aussi Application.ScreenUpdating

merci

j'ai encore beaucoup de question sur le VBA comme la nomenclature des noms de macro reservés au VBA comme:

Worksheet_SelectionChange

où je peux trouver la liste ainsi que la description du role de chacune.

merci d'avance

pour des raisons de confidentialité j'ai simplifié le fichier

Bonjour

où je peux trouver la liste ainsi que la description du role de chacune.

Regardez ce lien --> https://www.excel-pratique.com/fr/vba/evenements_classeur
D'autres infos sont disponible sur ce site dans "Cours VBA"

Pour votre fichier, on considère que vous videz toujours K2 avec le bouton.

J'ai adapté les choses suivantes :
- Suppression des "Application.EnableEvents" dans Thisworkbook. Je vous en ai parlé dans un post précédent, c'est inutile et n'apporte rien à cet endroit. N'oubliez pas que vous "jouez" avec les fonctions événementielles d'excel. En cas de plantage excel c'est "patatra" et cela vous oblige à relancer Excel complètement.(heureusement qu'aujourd'hui les versions d'excel prévoient la réinitialisation à l'ouverture parce qu'il y a quelques années, même en ré-ouvrant excel plus rien ne fonctionnait). Raison pour laquelle j'ai prit l'habitude d'éviter cette instruction dans les codes que je propose.
- Modifié un peu la macro réinitialisation notamment sur la sélection B1 et le positionnement des Application.EnableEvents.

Je vous suggère de faire d'abord un test avant de regarder les codes

Cordialement

Bonjour

j'ai testé votre version: ca marche bien comme la premiere. la différence entre les deux codes: vous avez placé:

Application.EnableEvents = false

après

AnswerYes= MsgBox("........"), vbQuestion + vbYesNo, "User Response")
Rechercher des sujets similaires à "redondance question macro"