Macro qui un affiche un message

Bonjour à tous !

Ils m'ont aidés à faire cette macro qui fonctionne parfaitement, ci-dessous

Je sollicite votre aide car j'aimerais qu'elle affiche une fenetre avec le message " souhaitez-vous effectuer une mise à jour" et

que la fenetre affiche aussi "oui" ou "non" .

Comme ca quand je cliquerai sur oui il fera la mise à jour et si non, il ne l'a fera pas.

Sub Formule()

Application.ScreenUpdating = False

With Range("C2:C39")

.Copy Destination:=Range("B2")

.Formula = "=VLOOKUP(A2,'DNNEES'!$A$2:$E$39,5,FALSE)"

.Value = .Value

.Borders(xlEdgeLeft).LineStyle = xlNone

End With

' Si les dimensions de la plage de changent pas

' Pas besoin de refaire les formules

' Les totaux seront actualisés automatiquement

Range("B40:C40").Formula = "=SUM(B2:B39)"

End Sub

Ci-joint mon fichier !

Je vous remercie d'avance pour votre aide.

Cordialement

FERDI

Bonjour

Rajoutes la ligne surlignée à ta macro

Sub Formule()
  If MsgBox("Voulez-vous actualiser les données", vbQuestion + vbYesNo, "Actualiser") <> vbYes Then Exit Sub
  Application.ScreenUpdating = False
  With Range("C2:C39")
    .Copy Destination:=Range("B2")
    .Formula = "=VLOOKUP(A2,'DNNEES'!$A$2:$E$39,5,FALSE)"
    .Value = .Value
    .Borders(xlEdgeLeft).LineStyle = xlNone
  End With
  ' Si les dimensions de la plage de changent pas
 ' Pas besoin de refaire les formules
 ' Les totaux seront actualisés automatiquement
 Range("B40:C40").Formula = "=SUM(B2:B39)"
End Sub

Merci beuacoup !

Ca marche super bien !

Cordialement

FERDI

Bonsoir,

Idem Banzai64 avec formulation différente et ajour "Option Explicit" qui oblige à déclarer ses variables.

Cdlt.

Option Explicit
Private Sub Formule()
Dim Msg, Style, Title, Response

    Msg = "Souhaitez-vous effectuer une mise à jour?"    ' Définit le message.
    Style = vbOKCancel   ' Définit les boutons.
    Title = "Mise à jour"    ' Définit le titre.
    Application.ScreenUpdating = False
    ' Affiche le message.
    Response = MsgBox(Msg, Style, Title)
    If Response = vbYes Then    ' L'utilisateur a choisi Oui.
        With Range("C2:C39")
            .Copy Destination:=Range("B2")
            .Formula = "=VLOOKUP(A2,'DNNEES'!$A$2:$E$39,5,FALSE)"
            .Value = .Value
            .Borders(xlEdgeLeft).LineStyle = xlNone
        End With
    'Si les dimensions de la plage de changent pas
    'Pas besoin de refaire les formules
    'Les totaux seront actualisés automatiquement
    Range("B40:C40").Formula = "=SUM(B2:B39)"  ' Effectue une action.
    Else    ' L'utilisateur a choisi Non.
        Exit Sub    ' Effectue une action.
    End If
End Sub

Comment ca marche avec Option Explicit" qui oblige à déclarer ses variables, je suis un novice !

Merci

Cordialement

ferdi

Re,

Ci-dessous, un lien qui te permettra d"aborder la déclaration des variables.

Cdflt

http://www.excel-pratique.com/fr/vba/variables.php
Rechercher des sujets similaires à "macro qui affiche message"