Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction now. (remplace et annule mon post).

3 réponses
Avatar
fred.41
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

3 réponses

Avatar
LeSteph
En imaginant que tu souhaites mettre la date
dans la colonne juste après montant (plage nommée)[impérativement voir
Définir un nom]
soit dans l'exemple c.Column +1
Apacer dans lecode propriété de Worksheet
dans VBA Explorateur de projet tu dblclic sur
le nom de la feille sohaitée puis tu clique sur le
déroulant hautgauche (général) tu choisiss worksheet à la place
du module et remplace l'évènement proposé par défaut pour
Public Sub Worksheet par Calculate
ainsi:

Private Sub Worksheet_Calculate()
For Each c In Range("Montant").Cells

If c.Value = "" Then

Else
If Cells(c.Row, c.Column + 1) = "-" Then
Cells(c.Row, c.Column + 1) = Now
Else
End If
End If
Next
End Sub

LeSteph

"fred.41" a écrit dans le message de
news:c6u7jl$qtc$
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





Avatar
fred.publicite
merci LeSteph pour cette réponse complète, trop même pour mes connaissances
sur vbapplication, mais je vais me creuser la tête :)

sinon la date est avant la colonne montant, toutes sont nommées correctement
(en principe)

je vais tester ta procédure dans la journée,

merci en tout cas

bonne semaine

"LeSteph" a écrit dans le message de news:
4092c5a7$0$8641$

En imaginant que tu souhaites mettre la date
dans la colonne juste après montant (plage nommée)[impérativement voir
Définir un nom]
soit dans l'exemple c.Column +1
Apacer dans lecode propriété de Worksheet
dans VBA Explorateur de projet tu dblclic sur
le nom de la feille sohaitée puis tu clique sur le
déroulant hautgauche (général) tu choisiss worksheet à la place
du module et remplace l'évènement proposé par défaut pour
Public Sub Worksheet par Calculate
ainsi:

Private Sub Worksheet_Calculate()
For Each c In Range("Montant").Cells

If c.Value = "" Then

Else
If Cells(c.Row, c.Column + 1) = "-" Then
Cells(c.Row, c.Column + 1) = Now
Else
End If
End If
Next
End Sub

LeSteph

"fred.41" a écrit dans le message de
news:c6u7jl$qtc$
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









Avatar
LeSteph
Fred a écrit ."sinon la date est avant la colonne montant "

Ok! pas de pb tu mets
column-1
au lieu de
column+1

LeSteph
http://cocosteph.free.fr





"fred.publicite" a écrit dans le message de
news:c75bge$hd5$
merci LeSteph pour cette réponse complète, trop même pour mes
connaissances

sur vbapplication, mais je vais me creuser la tête :)

sinon la date est avant la colonne montant, toutes sont nommées
correctement

(en principe)

je vais tester ta procédure dans la journée,

merci en tout cas

bonne semaine

"LeSteph" a écrit dans le message de news:
4092c5a7$0$8641$

En imaginant que tu souhaites mettre la date
dans la colonne juste après montant (plage nommée)[impérativement voir
Définir un nom]
soit dans l'exemple c.Column +1
Apacer dans lecode propriété de Worksheet
dans VBA Explorateur de projet tu dblclic sur
le nom de la feille sohaitée puis tu clique sur le
déroulant hautgauche (général) tu choisiss worksheet à la place
du module et remplace l'évènement proposé par défaut pour
Public Sub Worksheet par Calculate
ainsi:

Private Sub Worksheet_Calculate()
For Each c In Range("Montant").Cells

If c.Value = "" Then

Else
If Cells(c.Row, c.Column + 1) = "-" Then
Cells(c.Row, c.Column + 1) = Now
Else
End If
End If
Next
End Sub

LeSteph

"fred.41" a écrit dans le message de
news:c6u7jl$qtc$
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