1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| Public Sub remp()
Debug.Print "Début du code à " & VBA.Time & vbCrLf
'feuille sur laquelle on travaille
Set wsM = ThisWorkbook.Worksheets("FED MODEL")
'plage avec la valeur de Y2PE
Set rgY2PE = wsM.Range("D2")
'avoir la taille des tableaux
DerniereLigne = Range("D1").End(xlDown).Row
'création du vecteur de date nettoyé
'Remplacement des valeurs manquantes de Y2 PE RATIO par 0
'On met le tableau Y2 PE dans le tableau vY2PE
i = 0
ReDim vY2PE(i)
For i = 0 To DerniereLigne
ReDim Preserve vY2PE(i) 'preserv: sert à redimensionner le vecteur et à garder les valeurs qui étaient dedans
vY2PE(i) = rgY2PE(i + 1)
Next i
'choix de la méthode de remplacement
'Choix de la méthode
j = InputBox("Tapez 1 pour remplacer par 0, 2 pour remplacer par la valeur précédente, et 3 pour interpoler", "Méthode de remplacement", 1)
Select Case j
Case 1
vRempZ = fnZero(vY2PE)
Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempZ), 5)).Value = Application.Transpose(vRempZ)
Case 2
vRempP = fnPrevious(vY2PE)
Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempP), 5)).Value = Application.Transpose(vRempP)
Case Else
vRempI = fnInter(vY2PE)
Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempI), 5)).Value = Application.Transpose(vRempI)
End Select
End Sub |