XL 2016 Insérer MsgBox YesNoCancel dans une macro

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 !

YANNISE

XLDnaute Junior
bonjour Forum,

Je souhaite que vous m'apportiez vos savoirs sur un blocage au niveau de l'insertion d'une MsgBox dans ma macro
Je voulais si la réponse est oui alors les valeurs seront copies
Mais sinon la cellule de saisie D1 sera effacée et sortie de la macro
Est si Annuler sortir de la MsgBox sans rien faire (la valeur sur D1 ne va pas être effacée)
Mais si une valeur n'est pas présente dans la base de données, la macro ne va pas intervenir
Avant d'insert la MsgBox ma macro marche parfaitement
ci-dessous le code VBA avec le fichier ci-joint

d'avance, merci pour votre aide

VB:
Sub Test_vr()

Dim ws_1 As Worksheet
Dim ws_2 As Worksheet
Dim Valeur_Test As String
Dim DerniereLigne As Integer
Dim Lig

Set ws_1 = Worksheets(1)
Set ws_2 = Worksheets(2)

Valeur_Test = ws_1.Cells(1, 4).Value

DerniereLigne = ws_2.Cells(65536, 4).End(xlUp).Row

Set Rech = ws_2.Columns(4).Find(Valeur_Test)

If Not Rech Is Nothing Then
        Lig = Rech.Row
End If

  ws_2.Range(ws_2.Cells(Lig, 1), ws_2.Cells(Lig, 1)).Copy ws_1.Cells(15, 2)
  ws_2.Range(ws_2.Cells(Lig, 2), ws_2.Cells(Lig, 2)).Copy ws_1.Cells(15, 4)
  ws_2.Range(ws_2.Cells(Lig, 3), ws_2.Cells(Lig, 3)).Copy ws_1.Cells(18, 3)
  ws_2.Range(ws_2.Cells(Lig, 5), ws_2.Cells(Lig, 5)).Copy ws_1.Cells(18, 5)
      
End Sub
 

Pièces jointes

Bonjour

VB:
Sub Test_vr()
if msgbox ("voulez vous copier blablabla  blablabla",vbyesno)= vbyes then
Dim ws_1 As Worksheet
Dim ws_2 As Worksheet
Dim Valeur_Test As String
Dim DerniereLigne As Integer
Dim Lig

Set ws_1 = Worksheets(1)
Set ws_2 = Worksheets(2)

Valeur_Test = ws_1.Cells(1, 4).Value

DerniereLigne = ws_2.Cells(65536, 4).End(xlUp).Row

Set Rech = ws_2.Columns(4).Find(Valeur_Test)

If Not Rech Is Nothing Then
        Lig = Rech.Row
End If

  ws_2.Range(ws_2.Cells(Lig, 1), ws_2.Cells(Lig, 1)).Copy ws_1.Cells(15, 2)
  ws_2.Range(ws_2.Cells(Lig, 2), ws_2.Cells(Lig, 2)).Copy ws_1.Cells(15, 4)
  ws_2.Range(ws_2.Cells(Lig, 3), ws_2.Cells(Lig, 3)).Copy ws_1.Cells(18, 3)
  ws_2.Range(ws_2.Cells(Lig, 5), ws_2.Cells(Lig, 5)).Copy ws_1.Cells(18, 5)
 end if
 End Sub
 
re
a ben c'est une sub elle est bien déclenchée par quelque chose

c'est dans l'event change alors qu'il faut traiter l'opération

il faut être un plus precis sur le contexte de votre problème sinon un truc qui prend 2 secondes va prendre des plombes😉
 
Ca marche pas votre solution, car au début ma macro se déclenche une fois une valeur double est saisie
Cependant je voulais ajouter le msgbox s’affiche pour les trois boutant
Oui = extraire
Non = effacer la cellule D1 est quitter la sub
Annuler = exit sub

Pour votre proposition si je le mets sur private sub worksheet_change ca va s’exécuter a chaque changent de valeur sur la cellule même si la valeur n’ai pas doublon ainsi qaund je fait non D1 est effacé mais le msgbox reste affiché

Merci
 
- 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

Discussions similaires

Réponses
9
Affichages
1 K
Réponses
2
Affichages
296
Réponses
1
Affichages
466
Réponses
0
Affichages
378
Retour