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 113 114 115 116 117 118 119 120 121 122 123 124
| Option Explicit
Dim J As Long, Nblg As Long, Ligne As Long
Dim F1 As Worksheet, F4 As Worksheet, F5 As Worksheet, F6 As Worksheet
Dim Cel As Range
Sub inventaire()
Dim Lgdep As Long
Dim libelle
Dim I As Integer
Application.ScreenUpdating = False
libelle = Array("GOVERNMENT BONDS")
Set F1 = Sheets("Inventaire")
Set F4 = Sheets("CRDB")
Set F5 = Sheets("Openfonds")
Set F6 = Sheets("OPCVM")
' Si de lignes filtrées on les affiche. en fait le code ci dessous enlève les filtres mais il ne les remet pas. Peux tu m'aider à l'améliorer
With F1
If .FilterMode = True Then .ShowAllData
End With
With F4
If .FilterMode = True Then .ShowAllData
End With
With F5
If .FilterMode = True Then .ShowAllData
End With
With F6
If .FilterMode = True Then .ShowAllData
End With
With F1.Range("A4:T336")
.ClearContents
.Font.Size = 10
.Font.Bold = False
End With
F1.Range("V4:W1000").ClearContents
Ligne = 5
' classement des obligations d'état
F1.Range("B" & Ligne) = "EMPRUNT D'ETAT EUROS"
Range("B" & Ligne).Font.Bold = True
Ligne = Ligne + 1
libelle = Array("Government bonds")
Lgdep = Ligne + 1
For J = 2 To F5.Range("J" & Rows.Count).End(xlUp).Row
'If UCase(Trim(F5.Range("P" & J))) <> UCase("*indx*") Then
Set Cel = F4.Columns("AD").Find(what:=F5.Range("J" & J), LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
If UCase(Trim(F4.Range("C" & Cel.Row))) = UCase(libelle(I)) And _
UCase(F4.Range("CL" & Cel.Row)) Like "ZONE EUROPE*" And UCase(F4.Range("BE" & Cel.Row)) = "N" Then
F1.Range("A" & Ligne) = F5.Range("J" & J)
F1.Range("J" & Ligne) = (F5.Range("Z" & J) / (F5.Range("Q" & J)) * 100)
F1.Range("C" & Ligne) = F4.Range("R" & Cel.Row)
F1.Range("D" & Ligne) = F4.Range("BS" & Cel.Row)
F1.Range("O" & Ligne) = (F5.Range("AD" & J)) - (F5.Range("Y" & J))
Set Cel = F5.Columns("J").Find(what:=F1.Range("A" & J), LookIn:=xlValues, lookat:=xlWhole)
F1.Range("B" & Ligne) = F5.Range("P" & J)
F1.Range("E" & Ligne) = F5.Range("AG" & J)
F1.Range("F" & Ligne) = F5.Range("AH" & J)
F1.Range("I" & Ligne) = F5.Range("Q" & J)
F1.Range("K" & Ligne) = (F5.Range("AD" & J) + F5.Range("AC" & J)) / (F5.Range("Q" & J)) * 100
F1.Range("L" & Ligne) = F5.Range("Z" & J)
F1.Range("M" & Ligne) = F5.Range("AD" & J) - F5.Range("AC" & J)
F1.Range("N" & Ligne) = F5.Range("AC" & J)
F1.Range("H" & Ligne) = F5.Range("AB" & J)
F1.Range("G" & Ligne) = Round((F5.Range("AH" & J)) / ((1 + (F5.Range("AG" & J)))), 2)
F1.Range("T" & Ligne) = "EMPRUNT D'ETAT"
F1.Range("V" & Ligne) = F5.Range("Y" & J)
F1.Range("W" & Ligne) = F5.Range("AD" & J) + F5.Range("AC" & J)
F1.Range("P" & Ligne) = F5.Range("AB" & J) + F5.Range("Z" & J)
F1.Range("Q" & Ligne) = F5.Range("AA" & J)
F1.Range("R" & Ligne) = ((F5.Range("Z" & J)) - (F5.Range("AC" & J)) - (F5.Range("AA" & J))) / ((Application.Sum((F5.Range("Z2").EntireColumn)) + (Application.Sum((F5.Range("AC2").EntireColumn)) + Application.Sum((F5.Range("AA2").EntireColumn)))))
F1.Range("S" & Ligne) = ((F5.Range("AD" & J)) / ((Application.Sum((F5.Range("AD2").EntireColumn)))))
Ligne = Ligne + 1
' End If
End If
End If
Next J
Ligne = Ligne + 1
F1.Range("B" & Ligne) = "Sous total BBB"
F1.Range("H" & Ligne) = Application.SumIf(Range("C" & Lgdep & ":C" & Ligne), "BBB*", Range("H" & Lgdep & ":H" & Ligne))
F1.Range("I" & Ligne) = Application.SumIf(Range("C" & Lgdep & ":C" & Ligne), "BBB*", Range("I" & Lgdep & ":I" & Ligne))
Ligne = Ligne + 1
F1.Range("B" & Ligne) = "Sous total A"
F1.Range("H" & Ligne) = Application.SumIf(Range("C" & Lgdep & ":C" & Ligne), "A", Range("H" & Lgdep & ":H" & Ligne))
F1.Range("I" & Ligne) = Application.SumIf(Range("C" & Lgdep & ":C" & Ligne), "A*", Range("I" & Lgdep & ":I" & Ligne))
Ligne = Ligne + 1
F1.Range("B" & Ligne) = "Sous total AA"
F1.Range("H" & Ligne) = Application.SumIf(Range("C" & Lgdep & ":C" & Ligne), "AA*", Range("H" & Lgdep & ":H" & Ligne))
F1.Range("I" & Ligne) = Application.SumIf(Range("C" & Lgdep & ":C" & Ligne), "AA*", Range("I" & Lgdep & ":I" & Ligne))
Ligne = Ligne + 1
F1.Range("B" & Ligne) = "Sous total AAA"
F1.Range("H" & Ligne) = Application.SumIf(Range("C" & Lgdep & ":C" & Ligne), "AAA*", Range("H" & Lgdep & ":H" & Ligne))
F1.Range("I" & Ligne) = Application.SumIf(Range("C" & Lgdep & ":C" & Ligne), "AAA*", Range("I" & Lgdep & ":I" & Ligne))
Ligne = Ligne + 1
'le total des BBB ne prend pas le montant de la permière ligne
With F1.Range("B" & Ligne)
.Value = "TOTAL EMPRUNT D'ETAT EUROS"
.Font.Bold = True
End With
Ligne = Ligne + 2 |
Partager