Message confirmation apres saisie

Hello ,

j'aimerai metre un message de confirmation apres saisie:

par contre la je bloque, quelqu'un peut-il m'aider SVP??

voici mon code:

Dim mRg As Range

Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Range("B5:J67,M5:V67"), Target) Is Nothing Then

Set mRg = Target.Item(1)

mStr = mRg.Value

End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

Dim xRg As Range

On Error Resume Next

Set xRg = Intersect(Range("B5:J67,M5:V67"), Target)

If xRg Is Nothing Then Exit Sub

Target.Worksheet.Unprotect

If xRg.Value <> mStr Then xRg.Locked = True

Target.Worksheet.Protect

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Range("B5:J67,M5:V67"), Target) Is Nothing Then

Set mRg = Target.Item(1)

mStr = mRg.Value

End If

End Sub

j'aimerai qu'il demande quelque chose comme : etes vous sur de la saisie ?

Merci pour votre retour.

Bonjour toutes et tous

@ tester

Sub clean()
'
' clean Macro
'

'ChDir "C:\Users\guedev1\Desktop\test save"
On Error GoTo saveplouf
If MsgBox("Etes vous certain(e) de votre saisie ?", 36, "Confirmation de saisie") = vbYes Then
    'Code à exécuter si OUI

    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\guedev1\Desktop\test save\Inventory_table_4_" & Trim(Format(Now, "dd-mmm_hhmmss")) & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    ActiveSheet.Unprotect
    Range("B5:J51,M5:V51").Select
    Range("V28").Activate
    Selection.ClearContents
    ActiveSheet.Unprotect
    Selection.Locked = False
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
 Else  ' ajouter
 With Sheets("Feuil1")   ' ajouter  on se dirige sur l'onglet du classeur
.Range("a1").Select     ' ajouter
End With                ' ajouter
Exit Sub                ' ajouter
MsgBox "Annulé par l'utilisateur!"  ' ajouter
 End If  ' ajouter  'fin de condition ....if msgbox continuer

saveplouf:      MsgBox ("Une erreur s'est produite lors de la sauvegarde du classeur!") ' ajouter peut être supprimer
With Sheets("Feuil1")   ' ajouter
.Range("a1").Select     ' ajouter
End With                ' ajouter
Exit Sub                ' ajouter
End Sub

Note 1: le problème si aucune saisie n'a été inscrite sur une ligne du tableau la macro ne sert à rien

Note 2: j'ai mis le code au cas où, si une erreur 'saveplouf' se produit (exemple le chemin n'est pas correct : "C:\Users\guedev1\Desktop\test sa...)

Note 3 : message de confirmation ici sur ce forum -;)

crdlt,

André

ouaouu,

Merci d'avoir pris le temp de me repondre.

j'apprecie vraimment.

je tien a préciser que je suis nul en VBA. le code que j'ai réussi a faire je l'ai composer a l'aide de plusieurs codes trouver plusieurs forum.

Et aprés beaucoup de temnative d'executions j'ai obtenu celui-ci.

Ton code fonctionne tres bien quand je lance ma macro clean and save.

Bravo et Merci, on sens la passion.

Par contre je n'arive pas a la faire fonctionné sur le classeur en fonctionnement standard.

ce que j'aimerai c'est que: quand les personne remplissent une case, et dés qu'ils veulent changer de case pour ecrire dans une autre, il y ai le message qui s'affiche.

j'ai essayé d'adapté ton code a mon code dans la feuille, mais je n'arive pas a le faire fonctionné.

j'aimerai que le message s'affiche et apres validation ou non, et il verouille la cellule une fois la data rentré.

voici comment j'ai essaye de réadapté ton code.

Dim mRg As Range

Dim mStr As String

'ChDir "C:\Users\guedev1\Desktop\test save"

On Error GoTo saveplouf

If MsgBox("Etes vous certain(e) de votre saisie ?", 36, "Confirmation de saisie") = vbYes Then

'Code à exécuter si OUI

ActiveWorkbook.SaveAs Filename:= _

"C:\Users\guedev1\Desktop\test save\Inventory_table_4_" & Trim(Format(Now, "dd-mmm_hhmmss")) & ".xlsm", FileFormat:= _

xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

ActiveSheet.Unprotect

Range("B5:J51,M5:V51").Select

Range("V28").Activate

Selection.ClearContents

ActiveSheet.Unprotect

Selection.Locked = False

Selection.FormulaHidden = False

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Else ' ajouter

With Sheets("Feuil1") ' ajouter on se dirige sur l'onglet du classeur

.Range("a1").Select ' ajouter

End With ' ajouter

Exit Sub ' ajouter

MsgBox "Annulé par l'utilisateur!" ' ajouter

End If ' ajouter 'fin de condition ....if msgbox continuer

saveplouf: MsgBox ("Une erreur s'est produite lors de la sauvegarde du classeur!") ' ajouter peut être supprimer

With Sheets("Feuil1") ' ajouter

.Range("a1").Select ' ajouter

End With ' ajouter

Exit Sub ' ajouter

End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Range("B5:J67,M5:V67"), Target) Is Nothing Then

Set mRg = Target.Item(1)

mStr = mRg.Value

End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

Dim xRg As Range

On Error Resume Next

Set xRg = Intersect(Range("B5:J67,M5:V67"), Target)

If xRg Is Nothing Then Exit Sub

Target.Worksheet.Unprotect

If xRg.Value <> mStr Then xRg.Locked = True

Target.Worksheet.Protect

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Range("B5:J67,M5:V67"), Target) Is Nothing Then

Set mRg = Target.Item(1)

mStr = mRg.Value

End If

End Sub

encore une fois merci pour le suport, Vitor

Bonjour toutes et tous

merci de ton message ne t'inquiètes-pas moi aussi, je suis un ch'ti peu nul en VBA sur ce logiciel Excel et, c'est en observant les postes des Experts sur Excel que, j'en apprend tout les jours

1/ il faudrait que, tu ajoutes ton classeur pour voir les modifications que tu as effectué

info: si tu places un message avec un code essaies d'ajouter les balises [ code ] ton code [ /code] (sans les espaces de ces 2balises)

crdlt,

André

désolé,

voici le fichier, et merci pour ton retour d'infos

Bonjour toutes et tous,

dans ton classeur tu as mis deux fois un End sub ce qui ne fait pas fonctionner l’exécution du code

ci-joint à tester

alors non cela ne fonctionne toujour pas.

j'ai encore modifié le code.

les celllues ce verouille bien apres saisie mais ne demandent pas le message box avant.

encore merci, Vitor

Bonjour,

si tu veux mon avis, ça va vite les saouler d'avoir une boite à valider à chaque fois.

Surtout qu'au bout de 3 fois ils feront Entrée sans lire et sans réfléchir, par automatisme.

Ta boite ne servira plus à rien d'autre qu'enquiquiner.

C'est au moment de la saisie qu'il faut être attentif, c'est tout.

eric

hello,

Enfait il doivent scaner des lot dans la colone lot ID.

et le scan bah il scan 2 fois c'est pour ça que je voulais metre un message pour ne pas que ca saute...

et les datas a rentre c'est une fois par jour c'est 2 min pour eux

Bonjour toutes et tous

ton code de ton onglet au double clic Feuil1 n'est pas correct tu as mis un Private Sub et un Sub clean

@tester: le message box s'affiche après double clic

et le 'ChDir "C:\Users\guedev1\Desktop\test save" pas trop compris ( à tester en ôtant l'apostrophe sur celui -ci)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Sub clean()  -------------------erreur !!!!!!!
'
 On Error GoTo saveplouf
'ChDir "C:\Users\guedev1\Desktop\test save"

If MsgBox("Etes vous certain(e) de votre saisie ?") = vbYes Then
    'Code à exécuter si OUI
 If Not Intersect(Range("B5:J67,M5:V67"), Target) Is Nothing Then
       Set mRg = Target.Item(1)
           mStr = mRg.Value
             With Sheets("B5:J67,M5:V67")
                  .Range("B5:J67,M5:V67").Select
             End With

    With Sheets("B5:J67,M5:V67")
               .Range("B5:J67,M5:V67").Select
    End With
End If
    End If

saveplouf:   Exit Sub
Exit Sub
End Sub

Notes: 1/je viens de comprendre après saisie mais pas avant !!!

Notes: 2/si cellule vide par double clic signaler ou sortir de la Sub

crdlt,

André

stestsai1

Hello,

C’est exactement ce que je voulais.

Je suis pas chez moi. Je teste ça ce soir Et je te fais un retour

Merci 😁😁😁

hello, je viens de tester ton code;

ça fonctionne bien quand je clique 2x sur un cellule.

Moi ce que j'aimerais c'est que ça envoie le code apres saisie, ainsi on peut-toujour coriger avant de quitter la cellule, car apres une datas inscrite la cellule se verouille (je veux aussi empecher la modification).

j'ai réadapter un peu ton code a mon autre code de verouillage des cellules.

Merci pour ton aide

Re,

bonjour toutes et tous,

@ tester car, je vais au job ci-joint

crdlt,

André

hello,

merci mais non cela ne fonctionne pas.

j'arive pas a metre le code pour qu'il ouvre le message box avant de quiter la cellule.

hello,

Pas de news ??

Bonjour toutes et tous

en essayant d'ôter dans le module 1 l'apostrophe du commentaire

'ChDir "C:\Users\v_gue\OneDrive\Bureau\test"

en

ChDir "C:\Users\v_gue\OneDrive\Bureau\test"

Sub clean()
'
' clean Macro
'

ChDir "C:\Users\v_gue\OneDrive\Bureau\test"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\v_gue\OneDrive\Bureau\test\Inventory_table_4_" & Trim(Format(Now, "dd-mmm_hhmmss")) & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    ActiveSheet.Unprotect
    Range("B5:Q44").Select
    Range("B5").Activate
    Selection.ClearContents
    ActiveSheet.Unprotect
    Selection.Locked = False
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

après, je ne vois pas.. sorry

crdlt,

André

Hello,

Merci pour le coup de main, mais non ça ne fonctionne toujour pas.

Je tien a preciser que c'est sur la feuille que j'aimerai qu'il y ai le message box et non pas dans le modules.

Je re-joint le fichier avec mes derniére modif

Merci pour votre support, Vitor

Bonjour toutes et tous

@coucou Ketor2vi

bidouillage : en double cliquant sur 1 cellule de la plage de ta feuille

un 1er message box te donnant la valeur de ta cellule sélectionnée, puis, dans un second temps un autre message qui te demandes si c'est ok ou pas, donc, si ce n'est pas ok pour le contenu de ta cellule, tu pourras modifier son contenu et au cas où c'est ok il re-protège ta feuille systématiquement.

- corrections et ajouts effectués:

*saveplouf: exit sub en cas d'erreur (on error goto saveplouf) (((on sort de la procédure)))

* commentaire code

*ajout msgbox valeur cellule

ci-joint

crdlt,

André

Hello,

C'est vraimment bien ce que tu as fait.

Merci. arriverai tu a le faire également pour quand on sort de la celulue?

par exemple: tu ecrit une data dans la cellule est dé que tu veux changer de celule par un clic sur une autre ou ENTRE ou une fleche,

ca demande si on est bien sur de la saisie, car apres elle ne sera plus modifiable en fait.

tu pense m'aider la dessu? le premier cas je peux m'en passer et ce que j'aimerai vraiment c'est au moment de quitter la cellule que le message box aparesse. et si la repons et oui on change et la cellule est verouillé et fin de l'histoire.

Merci beaucoup pour ton support, Vitor

Rechercher des sujets similaires à "message confirmation saisie"