Comment créer un événementiel sur des zones (noms)
10 réponses
Emile63
Bonjour a tous,
Je peine un peu sur la proc=E9dure 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 =E9galement r=E9cup=E9rer l'ancien prix, mais l=
=E0,
je c=E2le)
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=E9sire
restreindre la port=E9e de cette proc=E9dure =E0 quelques zones, en pla=E7a=
nt
le
"If Target.Address <> ("Prix1, Prix2, Prix3,Prix4") Then Exit Sub"
Malheureusement, =E7a 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 =3D False
.Comment.Text Text:=3D"Derni=E8re modificacion: " & Date & " " &
Time
End With
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
FFO
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("A1").Address And 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 !!!!!
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("A1").Address And 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
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("A1").Address And 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
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" a écrit dans le message de news:
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
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" <sanz.emile@gmail.com> a écrit dans le message de news:
c8a9de80-c20f-407e-92f9-f4c3a5c3ebc1@p26g2000yqb.googlegroups.com...
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
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" a écrit dans le message de news:
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
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
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
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
On 26 oct, 09:26, Emile63 wrote:
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
On 26 oct, 09:26, Emile63 <sanz.em...@gmail.com> wrote:
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.
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
On 26 oct, 09:26, Emile63 wrote:
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
On 26 oct, 09:26, Emile63 <sanz.em...@gmail.com> wrote:
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
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
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
"Emile63" a écrit dans le message de groupe de discussion :
On 26 oct, 09:26, Emile63 wrote:
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
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
"Emile63" <sanz.emile@gmail.com> a écrit dans le message de groupe de discussion :
b5744e04-ed34-4771-845a-c9c4ff47aaf8@h7g2000yqn.googlegroups.com...
On 26 oct, 09:26, Emile63 <sanz.em...@gmail.com> wrote:
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
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
"Emile63" a écrit dans le message de groupe de discussion :
On 26 oct, 09:26, Emile63 wrote:
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
On 26 oct, 09:26, Emile63 wrote:
Merci Michel pour ton support. ;-)
Et pour augmenter la police d'écriture?
On 26 oct, 09:26, Emile63 <sanz.em...@gmail.com> wrote:
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" <sanz.emile@gmail.com> a écrit dans le message de news:
b5744e04-ed34-4771-845a-c9c4ff47aaf8@h7g2000yqn.googlegroups.com...
On 26 oct, 09:26, Emile63 <sanz.em...@gmail.com> wrote:
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
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
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
"Emile63" <sanz.emile@gmail.com> a écrit dans le message de groupe de discussion :
215e989f-4c1b-40d1-ab7c-57ef688250d1@p26g2000yqb.googlegroups.com...
On 26 oct, 09:26, Emile63 <sanz.em...@gmail.com> wrote: