1 pièce(s) jointe(s)
Import de date de excel vers VBA
Bonjour,
J'aimerai pouvoir modifier une date de calcul sans avoir à modifier mon code vba (dans lequel j'ai saisit une date en dur)
Je m'explique, imaginons que j'ai 2 colonnes:
en colonne N, il y a une date
en colonne O, il y a une fonction SI, qui me dit si la date est inférieur à la date d'aujourd'hui, (en affichant "MATURED" ou "ALIVE")
N = date: yyyy/mm/dd
O = If(A<="asof_date(", "MATURED","ALIVE") <= je le fait en VBA
Dans mon code VBA, j'ai saisit en dur une date (ex:31/12/2013).
Mais ce que j'aimerai c'est pouvoir saisir une date directement dans excel (ex: en lui attribuant le nom "asof_date)
- le code vba irait voir dans la cellule "asof_date" la date saisit, et la mettrait directement dans le formule de la colonne O.
ça marche en excel, mais en VBA ça ne fonctionne, ça me met que toutes mes positions sont maturées, même celles qui sont en vie (ou inversement).
Avec la macro ci-dessous: ça marche, mais je voudrais pouvoir saisir la date dans mon excel, dans la cellule que je nomme "asof_date": (au lieu d'avoir une date en dur dans mon vba)
Code:
1 2 3 4 5 6 7 8 9 10 11
| Sheets("sheet1").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-2]<=""2013/12/31"", ""MATURED"",""ALIVE"")"
Selection.Copy
Range("O2").Select
Selection.Copy
Range("N2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste |
Pouvez vous m'aider, voici ma tentative en vba ?
Sub AAA()
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Dim asof_date As Date
Sheets("to automate").Select
'ancienne formule
''ActiveCell.FormulaR1C1 = "=IF(RC[-2]<=""2013/12/31"", ""MATURED"",""ALIVE"")"
Range("L2").Select
Application.Goto Reference:="asof_date"
Range("O2").Select
strValue = "[AsOfDate].[AsOfDate].&[" & Format(asof_date, "yyyymmdd") & "]"
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]<""asof_date"", ""MATURED"",""ALIVE"")"
Range("O2").Select
Selection.Copy
Range("N2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste
End Sub |
Merci de votre aide
vincent