Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA: Comment commenter une cellule lorsque sa valeur change?

10 réponses
Avatar
Emile63
Bonjour =E0 tous,
Quand modifie le contenu de certaines cellules, et gr=E2ce =E0 la petite pr=
oc=E9dure suivante, il s'ajoute un commentaire sur la cellule modifi=E9e qu=
i m'indique le montant qui s'y trouvait pr=E9c=E9demment, et la diff=E9renc=
e avec le nouveau montant saisi.


-------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ap =3D Target
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim P1 As Range
Dim C As Range, Plg1 As Range, Plg2 As Range, Texte As String
On Error Resume Next
Set P1 =3D Range("MaZonePrix_A")
Set P2 =3D Range("MaZonePrix_B")
Set Plg1 =3D Intersect(Target, Union(P1, P2))
If Not Plg1 Is Nothing Then
For Each C In Plg1
C.ClearComments
C.AddComment "Modification de prix (selon devise) : " & Chr(10=
) & "Prix pr=E9c=E9dent : " & Format(ap, "# ##0.00# CHF") & Chr(10) & "Nou=
veau Prix : " & Format(C.Value, "# ##0.00# CHF") & " ( " & Format(Date, =
"DD/MM/YY") & " )" & Chr(10) & "Diff=E9rence : " & Format(((C.Value /=
ap) - 1), " 0.00 %")
C.Comment.Shape.OLEFormat.Object.Font.Size =3D 12
C.Comment.Shape.DrawingObject.AutoSize =3D True
Next
End If
End Sub

-------------------------------------------------------------

Je souhaiterais arriver =E0 la m=EAme chose au niveau du commentaire de la =
cellule, mais sur quelques cellules (Nomm=E9es) que je ne s=E9lectionne pas=
, mais qui changent, car elle ont la fonction Somme, qui additionne les r=
=E9sultats (Somme de la colonne). Et forc=E9ment le r=E9sultat change =E0 c=
haque fois que je change un prix sur P1 ou P2.

-Quelqu'un aurait une solution?
Merci d'avance pour vos propositions.
Emile

10 réponses

Avatar
Jacquouille
Bonjour,
Sans vouloir me mêler à la conversation des grands de ce monde... et si j'ai
bien compris....
x = valeur de la cellule où tu as mis la somme de la colonne(A1:A10)
Puis tu fais la nouvelle somme de la colonne
ensuite, y = nouvelle somme
Si y<>x, alors nouveau commentaire.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Emile63" a écrit dans le message de groupe de discussion :


Bonjour à tous,
Quand modifie le contenu de certaines cellules, et grâce à la petite
procédure suivante, il s'ajoute un commentaire sur la cellule modifiée qui
m'indique le montant qui s'y trouvait précédemment, et la différence avec le
nouveau montant saisi.


-------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ap = Target
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim P1 As Range
Dim C As Range, Plg1 As Range, Plg2 As Range, Texte As String
On Error Resume Next
Set P1 = Range("MaZonePrix_A")
Set P2 = Range("MaZonePrix_B")
Set Plg1 = Intersect(Target, Union(P1, P2))
If Not Plg1 Is Nothing Then
For Each C In Plg1
C.ClearComments
C.AddComment "Modification de prix (selon devise) : " & Chr(10)
& "Prix précédent : " & Format(ap, "# ##0.00# CHF") & Chr(10) & "Nouveau
Prix : " & Format(C.Value, "# ##0.00# CHF") & " ( " & Format(Date,
"DD/MM/YY") & " )" & Chr(10) & "Différence : " & Format(((C.Value /
ap) - 1), " 0.00 %")
C.Comment.Shape.OLEFormat.Object.Font.Size = 12
C.Comment.Shape.DrawingObject.AutoSize = True
Next
End If
End Sub

-------------------------------------------------------------

Je souhaiterais arriver à la même chose au niveau du commentaire de la
cellule, mais sur quelques cellules (Nommées) que je ne sélectionne pas,
mais qui changent, car elle ont la fonction Somme, qui additionne les
résultats (Somme de la colonne). Et forcément le résultat change à chaque
fois que je change un prix sur P1 ou P2.

-Quelqu'un aurait une solution?
Merci d'avance pour vos propositions.
Emile


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
MichD
Bonjour,

Tu n'as qu'à appliquer le même principe que tu as dans la procédure "Worksheet_Change".

Dans les 2 formules "somme", tu connais les cellules que tu additionnes.
Exemple en A1, la formule G1:G10

Dim Rg As range
Set Rg = Intersect(target, range("G1:G10"))
If not rg is nothing then
'La cellule qui contient la somme, tu la connais...
Range("A1").ClearComments
C.AddComment ......
End if

A2 contient la somme de la plage H1:H10
Dim Plg As Range
Set Plg = Intersect(target, range("H1:H10"))
If not rg is nothing then
'La cellule qui contient la somme, tu la connais...
Range("A2").ClearComments
C.AddComment ......
End if

Tu fais cela pour chacune des 2 cellules contenant la fonction "Somme". Tu ajoutes
ce bout de code à la suite du code déjà présent dans la procédure "Worksheet_Change".

Tu dois aussi modifier la procédure
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ap = Target
End Sub

Par :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As range, Plg As range
Set Rg = Intersect(target, range("G1:G10")) 'Somme No1
Set Plg = Intersect(target, range("H1:H10")) 'Somme No2
If not rg is nothing then
Ap =Range("A1") 'Cellule où apparaît le résultat de la somme
ElseIf not Plg is nothing then
Ap = = Range("A2") 'Cellule où apparaît le résultat de la somme 2
Else
Ap = Target
End if
End Sub

Voilà pour le principe, il te reste qu'à le mettre en pratique!
Avatar
Emile63
Le lundi 20 avril 2015 16:58:32 UTC+2, Emile63 a écrit :
Bonjour à tous,
Quand modifie le contenu de certaines cellules, et grâce à la petite procédure suivante, il s'ajoute un commentaire sur la cellule modifiée qui m'indique le montant qui s'y trouvait précédemment, et la différe nce avec le nouveau montant saisi.


-------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ap = Target
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim P1 As Range
Dim C As Range, Plg1 As Range, Plg2 As Range, Texte As String
On Error Resume Next
Set P1 = Range("MaZonePrix_A")
Set P2 = Range("MaZonePrix_B")
Set Plg1 = Intersect(Target, Union(P1, P2))
If Not Plg1 Is Nothing Then
For Each C In Plg1
C.ClearComments
C.AddComment "Modification de prix (selon devise) : " & Chr( 10) & "Prix précédent : " & Format(ap, "# ##0.00# CHF") & Chr(10) & "N ouveau Prix : " & Format(C.Value, "# ##0.00# CHF") & " ( " & Format(Date , "DD/MM/YY") & " )" & Chr(10) & "Différence : " & Format(((C.Value / ap) - 1), " 0.00 %")
C.Comment.Shape.OLEFormat.Object.Font.Size = 12
C.Comment.Shape.DrawingObject.AutoSize = True
Next
End If
End Sub

-------------------------------------------------------------

Je souhaiterais arriver à la même chose au niveau du commentaire de l a cellule, mais sur quelques cellules (Nommées) que je ne sélectionne p as, mais qui changent, car elle ont la fonction Somme, qui additionne les r ésultats (Somme de la colonne). Et forcément le résultat change à c haque fois que je change un prix sur P1 ou P2.

-Quelqu'un aurait une solution?
Merci d'avance pour vos propositions.
Emile




Merci Jacquouille et MichD pour vos solutions. :-)
Je test tout ça et vous redis.

Bonne journée,
Emile
Avatar
Emile63
Bonjour à tous,

Je reviens sur mon post, parce que n'ayant pas réussi à mettre en oeuvr e vos solutions (MichD et Jacquouille) j'avais un peu laissé tomber. :-(

Mais avec la nouvelle année, j'ai repris courage, et pour faire simple j' ai déposé un classeur exemple sur ci-joint.com:
http://www.cjoint.com/c/FBjrJIdH1aA
En vous remerciant d'avance pour vos propositions.
Cordialement,
Emile
Avatar
MichD
Je ne me souviens pas d'avoir écrit une procédure sur ce sujet...

C'est le fichier que tu dois retenir :
http://www.cjoint.com/c/FBjuAavCgxX

MichD
Avatar
MichD
Une légère amélioration : http://www.cjoint.com/c/FBjvRntD23X
Avatar
Emile63
Bonjour MichD,

Merci beaucoup pour ton aide. :-)
C'est en effet une vieille histoire!

J'ai testé ton fichier, mais ça bloque un peu chez -moi (voir image é cran ci-jointe)
-Est-ce que j'ai des bibliothèques à ajouter?
Avatar
Emile63
Le mercredi 10 février 2016 07:59:23 UTC+1, Emile63 a écrit :
Bonjour MichD,

Merci beaucoup pour ton aide. :-)
C'est en effet une vieille histoire!

J'ai testé ton fichier, mais ça bloque un peu chez -moi (voir image écran ci-jointe)
-Est-ce que j'ai des bibliothèques à ajouter?



http://www.cjoint.com/c/FBkg3nOB5KA
Avatar
MichD
Ton fichier :
http://www.cjoint.com/c/FBkmrGgFU2X
Avatar
Emile63
Merci MichD,
C'est parfait (Comme d'hab.). ;-)