SOS VBA - VB/VBA/VBS - Programmation
Marsh Posté le 13-01-2019 à 13:33:05
Bonjour,
J'ai bien du mal à comprendre ce que tu veux faire...
À tout hasard, est-ce que ceci pourrait aller :
Code :
|
Je ne connais pas la seconde condition, donc à adapter. Mais alors franchement, je ne suis pas sûr d'avoir compris ce que tu voulais faire.
Marsh Posté le 14-01-2019 à 13:09:59
Private Sub Worksheet_Change(ByVal Target As Range)
Dim O_Cell As Object
Dim valeur As String
Dim myRow As String
If Target.Column = 14 Then
myRow = Target.Row
valeur = "ROUGE" 'valeur à chercher
Application.Goto Reference:="RDV" ' "RDV" est le nom de la zone de recherche
Set O_Cell = Selection.Find(valeur) ' recherche de la valeur
If Not O_Cell Is Nothing And Target.text = valeur Then 'si l'objet O_Cell contient les coordonnées de la cellule et que la seconde condition est remplie (comparaison entre colonne "N" et "I" )
O_Cell.Select ' sélection de la cellule
Call alerte
End If
End If
End Sub
j'ai adapté ta solution à ma macro et elle est très bien, mais le problème est que la colonne 14 contient une formule "SI:" et lorsque le résultat est réalisé la modification de la cellule n'est pas prise en compte par la macro en question. En effet celle-ci ne fonctionne que lorsque je rentre moi même (manuellement) "ROUGE" dans la cellule! moi ce que je voudrais, ce que lorsque le résultat de la formule affiche la valeur "ROUGE" dans la cellule, la macro se déclenche aussitôt
Marsh Posté le 14-01-2019 à 14:09:51
Pourquoi utiliser "Target" alors ? Pourquoi ne pas directement utiliser la référence de la cellule ?
Marsh Posté le 14-01-2019 à 14:26:00
Cette macro est écrite dans "sheet1" et doit se déclencher automatiquement à chaque modification de la colonne 14(N). je ne connait pas un autre moyen de déclencher un événement après la modification d'une cellule! je ne sais pas comment adapter ma macro à la référence de la cellule
Marsh Posté le 14-01-2019 à 14:50:35
Bonjour,
L'évènement Change ne se produit pas lorsque le résultat d'une formule change.
Il faut tester le changement des constantes antécédentes pour le calcul de la formule.
Marsh Posté le 14-01-2019 à 15:05:30
Patrice33740 merci infiniment la macro avec les références des cellules fonctionne très bien :-)
Marsh Posté le 14-01-2019 à 15:06:38
Ok
Marsh Posté le 14-01-2019 à 15:51:21
gaultier78330 a écrit : Cette macro est écrite dans "sheet1" et doit se déclencher automatiquement à chaque modification de la colonne 14(N). je ne connait pas un autre moyen de déclencher un événement après la modification d'une cellule! je ne sais pas comment adapter ma macro à la référence de la cellule |
Pour que ce soit bien clair.
La macro se déclenche à chaque changement de cellule, Target sert à passer la dite cellule en référence. Tu peux très bien utiliser la macro sans utiliser Target.
Marsh Posté le 14-01-2019 à 16:30:14
Private Sub Worksheet_Change(ByVal Target As Range)
Dim O_Cell As Object
Dim valeur As String
Dim myRow As String
If Target.Column = 14 Or Target.Column = 9 Then
Call efface ' efface la cellules "ALERTE" si cellule 9 est vide
myRow = Target.Row
valeur = "ROUGE" 'valeur à chercher
Application.Goto Reference:="RDV" ' "RDV" est le nom de la zone de recherche
Set O_Cell = Selection.Find(valeur) ' recherche de la valeur
If Not O_Cell Is Nothing And Target.Value <> "" Then 'si l'objet O_Cell contient les coordonnées de la cellule et que la seconde condition est remplie (comparaison entre colonne "N" et "I" )
Cells(myRow, 14).Find(valeur).Select ' sélection de la cellule
Call alerte ' déclenche "ALERTE" si valeur vérifié
Call alerte_info ' déclenche info_bulle en fonction du type d'alerte
End If
End If
End Sub
voici la macro finale qui fonctionne très bien
merci pour tout les amis
Marsh Posté le 13-01-2019 à 00:53:15
Bonjour,
Je suis présentement entrain d’écrire un programme qui déclenche une alerte sous certaine conditions.
En effet, dans la colonne 14 ou ("N" ) il y a une condition "SI" qui est fonction de la date rentrée dans la colonne("I" )
Lorsque("N" ) et ("I" ) sont vérifiées je souhaiterais que la macro alerte() s'active
Le soucis c'est qu'avec le code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim O_Cell As Object
Dim valeur As String
If Target.Column = 14 Then
valeur = "*ROUGE*" 'valeur à chercher
Application.Goto Reference:="RDV" ' "RDV" est le nom de la zone de recherche
Set O_Cell = Selection.Find(valeur) ' recherche de la valeur
If Not O_Cell Is Nothing Then 'si l'objet O_Cell contient les coordonnées de la cellule
call alerte
O_Cell.Select ' sélection de la cellule
Else
Exit Sub
End If
End If
End Sub
La macro alerte ne s'active pas car la valeur de ("N" ) n'est pas vraiment modifiée comme le demande "target.", puisqu'elle répond uniquement à une condition.
Je souhaiterais savoir comment adapter mon code à la valeur affichée dans les cellules de la colonne ("N" ), c'est à dire modifiées uniquement en fonction de la fonction "SI" à l'intérieur de celle-ci et non manuellement comme propose le target.column ou target.adress
Le soucis c'est que lorsque j'enlève le target.column de mon code, la macro fait une boucle et n'arrive plus à s’arrêter.
Merci de bien vouloir me donner un coup de main, cela fait des heures que j'essaye de m'en sortir sans succès