Macro qui ne fonctionne plus quand les valeurs sont issues d'une formule

Bonjour,

Je débute en VBA, et je n'arrive pas a résoudre un problème.

Je voudrais que quand la valeur "VRAI" est affectée dans une cellule de la colonne 2 cela ajoute la date dans colonne 3 et que cette date soit fixe (la fonction Aujoudhui() ne fonctionne pas car la date se remet à jour à l'ouverture du fichier).

le code ci dessous fonctionne bien a partir du moment ou "VRAI" est saisie directement, cependant si "vrai" est le résultat d'une formule cela ne marche plus.

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Columns(2)) Is Nothing Then

If Target.Value = "Vrai" Then Cells(Target.Row, Target.Column + 1) = Date

End If

End Sub

Merci d'avance pour votre aide.

Thierry

Bonjour,

En écrivant dans une cellule la formule :

=(1=1)

On voit apparaître "VRAI" sur un Excel en français. Pour autant, ce n'est pas tout à fait la valeur "stockée" dans la cellule, qui n'est pas un texte mais une valeur booléenne.

Avec VBA, on cherche donc la valeur True, (surtout, très important, sans les guillemets).

On peut donc écrire : If Target.Value = True Then ... ou plus simplement If Target Then .... Ce qui donne au final :

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Application.Intersect(Target, Columns(2)) Is Nothing Then
      If Target Then Cells(Target.Row, Target.Column + 1) = Date
   End If
End Sub

VBA fonctionne toujours en anglais, donc j'imagine que tu devrais chercher "TRUE" plutôt que "VRAI"

Bonjour,

C'était tout simple et je tournais en rond depuis plusieurs heures.

Un grand Merci à vous deux.

Bonjour,

C'était tout simple et je tournais en rond depuis plusieurs heures.

Un grand Merci à vous deux.

Plus simplement, "VRAI" (texte) est différent de VRAI (booléen).

Exemples :

=SI((1=1)="VRAI";"Ok";"Pas Ok")
=SI((1=1)=VRAI;"Ok";"Pas Ok")

Si la solution te convient, pense à valider le sujet !

Encore merci pour votre aide, mais j'ai toujours le problème.

Quand j'ai la valeur "faux" dans la colonne B et que celle-ci devient "vrai" suite au résultat de la formule le code ne marche pas.

Encore merci pour votre aide, mais j'ai toujours le problème.

Quand j'ai la valeur "faux" dans la colonne B et que celle-ci devient "vrai" suite au résultat de la formule le code ne marche pas.

La macro se déclenche suite à un changement effectué par l'utilisateur, dans une cellule de la colonne 2 (cette cellule est dénommée Target dans le code). Ainsi, un changement de valeur (résultat de formule) lié à une modification hors de cette plage ne déclenche pas l’exécution.

Rechercher des sujets similaires à "macro qui fonctionne quand valeurs issues formule"