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
Herdet
Bonjour Fred, Le problème est que la fonction =SI(ESTVIDE(Montant);... change tous les jours la date dans la cellule après chaque recalcul de la feuille. Si tu écris =SI(ESTVIDE(Montant);"-";UseFunction) ce sera exactement la même chose. Pour pallier ce problème, tu peux ajouter dans le code de la feuille la sub suivante qui écrira la date seule (Now affiche l'heure en plus) après chaque recalcul de la feuille :
Private Sub Worksheet_Calculate() ' à adapter pour une plage par For Each ...Next si nécessaire If [Montant].Value = "" Then [A1] = "-" Else [A1] = Date End Sub
Si la mise à jour doit se faire après chaque saisie dans la cellule Montant, il faut utiliser : Private Sub Worksheet_Change(ByVal Target As Range) If Target.AddressLocal = [Montant].AddressLocal Then If [Montant].Value = "" Then [A1] = "-" Else [A1] = Date End If End Sub
Cordialement Robert
"fred.41" a écrit dans le message de news: c6u7c3$js1$
bonsoir,
voilà ma question, j'ai sous un tableau excel classique une fonction comme cela : =SI(ESTVIDE(Montant);"-";AUJOURDHUI())
le pb c'est que la date se met à jour à chq ouverture du classeur (logique).
donc j'ai trouvé sur le net une fonction sous vba du type :
Sub UseFunction() [A1] = Now() 'ne change pas à chaque ouverture End Sub.
donc ma question comment je peux mettre ce sub avec la fonction classique que j'ai sur mon tableau.
si quelqu'un pourrait me conseiller et me donner un début de piste, j'en serai ravi.
merci
Bonjour Fred,
Le problème est que la fonction =SI(ESTVIDE(Montant);... change tous les
jours la date dans la cellule après chaque recalcul de la feuille.
Si tu écris =SI(ESTVIDE(Montant);"-";UseFunction) ce sera exactement la même
chose.
Pour pallier ce problème, tu peux ajouter dans le code de la feuille la sub
suivante qui écrira la date seule (Now affiche l'heure en plus) après chaque
recalcul de la feuille :
Private Sub Worksheet_Calculate()
' à adapter pour une plage par For Each ...Next si nécessaire
If [Montant].Value = "" Then [A1] = "-" Else [A1] = Date
End Sub
Si la mise à jour doit se faire après chaque saisie dans la cellule Montant,
il faut utiliser :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.AddressLocal = [Montant].AddressLocal Then
If [Montant].Value = "" Then [A1] = "-" Else [A1] = Date
End If
End Sub
Cordialement
Robert
"fred.41" <fred.41@wanadoo.fr> a écrit dans le message de news:
c6u7c3$js1$1@news-reader4.wanadoo.fr...
bonsoir,
voilà ma question, j'ai sous un tableau excel classique une fonction comme
cela :
=SI(ESTVIDE(Montant);"-";AUJOURDHUI())
le pb c'est que la date se met à jour à chq ouverture du classeur
(logique).
donc j'ai trouvé sur le net une fonction sous vba du type :
Sub UseFunction()
[A1] = Now() 'ne change pas à chaque ouverture
End Sub.
donc ma question comment je peux mettre ce sub avec la fonction classique
que j'ai sur mon tableau.
si quelqu'un pourrait me conseiller et me donner un début de piste, j'en
serai ravi.
Bonjour Fred, Le problème est que la fonction =SI(ESTVIDE(Montant);... change tous les jours la date dans la cellule après chaque recalcul de la feuille. Si tu écris =SI(ESTVIDE(Montant);"-";UseFunction) ce sera exactement la même chose. Pour pallier ce problème, tu peux ajouter dans le code de la feuille la sub suivante qui écrira la date seule (Now affiche l'heure en plus) après chaque recalcul de la feuille :
Private Sub Worksheet_Calculate() ' à adapter pour une plage par For Each ...Next si nécessaire If [Montant].Value = "" Then [A1] = "-" Else [A1] = Date End Sub
Si la mise à jour doit se faire après chaque saisie dans la cellule Montant, il faut utiliser : Private Sub Worksheet_Change(ByVal Target As Range) If Target.AddressLocal = [Montant].AddressLocal Then If [Montant].Value = "" Then [A1] = "-" Else [A1] = Date End If End Sub
Cordialement Robert
"fred.41" a écrit dans le message de news: c6u7c3$js1$
bonsoir,
voilà ma question, j'ai sous un tableau excel classique une fonction comme cela : =SI(ESTVIDE(Montant);"-";AUJOURDHUI())
le pb c'est que la date se met à jour à chq ouverture du classeur (logique).
donc j'ai trouvé sur le net une fonction sous vba du type :
Sub UseFunction() [A1] = Now() 'ne change pas à chaque ouverture End Sub.
donc ma question comment je peux mettre ce sub avec la fonction classique que j'ai sur mon tableau.
si quelqu'un pourrait me conseiller et me donner un début de piste, j'en serai ravi.