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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| Public valeurAnnee As Long, valeurMois As String, valeurPret As String, valeurInfo As String
Public feuille As String, derniereLigne As Long
Public deplacementMois As Long, deplacementAnnee As Long
Public valeurRecherchee As Double
Function informationsPret() As Double
Application.Volatile
Call renseignementColonne
Call rechercheValeurPret
informationsPret = valeurRecherchee
End Function
Sub renseignementColonne()
Dim numeroColonne As Long
Dim numeroLigne As Long
Dim lettreColonneValeur As String
Dim plageAnnee As Range
Dim plageMois As Range
numeroColonne = ActiveCell.Column
numeroLigne = ActiveCell.Row
lettreColonneValeur = lettreColonne(numeroColonne)
Set plageAnnee = Range(lettreColonneValeur & 12)
Set plageMois = Range(lettreColonneValeur & 13)
valeurAnnee = plageAnnee.MergeArea.Cells(1, 1).Value
valeurMois = plageMois.MergeArea.Cells(1, 1).Value
valeurInfo = Range(lettreColonneValeur & 14).Value
valeurPret = Range("A" & numeroLigne).Value
feuille = valeurPret
'MsgBox (valeurAnnee & valeurMois & valeurPret)
End Sub
Function lettreColonne(numeroColonneAConvertir)
lettreColonne = Split(Cells(1, numeroColonneAConvertir).Address, "$")(1)
End Function
Sub rechercheValeurPret()
Dim colonneValeur As String
Dim plageRechercheValeurPret As String
Worksheets(feuille).Activate
If valeurInfo = " Remboursement Capital" Then
colonneValeur = "C"
deplacementMois = 6
deplacementAnnee = 7
ElseIf valeurInfo = " Intérêts" Then
colonneValeur = "D"
deplacementMois = 5
deplacementAnnee = 6
ElseIf valeurInfo = " Capital dû aprés échéance" Then
colonneValeur = "F"
deplacementMois = 3
deplacementAnnee = 4
End If
Call compteurLignes(feuille, "A")
plageRechercheValeurPret = colonneValeur & "12:L" & derniereLigne
Range(plageRechercheValeurPret).Select
For Each Cell In Selection
Cell.Select
If ActiveCell.Offset(0, deplacementAnnee).Value = valeurAnnee And ActiveCell.Offset(0, deplacementMois).Value = valeurMois Then
valeurRecherchee = ActiveCell.Value
Exit For
End If
Next Cell
End Sub
Sub compteurLignes(feuilleCompteur As String, colonneCompteur As String)
derniereLigne = 0
Worksheets(feuilleCompteur).Activate
Range(colonneCompteur & Rows.Count).End(xlUp).Select
derniereLigne = Range(colonneCompteur & Rows.Count).End(xlUp).Row
End Sub |
Partager