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
|
Public Sub SystemEcrireVarDansModule()
'Ecrire Variables Dans Module "SystemINIT_VariableSystem"
Dim ModuleNew As Object
Dim ModuleCode As Object
Dim LigneTest As Integer
Dim LigneTest2 As Integer
'controle si pas d'appel direct de SystemAjusteCodeTiroir (Test_OperationEnCours = True)
If Test_OperationEnCours = False Then Call SystemINIT_TabModuleTirroir
Set ModuleNew = ThisWorkbook.VBProject.VBComponents("JP_SystemINIT_VariableSystem")
Set ModuleCode = ModuleNew.CodeModule
ModuleCode.DeleteLines 1, ModuleCode.CountOfLines
ModuleCode.AddFromString "Option Explicit"
LigneTest = 3
'Parcourir tout le Module de Tirroir
Do Until TabModuleTirroir(LigneTest) = "M" And Right(Range("L" & LigneTest).Value, 9) <> "Variables"
'Parcourir tout le Tirroir
If TabModuleTirroir(LigneTest) = "T" Then
LigneTest = LigneTest + 1
'si le Tirroir n'est pas vide (tirroir à un titre)
If Range("M" & CStr(LigneTest - 1)).Value <> "" Then
'ecrire le Titre du Tiroir (dans le module code)
ModuleCode.AddFromString " "
ModuleCode.AddFromString "'" & Range("M" & CStr(LigneTest - 1)).Value
LigneTest2 = LigneTest
'jusqu'à la fin du Tirroir (début nouveau Tirroir ou Module)
Do Until TabModuleTirroir(LigneTest2) = "T" Or TabModuleTirroir(LigneTest2) = "M"
If Range("C" & CStr(LigneTest2)).Interior.Color = Range(Cell_ColorVariable).Interior.Color Then
If Range("C" & CStr(LigneTest2)).Value <> "" Then
If Range("I" & CStr(LigneTest2)).Value = "Const" Then
ModuleCode.AddFromString "Public Const Cell_" & Range("C" & CStr(LigneTest2)).Value & " = " & Chr(34) & "K" & LigneTest2 & Chr(34)
End If
End If
End If
LigneTest2 = LigneTest2 + 1
Loop
End If
End If
If Range("C" & CStr(LigneTest)).Interior.Color = Range(Cell_ColorVariable).Interior.Color Then
If Range("C" & CStr(LigneTest)).Value <> "" Then
ModuleCode.AddFromString "Public " & Range("C" & CStr(LigneTest)).Value & " As " & Range("J" & CStr(LigneTest)).Value
End If
End If
LigneTest = LigneTest + 1
Loop
'ligne vide (espace vertical)
ModuleCode.AddFromString " "
'titre de la function
ModuleCode.AddFromString "Public Function SystemINIT_VariableSystem()"
'ligne de code de la function
LigneFunction = ModuleCode.ProcBodyLine("SystemINIT_VariableSystem", vbext_pk_Proc) + 1
ModuleCode.InsertLines LigneFunction, " 'Détermine les variables adresse de cellule": LigneFunction = LigneFunction + 1
ModuleCode.InsertLines LigneFunction, " '==========================================": LigneFunction = LigneFunction + 1
LigneTest = 3
Do Until TabModuleTirroir(LigneTest) = "M" And Right(Range("L" & LigneTest).Value, 9) <> "Variables"
If TabModuleTirroir(LigneTest) = "T" Then
If Range("C" & CStr(LigneTest)).Value <> "" Then
ModuleCode.InsertLines LigneFunction, " ": LigneFunction = LigneFunction + 1
ModuleCode.InsertLines LigneFunction, " '" & Range("C" & CStr(LigneTest)).Value: LigneFunction = LigneFunction + 1
End If
End If
If Range("C" & CStr(LigneTest)).Interior.Color = Range(Cell_ColorVariable).Interior.Color Then
If Range("C" & CStr(LigneTest)).Value <> "" Then
If Range("I" & CStr(LigneTest)).Value = "Const" Then
ModuleCode.InsertLines LigneFunction, " " & Range("C" & CStr(LigneTest)).Value & _
" = Sheets(" & Chr(34) & "SYSTEM" & Chr(34) & ").Range(Cell_" & Range("C" & CStr(LigneTest)).Value & ").Value"
LigneFunction = LigneFunction + 1
End If
End If
End If
LigneTest = LigneTest + 1
Loop
'fin de la function
ModuleCode.InsertLines LigneFunction, "End Function"
Range("A1").Select
End Sub |
Partager