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 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296
| Private Sub MAJfeuille(arg As String, nbenveloppe As Integer, voie As String)
Dim Configuration As String
Dim modele As String
Dim Valeurs As String
Dim lignec As Integer
Dim code As String
Dim l As Integer
Dim nbligne As Integer
Dim i As Integer
Dim endtab As Integer
Dim group As String
Dim nbcomp As Integer
Dim j As Integer
Dim comp1 As String
Dim lignev As Integer
Dim colv As Integer
Dim lignem As Integer
Dim colm As Integer
Dim courbe As String
Dim m As Integer
Dim nbdi As Integer
Dim r As Integer
Dim l1 As Integer
Dim l2 As Integer
Dim c1 As Integer
Dim nbe As Integer
Dim marange As Range
Dim pressionE As Variant
Dim testcomp As Integer
Dim enceinte As String
Call clear_files(2)
'on commence d'abord par récupérer le code correspondant à la config choisie)
Configuration = "Configuration"
modele = "Modèle"
Valeurs = "Valeurs"
lignec = LookForRow(3, Configuration, arg)
c1 = LookForColumn(1, Configuration, "code macro correspondant")
code = Worksheets(Configuration).Cells(lignec, c1).Value
'Avec ce code on repère la ligne de début du cas
l = LookForColumn(1, Configuration, "Code Cas")
lignec = LookForRow(l, Configuration, code)
c1 = LookForColumn(1, Configuration, "Configuration cas")
TextBox1.Value = Worksheets(Configuration).Cells(lignec, c1).Value
c1 = LookForColumn(1, Configuration, "Brèche")
'on indique s'il y a une breche pour le calcul du débit total (4/4 ou 3/4)
Worksheets(modele).Cells(8, 6).Value = Worksheets(Configuration).Cells(lignec, c1).Value
c1 = LookForColumn(1, Configuration, "Min/Max")
Worksheets(modele).Cells(9, 6).Value = Worksheets(Configuration).Cells(lignec, c1).Value
'on stocke le type de pression enceinte choisie (user defined ou normal)
l1 = LookForRow(1, modele, "Pression Enceinte")
enceinte = Worksheets(modele).Cells(l1 - 1, 2).Value
pressionE = Worksheets(modele).Cells(l1, 2).Value
'on regarde avec des if successifs si le cas a differentes voies (resp enveloppe) et quelle voie on doit afficher
c1 = LookForColumn(1, Configuration, "Differentes voies")
l1 = LookForRow(1, modele, "Nom réseau")
l2 = LookForRow(1, modele, "Voie")
If Worksheets(Configuration).Cells(lignec, c1).Value = "oui" Then
Worksheets(modele).Cells(l2, 2).Value = "oui"
l = LookForColumn(1, Configuration, "Nb voie")
lignec = LookForRow1(l, lignec, Configuration, voie)
c1 = LookForColumn(1, Configuration, "Nom réseau")
Worksheets(modele).Cells(l1, 2).Value = Worksheets(Configuration).Cells(lignec, c1).Value
Set marange = Worksheets(modele).Range(Worksheets(modele).Cells(2, 53), Worksheets(modele).Cells(3, 53))
ComboBox4.ListFillRange = marange.Address
ComboBox4.Value = voie
Else
Worksheets(modele).Cells(l2, 2).Value = "non"
c1 = LookForColumn(1, Configuration, "Nb voie")
ComboBox4.ListFillRange = ""
ComboBox4.Value = Worksheets(Configuration).Cells(lignec, c1).Value
c1 = LookForColumn(1, Configuration, "Nom réseau")
Worksheets(modele).Cells(l1, 2).Value = Worksheets(Configuration).Cells(lignec, c1).Value
End If
'On teste si le cas est un cas enveloppe
c1 = LookForColumn(1, Configuration, "Enveloppe")
l1 = LookForRow(1, modele, "Cas enveloppe")
If Worksheets(Configuration).Cells(lignec, c1).Value = "oui" Then
Worksheets(modele).Cells(l1, 2).Value = "oui"
nbligne = CountColumnItems2(lignec, l, Configuration)
l = LookForColumn(1, Configuration, "n° Enveloppe")
nbe = CountColumnItems3(lignec, l, Configuration, nbligne)
Worksheets(modele).Cells(l1 + 1, 2).Value = nbe
Set marange = Worksheets(modele).Range(Worksheets(modele).Cells(2, 52), Worksheets(modele).Cells(2 + nbe - 1, 52))
ComboBox3.ListFillRange = marange.Address
lignec = LookForRow1(l, lignec, Configuration, "e" & nbenveloppe)
ComboBox3.Value = nbenveloppe
Else:
Worksheets(modele).Cells(l1, 2).Value = "non"
nbe = 0
Worksheets(modele).Cells(l1 + 1, 2).Value = nbe
ComboBox3.ListFillRange = ""
ComboBox3.Value = ""
End If
'on compte le nombre de ligne pour ce cas
nbligne = CountColumnItems2(lignec, l, Configuration)
'on compte le nombre de colonne du tableau pour faire la boucle
endtab = CountRowItems(1, l, 1, Configuration) + l
'On lance une boucle sur l'ensemble des colonnes du tableau
'A chaque nouvelle cellule il teste la valeur
'pour ensuite recopier dans la feuille modele les valeurs appropriées à chaque type de composant
'Pour cela, il lit pour la config donnée et le groupe de composant choisi le type inscrit
'(ex:BF_ISBP_Equilibré_Max)
'puis il va chercher les valeurs correspondantes dans la feuille valeurs et les recopie dans la feuille modele
For i = l To endtab
group = Worksheets(Configuration).Cells(1, i).Value
Select Case group
Case "Aspiration"
nbcomp = CountColumnItems(lignec, i, Configuration)
colv = LookForColumn(1, Valeurs, "Aspiration")
lignem = LookForRow(1, modele, "Aspiration")
If nbcomp > 0 Then
For j = 1 To nbcomp
comp1 = Worksheets(Configuration).Cells(lignec + j - 1, i).Value
testcomp = InStr(1, comp1, "PTR", 1)
If testcomp <> 0 Then
lignev = LookForRow(colv, Valeurs, comp1)
Worksheets(modele).Cells(lignem, 3 + 2 * (j - 1)).Value = comp1 'copie du nom du composant
Worksheets(modele).Cells(lignem + 1, 3 + 2 * (j - 1)).Value = Worksheets(Configuration).Cells(lignec + j - 1, i + 1).Value 'copie de l'ID
Worksheets(modele).Cells(lignem + 2, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 1).Value
Worksheets(modele).Cells(lignem + 3, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 2).Value
Worksheets(modele).Cells(lignem + 4, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 3).Value
Else
lignev = LookForRow(colv, Valeurs, comp1)
Worksheets(modele).Cells(lignem, 3 + 2 * (j - 1)).Value = comp1 'copie du nom du composant
Worksheets(modele).Cells(lignem + 1, 3 + 2 * (j - 1)).Value = Worksheets(Configuration).Cells(lignec + j - 1, i + 1).Value 'copie de l'ID
Worksheets(modele).Cells(lignem + 2, 3 + 2 * (j - 1)).Value = pressionE
Worksheets(modele).Cells(lignem + 3, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 2).Value
Worksheets(modele).Cells(lignem + 4, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 3).Value
End If
Next j
End If
Case "Pompes"
nbcomp = CountColumnItems(lignec, i, Configuration)
colv = LookForColumn(1, Valeurs, "Pompes")
lignem = LookForRow(1, modele, "Pompes")
If nbcomp > 0 Then
For j = 1 To nbcomp
comp1 = Worksheets(Configuration).Cells(lignec + j - 1, i).Value
courbe = Worksheets(Configuration).Cells(lignec + j - 1, i + 2).Value
lignev = LookForRow(colv, Valeurs, courbe)
Worksheets(modele).Cells(lignem, 3 + 2 * (j - 1)).Value = comp1 'copie du nom du comp1osant
Worksheets(modele).Cells(lignem + 1, 3 + 2 * (j - 1)).Value = Worksheets(Configuration).Cells(lignec + j - 1, i + 1).Value 'copie de l'ID
Worksheets(modele).Cells(lignem - 1, 3 + 2 * (j - 1)).Value = courbe
Worksheets(modele).Cells(lignem + 4, 3 + 2 * (j - 1)).Value = Worksheets(Configuration).Cells(lignec + j - 1, i + 3).Value
Worksheets(modele).Cells(lignem + 2, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 3).Value
Worksheets(modele).Cells(lignem + 3, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 2).Value
Next j
End If
Case "Restricteurs"
nbcomp = CountColumnItems3(lignec, i, Configuration, nbligne)
colv = LookForColumn(1, Valeurs, "Restricteurs")
lignem = LookForRow(1, modele, "Restricteurs")
If nbcomp > 0 Then
m = 1
For j = 1 To nbligne
If Worksheets(Configuration).Cells(lignec + j - 1, i).Value <> "" Then
comp1 = Worksheets(Configuration).Cells(lignec + j - 1, i).Value
lignev = LookForRow(colv, Valeurs, comp1)
nbdi = CountColumnItems2(lignec + j - 1, i, Configuration)
If nbdi > 4 Then nbdi = CountColumnItems(lignec + j - 1, i + 1, Configuration)
Worksheets(modele).Cells(lignem, 3 + 2 * (m - 1)).Value = comp1 'copie du nom du composant
For r = 1 To nbdi
Worksheets(modele).Cells(lignem + r, 3 + 2 * (m - 1)).Value = Worksheets(Valeurs).Cells(lignev + r - 1, colv + 1).Value 'copie du nom DI
Worksheets(modele).Cells(lignem + r, 4 + 2 * (m - 1)).Value = Worksheets(Valeurs).Cells(lignev + r - 1, colv + 2).Value 'copie de la valeur
Worksheets(Valeurs).Cells(lignev + r - 1, colv + 3).Value = Worksheets(Configuration).Cells(lignec + j + r - 2, i + 2).Value
'ici, compte tenu de la place disponible, l'id de flowmaster n'est pas indiqué sur la feuille modele
'mais on l'inscrit sur la colonne D (cachée) de la feuille valeurs( a coté des valeurs)
Next r
m = m + 1
End If
Next j
End If
Case "Refoulement"
nbcomp = CountColumnItems(lignec, i, Configuration)
colv = LookForColumn(1, Valeurs, "Refoulement")
lignem = LookForRow(1, modele, "Refoulement")
If nbcomp > 0 Then
For j = 1 To nbcomp
comp1 = Worksheets(Configuration).Cells(lignec + j - 1, i).Value
testcomp = InStr(1, comp1, "PTR", 1)
If testcomp <> 0 Then
lignev = LookForRow(colv, Valeurs, comp1)
Worksheets(modele).Cells(lignem, 3 + 2 * (j - 1)).Value = comp1 'copie du nom du composant
Worksheets(modele).Cells(lignem + 1, 3 + 2 * (j - 1)).Value = Worksheets(Configuration).Cells(lignec + j - 1, i + 1).Value 'copie de l'ID
Worksheets(modele).Cells(lignem + 2, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 1).Value
Worksheets(modele).Cells(lignem + 3, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 2).Value
Else
lignev = LookForRow(colv, Valeurs, comp1)
Worksheets(modele).Cells(lignem, 3 + 2 * (j - 1)).Value = comp1 'copie du nom du composant
Worksheets(modele).Cells(lignem + 1, 3 + 2 * (j - 1)).Value = Worksheets(Configuration).Cells(lignec + j - 1, i + 1).Value 'copie de l'ID
Worksheets(modele).Cells(lignem + 2, 3 + 2 * (j - 1)).Value = pressionE
Worksheets(modele).Cells(lignem + 3, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 2).Value
End If
Next j
End If
Case "EAS"
nbcomp = CountColumnItems(lignec, i, Configuration)
colv = LookForColumn(1, Valeurs, "EAS")
lignem = LookForRow(1, modele, "EAS")
If nbcomp > 0 Then
For j = 1 To nbcomp
comp1 = Worksheets(Configuration).Cells(lignec + j - 1, i).Value
lignev = LookForRow(colv, Valeurs, comp1)
Worksheets(modele).Cells(lignem, 3 + 2 * (j - 1)).Value = comp1
Worksheets(modele).Cells(lignem + 1, 3 + 2 * (j - 1)).Value = Worksheets(Configuration).Cells(lignec + j - 1, i + 1).Value
Worksheets(modele).Cells(lignem + 2, 3 + 2 * (j - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 1).Value
Next j
End If
Case "Pression"
nbcomp = CountColumnItems3(lignec, i, Configuration, nbligne)
colv = LookForColumn(1, Valeurs, "Pression")
lignem = LookForRow(1, modele, "Pression Primaire")
If nbcomp > 0 Then
m = 1
For j = 1 To nbligne
If Worksheets(Configuration).Cells(lignec + j - 1, i).Value <> "" Then
comp1 = Worksheets(Configuration).Cells(lignec + j - 1, i).Value
lignev = LookForRow(colv, Valeurs, comp1)
nbdi = CountColumnItems2(lignec + j - 1, i, Configuration)
If nbdi > 4 Then nbdi = CountColumnItems(lignec + j - 1, i + 1, Configuration)
Worksheets(modele).Cells(lignem, 3 + (m - 1)).Value = comp1 'copie du nom du composant
Worksheets(modele).Cells(lignem + 1, 3 + (m - 1)).Value = Worksheets(Valeurs).Cells(lignev, colv + 5).Value
For r = 1 To nbdi
Worksheets(Valeurs).Cells(lignev + r - 1, colv + 4).Value = Worksheets(Configuration).Cells(lignec + j + r - 2, i + 2).Value
'ici, compte tenu de la place disponible, l'id de flowmaster n'est pas indiqué sur la feuille modele
'mais on l'inscrit sur la colonne ID de la feuille valeurs( a coté des valeurs)
Next r
m = m + 1
End If
Next j
End If
Case "Température"
colv = LookForColumn(1, Valeurs, "Température")
lignem = LookForRow(1, modele, "Ambient temperature")
If Worksheets(modele).Cells(lignem - 1, 2) = "Normal" Then
If Worksheets(Configuration).Cells(lignec, i).Value <> "" Then
comp1 = Worksheets(Configuration).Cells(lignec, i).Value
lignev = LookForRow(colv, Valeurs, comp1)
Worksheets(modele).Cells(lignem, 2).Value = Worksheets(Valeurs).Cells(lignev, colv + 1).Value
End If
End If
Case "Pression Enceinte"
colv = LookForColumn(1, Valeurs, "Pression Enceinte")
lignem = LookForRow(1, modele, "Pression Enceinte")
If Worksheets(modele).Cells(lignem - 1, 2) = "Normal" Then
If Worksheets(Configuration).Cells(lignec, i).Value <> "" Then
comp1 = Worksheets(Configuration).Cells(lignec, i).Value
lignev = LookForRow(colv, Valeurs, comp1)
Worksheets(modele).Cells(lignem, 2).Value = Worksheets(Valeurs).Cells(lignev, colv + 1).Value
End If
End If
End Select
Next i
End Sub |