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 | 
Partager