Msgbox si modification cellule "RESOLU"

Bonsoir à tous

Je vous explique mon petit problème.

J’ai un fichier Excel comprenant beaucoup de feuilles d'inventaires avec un formulaire qui contient une textbox remplie par la lecture d'un code barre.

Le principe est qu'en flashant un code barre, je recherche la ligne correspondante et j'incrémente +1 la cellule de cette ligne(quantité).

Ce principe fonctionne depuis longtemps, mais j'aimerais avoir une confirmation que la cellule a bien été modifié à l'aide d'un msgbox "valeur bien sortie" (et pour aller plus long pourquoi pas reprendre la référence pour vérifier si elle est correct.).

J’ai essayé plusieurs méthodes comme

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, .....) Is Nothing Then
       .........
    Exit Sub
    End If
End Sub

mais cela implique de le mettre dans chaque feuille (se qui n'ai pas possible vu le nombre de feuille)

si vous avez une petite idée pour m'aiguiller

Bonsoir

Utilises l'événement prévu dans le module ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Intersect(Target, .....) Is Nothing Then
       .........
    Exit Sub
    End If
End Sub

merci pour ta reponse banzai64

j'ai mis ça

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

If Intersect(Columns("E"), Target) Is Nothing Then
     MsgBox "la valeur a bien été modifier"
    Exit Sub
    End If

End Sub

mais ça fonctionne que si la page est active et modifier manuellement mais pas avec mon userform???

certain dise que l'on peux le faire avec

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

qu'en pense tu?

Bonsoir

Tu dis

regnum a écrit :

j'incrémente +1 la cellule de cette ligne(quantité)

Donc c'est l'événement Change qui est concernée, et comme tu ne veux pas copier x fois le même code dans les modules des feuilles, le plus simple est d'utiliser l'événement Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Il te renseigne sur la page modifiée et sur la cellule modifiée

Utilisation simple

Attention: correction de la macro (rajout partie surlignée)

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

  If Not Intersect(Sh.Columns("E"), Target) Is Nothing Then
    MsgBox "la valeur de la cellule " & Target.Address & " a bien été modifiée dans la page " & Sh.Name
  End If

End Sub

Je t'avais indiqué Workbook_SheetChange et toi tu utilises Workbook_SheetSelectionChange : Ce n'est pas la même

ÉDIT: Un fichier pour illustrer ce que j'ai dit

merci banzai64

c'est bien cela que je recherche.

le Workbook_SheetSelectionChange est une mauvaise recopie de ma part

une dernière chose ,est il possible de mettre dans le msgbox la référence modifiée

exemple :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

  If Not Intersect(Sh.Columns("E"), Target) Is Nothing Then
    MsgBox "la quantité de la référence référence modifiée(cellule " & Target.Address & " )a bien été modifiée dans la page " & Sh.Name
  End If

End Sub

partie surligner est la référence modifiée

merci

Bonsoir

Rien de plus simple

A 1ère vue 2 méthodes

Méthode 1

Tu as marqué

regnum a écrit :

je recherche la ligne correspondante

Donc tu te sers de la référence, donc tu l'as et il suffit de la déclarée en public, comme ça la macro "Workbook_SheetChange" y a accès facilement

MsgBox "la quantité de la référence " & LaVariable & " (cellule " & Target.Address & " )a bien été modifiée dans la page " & Sh.Name

Méthode 2

La référence est quelque part sur la ligne modifiée

donc placer sa valeur dans le message

MsgBox "la quantité de la référence : "& Sh.range("A" & Target.Row) & " (cellule " & Target.Address & " ) a bien été modifiée dans la page " & Sh.Name

merci banzai64

c'est tous a fait ça

mais j'ai remplacer

MsgBox "la quantité de la référence : " & Sh.Range("A" & Target.Row) & "  a bien été modifiée dans la page " & Sh.Name '(cellule " & Target.Address & " )a mettre si localisation cellule

par

CreateObject("Wscript.shell").Popup "la quantité de la référence : " & Sh.Range("A" & Target.Row) & "  a bien été modifiée dans la page " & Sh.Name, 1, "stocks"

pour que le message se ferme seul

merci pour tes réponses

bonne soirée


Rechercher des sujets similaires à "msgbox modification resolu"