Comment créer un événementiel sur des zones (noms)

Le
Emile63
Bonjour a tous,
Je peine un peu sur la procédure ci-dessous, et je demande un peu
d'aide. :-))
Dans un classeur (Tarif de prix) je souhaite que chaque fois que je
change un prix aparaisse dans un commentaire la date + l'heure du
changement.
(Le top serrait de pouvoir également récupérer l'ancien prix, mais l=
à,
je câle)

Par contre je ne souhaite pas que tous les changements sur le classeur
ou de l'onglet se garnissent de commentaires, voila pourquoi je désire
restreindre la portée de cette procédure à quelques zones, en plaça=
nt
le
"If Target.Address <> ("Prix1, Prix2, Prix3,Prix4") Then Exit Sub"
Malheureusement, ça ne fonctionne pas :-(
Si quelqu'un peut me mettre sur la piste..
Je vous remercie d'avance pour votre aide et vos solutions.
Cordialement,
Emile

=
--
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> ("Prix1, Prix2, Prix3,Prix4") Then Exit Sub
With Target
On Error Resume Next
.AddComment
.Comment.Visible = False
.Comment.Text Text:="Dernière modificacion: " & Date & " " &
Time
End With
End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #22720641
Salut à toi
A supposer que Prix1 soit en A1, Prix2 soit en B1, Prix3 soit en C1,
Prix4 soit en D1 il faut mettre ainsi :

If Target.Address Range("B1").Address And Target.Address <> Range("C1").Address And
Target.Address <> Range("D1").Address Then Exit Sub

Tu peux aussi mettre comme ceci :

If "$A$1$B$1$C$1$D$1" Like "*" & Target.Address & "*" Then Exit Sub

qui est plus simple

Celà devrait mieux fonctionner

Dis moi !!!!!
michel ou sam
Le #22720741
bonjour,
dans ta démarche, il faut penser à ce qu'il se passera quand tu
positionneras la souris sur un prix quelconque
il ne faudra pas que la date change si tu n'as pas l'intention d'en changer
le montant.

Michel

"Emile63"
Bonjour a tous,
Je peine un peu sur la procédure ci-dessous, et je demande un peu
d'aide. :-))
Dans un classeur (Tarif de prix) je souhaite que chaque fois que je
change un prix aparaisse dans un commentaire la date + l'heure du
changement.
(Le top serrait de pouvoir également récupérer l'ancien prix, mais là,
je câle)

Par contre je ne souhaite pas que tous les changements sur le classeur
ou de l'onglet se garnissent de commentaires, voila pourquoi je désire
restreindre la portée de cette procédure à quelques zones, en plaçant
le
"If Target.Address <> ("Prix1, Prix2, Prix3,Prix4") Then Exit Sub"
Malheureusement, ça ne fonctionne pas... :-(
Si quelqu'un peut me mettre sur la piste..
Je vous remercie d'avance pour votre aide et vos solutions.
Cordialement,
Emile

-----------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> ("Prix1, Prix2, Prix3,Prix4") Then Exit Sub
With Target
On Error Resume Next
.AddComment
.Comment.Visible = False
.Comment.Text Text:="Dernière modificacion: " & Date & " " &
Time
End With
End Sub
isabelle
Le #22721431
bonjour Emile,

voici un exemple avec 2 zones de prix, dit moi si tu as de la difficulté à adapter pour plus de zones,
le code est à copier sur la page de la feuille des zones de prix.

[code]
Public ap 'ancien prix

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

Private Sub Worksheet_Change(ByVal Target As Range)
Set p1 = Range("Prix1") 'zone de prix1
Set p2 = Range("Prix2")
p = Array(p1, p2) 'liste des zones de prix
For Each Pi In p
Set isect = Application.Intersect(Target, Pi)
If Not isect Is Nothing Then
On Error Resume Next
Target.Comment.Delete
Target.AddComment
Target.Comment.Text Text:="ancien prix: " & ap & Chr(10) & "nouveau prix:" & Target
Exit Sub
End If
Next
End Sub
[/code]

isabelle

Le 2010-10-26 03:26, Emile63 a écrit :
Bonjour a tous,
Je peine un peu sur la procédure ci-dessous, et je demande un peu
d'aide. :-))
Dans un classeur (Tarif de prix) je souhaite que chaque fois que je
change un prix aparaisse dans un commentaire la date + l'heure du
changement.
(Le top serrait de pouvoir également récupérer l'ancien prix, mais là,
je câle)

Par contre je ne souhaite pas que tous les changements sur le classeur
ou de l'onglet se garnissent de commentaires, voila pourquoi je désire
restreindre la portée de cette procédure à quelques zones, en plaçant
le
"If Target.Address<> ("Prix1, Prix2, Prix3,Prix4") Then Exit Sub"
Malheureusement, ça ne fonctionne pas... :-(
Si quelqu'un peut me mettre sur la piste..
Je vous remercie d'avance pour votre aide et vos solutions.
Cordialement,
Emile

-----------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address<> ("Prix1, Prix2, Prix3,Prix4") Then Exit Sub
With Target
On Error Resume Next
.AddComment
.Comment.Visible = False
.Comment.Text Text:="Dernière modificacion: "& Date& " "&
Time
End With
End Sub
Emile63
Le #22721821
On 26 oct, 09:26, Emile63
Bonjour a tous,

Merci Isabelle pour ta proposition. C'est exactement ce que je
souhaitais :-)
J'avoue que comme j'étais parti, je n'y serrais pas arrivé sans ton
aide.

très cordialement,
Emile
Emile63
Le #22722031
On 26 oct, 09:26, Emile63
Encore une petite question Isabelle (finitions...),
Le comentaire m'affiche le prix avec un nombre "général" entier ou
incluant x décimales après la virgule.
Et je souhaiterais en formater l'affichage "#'###,00 €".
D'autre part, l'affichage étant assez petit je souhaite également
modifier la police de caractères de chaque commentaire inséré à 12 pt.
Comment puis-je inclure ces caractéristiques dans ta procédure. ;-)
Encore merci pour ces précisions,
Cordialement,
Emile
michdenis
Le #22722021
Bonjour,

En attendant le retour d'Isabelle...


Private Sub Worksheet_Change(ByVal Target As Range)
Dim P1 As Range, P2 As Range, P()
Dim C As Range, Plage As Range, Texte As String

Set P1 = Range("Prix1") 'zone de prix1
Set P2 = Range("Prix2")

Set plg = Intersect(Target, Union(P1, P2))
If Not plg Is Nothing Then
For Each C In plg
C.ClearComments
Texte = Format(C.Value, "# ##0.00 €")
C.AddComment "ancien prix: " & ap & Chr(10) & "nouveau prix:" & Texte
Next
End If
End Sub

--
MichD
--------------------------------------------


"Emile63"
On 26 oct, 09:26, Emile63
Encore une petite question Isabelle (finitions...),
Le comentaire m'affiche le prix avec un nombre "général" entier ou
incluant x décimales après la virgule.
Et je souhaiterais en formater l'affichage "#'###,00 €".
D'autre part, l'affichage étant assez petit je souhaite également
modifier la police de caractères de chaque commentaire inséré à 12 pt.
Comment puis-je inclure ces caractéristiques dans ta procédure. ;-)
Encore merci pour ces précisions,
Cordialement,
Emile
Emile63
Le #22722331
On 26 oct, 09:26, Emile63
Merci Michel pour ton support. ;-)

Et pour augmenter la police d'écriture?
Jacky
Le #22722461
Bonsoir,
---------
--------
Target.Comment.Text Text:="ancien prix: " & Format(ap, "# ###.00 €") & Chr(10) & "nouveau prix:" &
Format(Target, "# ###.00 €")
Target.Comment.Shape.OLEFormat.Object.Font.Size = 12
'******Pour anticiper la question suivante ;o))
Target.Comment.Shape.DrawingObject.AutoSize = True
----------
---------
--
Salutations
JJ


"Emile63"
On 26 oct, 09:26, Emile63
Encore une petite question Isabelle (finitions...),
Le comentaire m'affiche le prix avec un nombre "général" entier ou
incluant x décimales après la virgule.
Et je souhaiterais en formater l'affichage "#'###,00 €".
D'autre part, l'affichage étant assez petit je souhaite également
modifier la police de caractères de chaque commentaire inséré à 12 pt.
Comment puis-je inclure ces caractéristiques dans ta procédure. ;-)
Encore merci pour ces précisions,
Cordialement,
Emile
michdenis
Le #22722511
Après la ligne de code :
C.AddComment "ancien prix: " & ap & Chr(10) & "nouveau prix:" & Texte

Tu ajoutes celle-ci
C.Comment.Shape.OLEFormat.Object.Font.Size = 14

--
MichD
--------------------------------------------


"Emile63"
On 26 oct, 09:26, Emile63
Merci Michel pour ton support. ;-)

Et pour augmenter la police d'écriture?
Emile63
Le #22723891
On 26 oct, 09:26, Emile63
c'est parfait.. ;-)

Merci à tous pour votra aide.
Cordialement,
Emile
Publicité
Poster une réponse
Anonyme