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
| 'IL FAUT COCHER LA RÉFÉRENCE
'Microsoft Visual Basic for Application Extensibility
Dim Total As Double
Dim Totaux As Double
Sub TotalP()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim LineNum As Long
Dim NumLines As Long
Dim WS As Worksheet
Dim Rng As Range
Dim ProcName As String
Dim ProcKind As VBIDE.vbext_ProcKind
Set VBProj = ActiveWorkbook.VBProject
Set VBComp = VBProj.VBComponents("Module1")
Set CodeMod = VBComp.CodeModule
With CodeMod
LineNum = .CountOfDeclarationLines + 1
ProcName = .ProcOfLine(LineNum, ProcKind)
Totaux = 0
Do Until LineNum >= .CountOfLines
If Left(ProcName, 10) Like "SousTotalP" Then
Application.Run ProcName
Totaux = Totaux + Total
End If
LineNum = LineNum + .ProcCountLines(ProcName, ProcKind) + 1
ProcName = .ProcOfLine(LineNum, ProcKind)
Loop
End With
MsgBox "Totaux = " & Totaux
Set VBProj = Nothing
Set VBComp = Nothing
Set CodeMod = Nothing
End Sub
Function SousTotalP1() As Double
Dim Tablo As Variant, Totaux() As Double, somme As Double ', Total As Double
Dim TabloC As Variant, TabloD As Variant
Total = 0
Tablo = Array( _
101, 104, 105, 106, _
11, _
12, _
13, _
14)
For i = 0 To UBound(Tablo)
ReDim Preserve Totaux(i)
Totaux(i) = ResultPassif(CStr(Tablo(i)))
' Totaux(i) = CStr(Tablo(i))
Next i
For i = 0 To UBound(Totaux)
Total = Total + Totaux(i)
Next
SousTotalP1 = Total
MsgBox ("le total1 est : " & SousTotalP1)
End Function
Function SousTotalP2() As Double
Dim Tablo As Variant, Totaux() As Double, somme As Double ', Total As Double
Dim TabloC As Variant, TabloD As Variant
Total = 0
Tablo = Array( _
151, 153, 155, 157, 158)
For i = 0 To UBound(Tablo)
ReDim Preserve Totaux(i)
Totaux(i) = ResultPassif(CStr(Tablo(i)))
' Totaux(i) = (CStr(Tablo(i)))
Next i
For i = 0 To UBound(Totaux)
Total = Total + Totaux(i)
Next
SousTotalP2 = Total
MsgBox ("le total2 est : " & SousTotalP2)
End Function |
Partager