IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA _ Appel à une cellule (0;0)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut VBA _ Appel à une cellule (0;0)
    Bonjour,

    Je souhaite modéliser un angle de bâtiment sur Excel composé de divers matériaux. Pour cela, je discrétise la composition de mon mur mais avant tout je dois le "dessiner". Afin de procéder à une automatisation, je souhaitais utiliser des macros. Pour ne pas que le code soit trop long, j'ai pensé mettre des coefficients =1 ou = 0 selon si j'ai 1 matériau, 2, 3 jusqu'à 10.
    Je suis débutante en VBA, j'y travaille seulement depuis 2 jours donc il est possible que je ne pense pas à la bonne solution.
    L'erreur détectée dans mon code est due au fait que je fais appel à une cellule qui a pour coordonnées (ligne 0 ; colonne 0). Comment puis-je résoudre ce problème ?
    Je vous joint le code afin que vous pussiez réellement comprendre le problème et je reste à disposition pour toutes les questions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    Sub ESSAI()
     
        Ep1 = Excel.Range("Ep_1").Value
        Ep2 = Excel.Range("Ep_2").Value
        Ep3 = Excel.Range("Ep_3").Value
        Ep4 = Excel.Range("Ep_4").Value
        Ep5 = Excel.Range("Ep_5").Value
        Ep6 = Excel.Range("Ep_6").Value
        Ep7 = Excel.Range("Ep_7").Value
        Ep8 = Excel.Range("Ep_8").Value
        Ep9 = Excel.Range("Ep_9").Value
        Ep10 = Excel.Range("Ep_10").Value
     
        pas = Excel.Range("pas").Value
        Debord = Excel.Range("Débord").Value
     
        DessDeb = Debord / pas + 1
        Dess1 = Ep1 / pas
        Dess2 = Ep2 / pas
        Dess3 = Ep3 / pas
        Dess4 = Ep4 / pas
        Dess5 = Ep5 / pas
        Dess6 = Ep6 / pas
        Dess7 = Ep7 / pas
        Dess8 = Ep8 / pas
        Dess9 = Ep9 / pas
        Dess10 = Ep10 / pas
     
        C1 = 1
        C2 = 1
        C3 = 1
        C4 = 1
        C5 = 1
        C6 = 1
        C7 = 1
        C8 = 1
        C9 = 1
        C10 = 1
     
        If Ep1 = "" Then
            MsgBox "Entrez les données sur les matériaux"
            C1 = 0
            C2 = 0
            C3 = 0
            C4 = 0
            C5 = 0
            C6 = 0
            C7 = 0
            C8 = 0
            C9 = 0
            C10 = 0
        Else
            If Ep2 = "" Then
                C2 = 0
                C3 = 0
                C4 = 0
                C5 = 0
                C6 = 0
                C7 = 0
                C8 = 0
                C9 = 0
                C10 = 0
            Else
                If Ep3 = "" Then
                    C3 = 0
                    C4 = 0
                    C5 = 0
                    C6 = 0
                    C7 = 0
                    C8 = 0
                    C9 = 0
                    C10 = 0
                Else
                    If Ep4 = "" Then
                        C4 = 0
                        C5 = 0
                        C6 = 0
                        C7 = 0
                        C8 = 0
                        C9 = 0
                        C10 = 0
                    Else
                        If Ep5 = "" Then
                            C5 = 0
                            C6 = 0
                            C7 = 0
                            C8 = 0
                            C9 = 0
                            C10 = 0
                        Else
                            If Ep6 = "" Then
                                C6 = 0
                                C7 = 0
                                C8 = 0
                                C9 = 0
                                C10 = 0
                            Else
                                If Ep7 = "" Then
                                    C7 = 0
                                    C8 = 0
                                    C9 = 0
                                    C10 = 0
                                Else
                                    If Ep8 = "" Then
                                        C8 = 0
                                        C9 = 0
                                        C10 = 0
                                    Else
                                        If Ep9 = "" Then
                                            C9 = 0
                                            C10 = 0
                                        Else
                                            If Ep10 = "" Then
                                                C10 = 0
                                            End If
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        End If
     
        DessMur = Dess1 + C2 * 1 + Dess2 + C3 * 1 + Dess3 + C4 * 1 + Dess4 + C5 * 1 + Dess5 + C6 * 1 + Dess6 + C7 * 1 + Dess7 + C8 * 1 + ess8 + C9 * 1 + Dess9 + C10 * 1 + Dess10
        DessInter2 = Dess1 + C2 * 1 + Dess2
        DessInter3 = DessInter2 + C3 * 1 + Dess3
        DessInter4 = DessInter3 + C4 * 1 + Dess4
        DessInter5 = DessInter4 + C5 * 1 + Dess5
        DessInter6 = DessInter5 + C6 * 1 + Dess6
        DessInter7 = DessInter6 + C7 * 1 + Dess7
        DessInter8 = DessInter7 + C8 * 1 + Dess8
        DessInter9 = DessInter8 + C9 * 1 + Dess9
        DebMur = DessDeb + DessMur
     
        Sheets("Feuil2").Select
        Cells.Select
        ActiveSheet.Cells.Clear
     
        ' Dessin selon les lignes
     
        For lg_no = 1 To Dess1
            For col_no = 1 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
            Next col_no
        Next lg_no
     
        For col_no = 1 To DebMur - Dess1
            Worksheets("Feuil2").Cells(Dess1 + 1 * C2, col_no).Interior.ColorIndex = 3
        Next col_no
     
        For lg_no = Dess1 + 2 * C2 To DessInter2
            For col_no = 1 To DebMur - Dess1 - 1 * C2
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next col_no
        Next lg_no
     
        For col_no = 1 To DebMur - DessInter2
            Worksheets("Feuil2").Cells(DessInter2 + 1 * C3, col_no).Interior.ColorIndex = 3
        Next col_no
     
        For lg_no = DessInter2 + 2 * C3 To DessInter3
            For col_no = 1 To DebMur - DessInter2 - 1 * C3
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next col_no
        Next lg_no
     
        For col_no = 1 To DebMur - DessInter3
            Worksheets("Feuil2").Cells(DessInter3 + 1 * C4, col_no).Interior.ColorIndex = 3
        Next col_no
     
        For lg_no = DessInter3 + 2 * C4 To DessInter4
            For col_no = 1 To DebMur - DessInter3 - 1 * C4
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next col_no
        Next lg_no
     
        For col_no = 1 To DebMur - DessInter4
            Worksheets("Feuil2").Cells(DessInter4 + 1 * C5, col_no).Interior.ColorIndex = 3
        Next col_no
     
        For lg_no = DessInter4 + 2 * C5 To DessInter5
            For col_no = 1 To DebMur - DessInter4 - 1 * C5
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next col_no
        Next lg_no
     
        For col_no = 1 To DebMur - DessInter5
            Worksheets("Feuil2").Cells(DessInter5 + 1 * C6, col_no).Interior.ColorIndex = 3
        Next col_no
     
        For lg_no = DessInter5 + 2 * C6 To DessInter6
            For col_no = 1 To DebMur - DessInter5 - 1 * C6
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next col_no
        Next lg_no
     
        For col_no = 1 To DebMur - DessInter6
            Worksheets("Feuil2").Cells(DessInter6 + 1 * C7, col_no).Interior.ColorIndex = 3
        Next col_no
     
        For lg_no = DessInter6 + 2 * C7 To DessInter7
            For col_no = 1 To DebMur - DessInter6 - 1 * C7
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 12
            Next col_no
        Next lg_no
     
        For col_no = 1 To DebMur - DessInter7
            Worksheets("Feuil2").Cells(DessInter7 + 1 * C8, col_no).Interior.ColorIndex = 3
        Next col_no
     
        For lg_no = DessInter7 + 2 * C8 To DessInter8
            For col_no = 1 To DebMur - DessInter7 - 1 * C8
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 22
            Next col_no
        Next lg_no
     
        For col_no = 1 To DebMur - DessInter8
            Worksheets("Feuil2").Cells(DessInter8 + 1 * C9, col_no).Interior.ColorIndex = 3
        Next col_no
     
        For lg_no = DessInter8 + 2 * C9 To DessInter9
            For col_no = 1 To DebMur - DessInter8 - 1 * C9
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 53
            Next col_no
        Next lg_no
     
        For col_no = 1 To DebMur - DessInter9
            Worksheets("Feuil2").Cells(DessInter9 + 1 * C10, col_no).Interior.ColorIndex = 3
        Next col_no
     
        For lg_no = DessInter9 + 2 * C10 To DessMur
            For col_no = 1 To DebMur - DessInter9 - 1 * C10
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 17
            Next col_no
        Next lg_no
     
     
        ' Dessin selon les colonnes
     
        For col_no = DebMur - Dess1 + 1 * C1 To DebMur
            For lg_no = 1 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
            Next lg_no
        Next col_no
     
        For lg_no = Dess1 + 1 To DebMur
            Worksheets("Feuil2").Cells(lg_no, DebMur - Dess1).Interior.ColorIndex = 3
        Next lg_no
     
        For col_no = DebMur - DessInter2 + 1 To DebMur - Dess1 - 1
            For lg_no = Dess1 + 2 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next lg_no
        Next col_no
     
        For lg_no = DessInter2 + 1 To DebMur
            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter2).Interior.ColorIndex = 3
        Next lg_no
     
        For col_no = DebMur - DessInter3 + 1 To DebMur - DessInter2 - 1
            For lg_no = DessInter2 + 2 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next lg_no
        Next col_no
     
        For lg_no = DessInter3 + 1 To DebMur
            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter3).Interior.ColorIndex = 3
        Next lg_no
     
        For col_no = DebMur - DessInter4 + 1 To DebMur - DessInter3 - 1
            For lg_no = DessInter3 + 2 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next lg_no
        Next col_no
     
        For lg_no = DessInter4 + 1 To DebMur
            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter4).Interior.ColorIndex = 3
        Next lg_no
     
        For col_no = DebMur - DessInter5 + 1 To DebMur - DessInter4 - 1
            For lg_no = DessInter4 + 2 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next lg_no
        Next col_no
     
        For lg_no = DessInter5 + 1 To DebMur
            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter5).Interior.ColorIndex = 3
        Next lg_no
     
        For col_no = DebMur - DessInter6 + 1 To DebMur - DessInter5 - 1
            For lg_no = DessInter5 + 2 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next lg_no
        Next col_no
     
        For lg_no = DessInter6 + 1 To DebMur
            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter6).Interior.ColorIndex = 3
        Next lg_no
     
        For col_no = DebMur - DessInter7 + 1 To DebMur - DessInter6 - 1
            For lg_no = DessInter6 + 2 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next lg_no
        Next col_no
     
        For lg_no = DessInter7 + 1 To DebMur
            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter7).Interior.ColorIndex = 3
        Next lg_no
     
        For col_no = DebMur - DessInter8 + 1 To DebMur - DessInter7 - 1
            For lg_no = DessInter7 + 2 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next lg_no
        Next col_no
     
        For lg_no = DessInter8 + 1 To DebMur
            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter8).Interior.ColorIndex = 3
        Next lg_no
     
        For col_no = DebMur - DessInter9 + 1 To DebMur - DessInter8 - 1
            For lg_no = DessInter8 + 2 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next lg_no
        Next col_no
     
        For lg_no = DessInter9 + 1 To DebMur
            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter9).Interior.ColorIndex = 3
        Next lg_no
     
        For col_no = DebMur - DessMur + 1 To DebMur - DessInter9 - 1
            For lg_no = DessInter9 + 2 To DebMur
                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            Next lg_no
        Next col_no
     
        Cells.Select
        With Selection.Font
            .Name = "Arial"
            .Size = 6
        End With
        Cells.EntireColumn.AutoFit
        Cells.EntireRow.AutoFit
     
    End Sub
    Je vous remercie d'avance de l'attention que vous accorderez à ce problème.

    Alila

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut
    Bonjour

    La première cellule est ligne 1 colonne 1, d'où l'erreur.
    Le plus serait de faire une translation et de considérer le point de départ non pas zéro mais 1,1 et de corriger les calculs.

    JP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut
    Merci pour ta réponse, mais en fait ce n'est pas tout à fait cela. J'ai effectué une translation, mais pour que cela fonctionne : je suis obligé de supprimer les divers coefficients égal à 0 ou 1 et d'imbriquer toutes mes boucles si et cela donne une macro très lourde.
    Il m'indique même à un moment qu'elle est d'une taille trop importante.
    Ce que je voudrais c'est réussir à ne pas dire toutes les instructions à chaque fois à l'aide de coefficients égal à 1 ou 0...

    Je redonne le code avec toutes les répétitions imbriquées et la translation.
    Je suis donc obligée de répéter mes instructions à chaque fois selon le nombre de matériaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    570
    571
    572
     
    Sub Macro1()
     
     
        Ep1 = Excel.Range("Ep_1").Value
        Ep2 = Excel.Range("Ep_2").Value
        Ep3 = Excel.Range("Ep_3").Value
        Ep4 = Excel.Range("Ep_4").Value
        Ep5 = Excel.Range("Ep_5").Value
        Ep6 = Excel.Range("Ep_6").Value
        Ep7 = Excel.Range("Ep_7").Value
        Ep8 = Excel.Range("Ep_8").Value
        Ep9 = Excel.Range("Ep_9").Value
        Ep10 = Excel.Range("Ep_10").Value
     
        pas = Excel.Range("pas").Value
        Debord = Excel.Range("Débord").Value
     
        DessDeb = Debord / pas + 1
        Dess1 = Ep1 / pas
        Dess2 = Ep2 / pas
        Dess3 = Ep3 / pas
        Dess4 = Ep4 / pas
        Dess5 = Ep5 / pas
        Dess6 = Ep6 / pas
        Dess7 = Ep7 / pas
        Dess8 = Ep8 / pas
        Dess9 = Ep9 / pas
        Dess10 = Ep10 / pas
        DecaTemp = 3
        DecaTps = 20 + Dess1 + Dess2 + Dess3 + Dess4 + Dess5 + Dess6 + Dess7 + Dess8 + Dess9 + Dess10 + DessDeb
     
        Sheets("Feuil2").Select
        Cells.Select
        ActiveSheet.Cells.Clear
        Worksheets("Feuil2").Cells(33, 4).Value = 4
        Sheets("Feuil3").Select
        Cells.Select
        ActiveSheet.Cells.Clear
        Sheets("Feuil4").Select
        Cells.Select
        ActiveSheet.Cells.Clear
     
        ' Dessin selon le nombre de matériaux
     
        If Ep1 = "" Then
            MsgBox "Entrez les données sur les matériaux"
        Else
            If Ep2 = "" Then
     
            DessMur = Dess1 + 1
            DebMur = DessDeb + DessMur
     
            ' Dessin selon les lignes
     
                For lg_no = 1 + DecaTemp To DessMur + DecaTemp
                    For col_no = 1 + DecaTemp To DebMur + DecaTemp
                        Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Worksheets("Feuil2").Cells(lg_no, col_no).Value = Worksheets("Feuil2").Cells(lg_no + DecaTps - DecaTemp, col_no).Value
                        Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
                    Next col_no
                Next lg_no
     
     
                For lg_no = 1 + DecaTps To DessMur + DecaTps
                    For col_no = 1 + DecaTemp To DebMur + DecaTemp
                        Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                    Next col_no
                Next lg_no
     
            ' Dessin selon les colonnes
     
                For col_no = DecaTemp + DebMur - DessMur + 1 To DebMur + DecaTemp
                    For lg_no = 1 + DecaTemp To DebMur + DecaTemp
                        Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
                    Next lg_no
                Next col_no
     
     
                For col_no = DecaTemp + DebMur - DessMur + 1 To DebMur + DecaTemp
                    For lg_no = 1 + DecaTps To DebMur + DecaTps
                        Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                    Next lg_no
                Next col_no
     
            Else
                If Ep3 = "" Then
     
                DessMur = Dess1 + 1 + Dess2
                DebMur = DessDeb + DessMur
     
                ' Dessin selon les lignes
     
                    For lg_no = 1 + DecaTemp To Dess1 + DecaTemp
                        For col_no = 1 + DecaTemp To DebMur + DecaTemp
                            Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Next col_no
                    Next lg_no
     
                    For col_no = 1 + DecaTemp To DebMur - Dess1 + DecaTemp
                        Worksheets("Feuil2").Cells(Dess1 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                        Worksheets("Feuil3").Cells(Dess1 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                        Worksheets("Feuil4").Cells(Dess1 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                    Next col_no
     
                    For lg_no = Dess1 + 2 + DecaTemp To DessMur + DecaTemp
                        For col_no = 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                            Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                        Next col_no
                    Next lg_no
     
     
                    For lg_no = 1 + DecaTps To Dess1 + DecaTps
                        For col_no = 1 + DecaTemp To DebMur + DecaTemp
                            Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Next col_no
                    Next lg_no
     
                    For col_no = 1 + DecaTemp To DebMur - Dess1 + DecaTemp
                        Worksheets("Feuil2").Cells(Dess1 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                        Worksheets("Feuil3").Cells(Dess1 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                    Next col_no
     
                    For lg_no = Dess1 + 2 + DecaTps To DessMur + DecaTps
                        For col_no = 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                            Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                        Next col_no
                    Next lg_no
     
                ' Dessin selon les colonnes
     
                    For col_no = DebMur - Dess1 + 1 + DecaTemp To DebMur + DecaTemp
                        For lg_no = 1 + DecaTemp To DebMur + DecaTemp
                            Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Next lg_no
                    Next col_no
     
                    For lg_no = Dess1 + 1 + DecaTemp To DebMur + DecaTemp
                        Worksheets("Feuil2").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                        Worksheets("Feuil3").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                        Worksheets("Feuil4").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                    Next lg_no
     
                    For col_no = DebMur - DessMur + 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                        For lg_no = Dess1 + 2 + DecaTemp To DebMur + DecaTemp
                            Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                        Next lg_no
                    Next col_no
     
     
                    For col_no = DebMur - Dess1 + 1 + DecaTemp To DebMur + DecaTemp
                        For lg_no = 1 + DecaTps To DebMur + DecaTps
                            Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                        Next lg_no
                    Next col_no
     
                    For lg_no = Dess1 + 1 + DecaTps To DebMur + DecaTps
                        Worksheets("Feuil2").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                        Worksheets("Feuil3").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                    Next lg_no
     
                    For col_no = DebMur - DessMur + 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                        For lg_no = Dess1 + 2 + DecaTps To DebMur + DecaTps
                            Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                        Next lg_no
                    Next col_no
     
                Else
                    If Ep4 = "" Then
     
                    DessMur = Dess1 + 1 + Dess2 + 1 + Dess3
                    DessInter2 = Dess1 + 1 + Dess2
                    DebMur = DessDeb + DessMur
     
                    ' Dessin selon les lignes
     
                        For lg_no = 1 + DecaTemp To Dess1 + DecaTemp
                            For col_no = 1 + DecaTemp To DebMur + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Next col_no
                        Next lg_no
     
                        For col_no = 1 + DecaTemp To DebMur - Dess1 + DecaTemp
                            Worksheets("Feuil2").Cells(Dess1 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                            Worksheets("Feuil3").Cells(Dess1 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                            Worksheets("Feuil4").Cells(Dess1 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                        Next col_no
     
                        For lg_no = Dess1 + 2 + DecaTemp To DessInter2 + DecaTemp
                            For col_no = 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Next col_no
                        Next lg_no
     
                        For col_no = 1 + DecaTemp To DebMur - DessInter2 + DecaTemp
                            Worksheets("Feuil2").Cells(DessInter2 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                            Worksheets("Feuil3").Cells(DessInter2 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                            Worksheets("Feuil4").Cells(DessInter2 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                        Next col_no
     
                        For lg_no = DessInter2 + 2 + DecaTemp To DessMur + DecaTemp
                            For col_no = 1 + DecaTemp To DebMur - DessInter2 - 1 + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Next col_no
                        Next lg_no
     
     
                        For lg_no = 1 + DecaTps To Dess1 + DecaTps
                            For col_no = 1 + DecaTemp To DebMur + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Next col_no
                        Next lg_no
     
                        For col_no = 1 + DecaTemp To DebMur - Dess1 + DecaTemp
                            Worksheets("Feuil2").Cells(Dess1 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                            Worksheets("Feuil3").Cells(Dess1 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                        Next col_no
     
                        For lg_no = Dess1 + 2 + DecaTps To DessInter2 + DecaTps
                            For col_no = 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Next col_no
                        Next lg_no
     
                        For col_no = 1 + DecaTemp To DebMur - DessInter2 + DecaTemp
                            Worksheets("Feuil2").Cells(DessInter2 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                            Worksheets("Feuil3").Cells(DessInter2 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                        Next col_no
     
                        For lg_no = DessInter2 + 2 + DecaTps To DessMur + DecaTps
                            For col_no = 1 + DecaTemp To DebMur - DessInter2 - 1 + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Next col_no
                        Next lg_no
     
     
     
     
                    ' Dessin selon les colonnes
     
                        For col_no = DebMur - Dess1 + 1 + DecaTemp To DebMur + DecaTemp
                            For lg_no = 1 + DecaTemp To DebMur + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Next lg_no
                        Next col_no
     
                        For lg_no = Dess1 + 1 + DecaTemp To DebMur + DecaTemp
                            Worksheets("Feuil2").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                            Worksheets("Feuil3").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                            Worksheets("Feuil4").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                        Next lg_no
     
                        For col_no = DebMur - DessInter2 + 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                            For lg_no = Dess1 + 2 + DecaTemp To DebMur + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Next lg_no
                        Next col_no
     
                        For lg_no = DessInter2 + 1 + DecaTemp To DebMur + DecaTemp
                            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                            Worksheets("Feuil3").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                            Worksheets("Feuil4").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                        Next lg_no
     
                        For col_no = DebMur - DessMur + 1 + DecaTemp To DebMur - DessInter2 - 1 + DecaTemp
                            For lg_no = DessInter2 + 2 + DecaTemp To DebMur + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Next lg_no
                        Next col_no
     
     
                        For col_no = DebMur - Dess1 + 1 + DecaTemp To DebMur + DecaTemp
                            For lg_no = 1 + DecaTps To DebMur + DecaTps
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Next lg_no
                        Next col_no
     
                        For lg_no = Dess1 + 1 + DecaTps To DebMur + DecaTps
                            Worksheets("Feuil2").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                            Worksheets("Feuil3").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                        Next lg_no
     
                        For col_no = DebMur - DessInter2 + 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                            For lg_no = Dess1 + 2 + DecaTps To DebMur + DecaTps
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Next lg_no
                        Next col_no
     
                        For lg_no = DessInter2 + 1 + DecaTps To DebMur + DecaTps
                            Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                            Worksheets("Feuil3").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                        Next lg_no
     
                        For col_no = DebMur - DessMur + 1 + DecaTemp To DebMur - DessInter2 - 1 + DecaTemp
                            For lg_no = DessInter2 + 2 + DecaTps To DebMur + DecaTps
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                            Next lg_no
                        Next col_no
     
     
                    Else
                        If Ep5 = "" Then
     
                        DessMur = Dess1 + 1 + Dess2 + 1 + Dess3 + 1 + Dess4
                        DessInter2 = Dess1 + 1 + Dess2
                        DessInter3 = DessInter2 + 1 + Dess3
                        DessInter4 = DessInter3 + 1 + Dess4
                        DebMur = DessDeb + DessMur
     
                        ' Dessin selon les lignes
     
                            For lg_no = 1 + DecaTemp To Dess1 + DecaTemp
                                For col_no = 1 + DecaTemp To DebMur + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                    Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Next col_no
                            Next lg_no
     
                            For col_no = 1 + DecaTemp To DebMur - Dess1 + DecaTemp
                                Worksheets("Feuil2").Cells(Dess1 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(Dess1 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                                Worksheets("Feuil4").Cells(Dess1 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                            Next col_no
     
                            For lg_no = Dess1 + 2 + DecaTemp To DessInter2 + DecaTemp
                                For col_no = 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next col_no
                            Next lg_no
     
                            For col_no = 1 + DecaTemp To DebMur - DessInter2 + DecaTemp
                                Worksheets("Feuil2").Cells(DessInter2 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(DessInter2 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                                Worksheets("Feuil4").Cells(DessInter2 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                            Next col_no
     
                            For lg_no = DessInter2 + 2 + DecaTemp To DessInter3 + DecaTemp
                                For col_no = 1 + DecaTemp To DebMur - DessInter2 - 1 + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next col_no
                            Next lg_no
     
                            For col_no = 1 + DecaTemp To DebMur - DessInter3 + DecaTemp
                                Worksheets("Feuil2").Cells(DessInter3 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(DessInter3 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                                Worksheets("Feuil4").Cells(DessInter3 + 1 + DecaTemp, col_no).Interior.ColorIndex = 3
                            Next col_no
     
                            For lg_no = DessInter3 + 2 + DecaTemp To DessInter4 + DecaTemp
                                For col_no = 1 + DecaTemp To DebMur - DessInter3 - 1 + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next col_no
                            Next lg_no
     
     
                            For lg_no = 1 + DecaTps To Dess1 + DecaTps
                                For col_no = 1 + DecaTemp To DebMur + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Next col_no
                            Next lg_no
     
                            For col_no = 1 + DecaTemp To DebMur - Dess1 + DecaTemp
                                Worksheets("Feuil2").Cells(Dess1 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(Dess1 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                            Next col_no
     
                            For lg_no = Dess1 + 2 + DecaTps To DessInter2 + DecaTps
                                For col_no = 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next col_no
                            Next lg_no
     
                            For col_no = 1 + DecaTemp To DebMur - DessInter2 + DecaTemp
                                Worksheets("Feuil2").Cells(DessInter2 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(DessInter2 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                            Next col_no
     
                            For lg_no = DessInter2 + 2 + DecaTps To DessInter3 + DecaTps
                                For col_no = 1 + DecaTemp To DebMur - DessInter2 - 1 + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next col_no
                            Next lg_no
     
                            For col_no = 1 + DecaTemp To DebMur - DessInter3 + DecaTemp
                                Worksheets("Feuil2").Cells(DessInter3 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(DessInter3 + 1 + DecaTps, col_no).Interior.ColorIndex = 3
                            Next col_no
     
                            For lg_no = DessInter3 + 2 + DecaTps To DessInter4 + DecaTps
                                For col_no = 1 + DecaTemp To DebMur - DessInter3 - 1 + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next col_no
                            Next lg_no
     
     
                        ' Dessin selon les colonnes
     
                            For col_no = DebMur - Dess1 + 1 + DecaTemp To DebMur + DecaTemp
                                For lg_no = 1 + DecaTemp To DebMur + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                    Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Next lg_no
                            Next col_no
     
                            For lg_no = Dess1 + 1 + DecaTemp To DebMur + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                                Worksheets("Feuil4").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                            Next lg_no
     
                            For col_no = DebMur - DessInter2 + 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                                For lg_no = Dess1 + 2 + DecaTemp To DebMur + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next lg_no
                            Next col_no
     
                            For lg_no = DessInter2 + 1 + DecaTemp To DebMur + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                                Worksheets("Feuil4").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                            Next lg_no
     
                            For col_no = DebMur - DessInter3 + 1 + DecaTemp To DebMur - DessInter2 - 1 + DecaTemp
                                For lg_no = DessInter2 + 2 + DecaTemp To DebMur + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next lg_no
                            Next col_no
     
                            For lg_no = DessInter3 + 1 + DecaTemp To DebMur + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter3 + DecaTemp).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(lg_no, DebMur - DessInter3 + DecaTemp).Interior.ColorIndex = 3
                                Worksheets("Feuil4").Cells(lg_no, DebMur - DessInter3 + DecaTemp).Interior.ColorIndex = 3
                            Next lg_no
     
                            For col_no = DebMur - DessInter4 + 1 + DecaTemp To DebMur - DessInter3 - 1 + DecaTemp
                                For lg_no = DessInter3 + 2 + DecaTemp To DebMur + DecaTemp
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next lg_no
                            Next col_no
     
     
                            For col_no = DebMur - Dess1 + 1 + DecaTemp To DebMur + DecaTemp
                                For lg_no = 1 + DecaTps To DebMur + DecaTps
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Next lg_no
                            Next col_no
     
                            For lg_no = Dess1 + 1 + DecaTps To DebMur + DecaTps
                                Worksheets("Feuil2").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(lg_no, DebMur - Dess1 + DecaTemp).Interior.ColorIndex = 3
                            Next lg_no
     
                            For col_no = DebMur - DessInter2 + 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
                                For lg_no = Dess1 + 2 + DecaTps To DebMur + DecaTps
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next lg_no
                            Next col_no
     
                            For lg_no = DessInter2 + 1 + DecaTps To DebMur + DecaTps
                                Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(lg_no, DebMur - DessInter2 + DecaTemp).Interior.ColorIndex = 3
                            Next lg_no
     
                            For col_no = DebMur - DessInter3 + 1 + DecaTemp To DebMur - DessInter2 - 1 + DecaTemp
                                For lg_no = DessInter2 + 2 + DecaTps To DebMur + DecaTps
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next lg_no
                            Next col_no
     
                            For lg_no = DessInter3 + 1 + DecaTps To DebMur + DecaTps
                                Worksheets("Feuil2").Cells(lg_no, DebMur - DessInter3 + DecaTemp).Interior.ColorIndex = 3
                                Worksheets("Feuil3").Cells(lg_no, DebMur - DessInter3 + DecaTemp).Interior.ColorIndex = 3
                            Next lg_no
     
                            For col_no = DebMur - DessInter4 + 1 + DecaTemp To DebMur - DessInter3 - 1 + DecaTemp
                                For lg_no = DessInter3 + 2 + DecaTps To DebMur + DecaTps
                                    Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                    Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
                                Next lg_no
                            Next col_no
     
        End If
        End If
        End If
        End If
        End If
     
     
        Cells.Select
        With Selection.Font
            .Name = "Arial"
            .Size = 6
        End With
        Cells.EntireColumn.AutoFit
        Cells.EntireRow.AutoFit
     
        Sheets("Feuil3").Select
        Cells.Select
        With Selection.Font
            .Name = "Arial"
            .Size = 6
        End With
        Cells.EntireColumn.AutoFit
        Cells.EntireRow.AutoFit
     
        Sheets("Feuil2").Select
        Cells.Select
        With Selection.Font
            .Name = "Arial"
            .Size = 6
        End With
        Cells.EntireColumn.AutoFit
        Cells.EntireRow.AutoFit
     
     
    End Sub
    Alila

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    En effet le code et long et il est difficile de suivre ce que tu veux faire exactement.

    une piste, tu peux dans un premier temps faire les calculs selon la valeur de tes variables EP et déterminer à l'avance test boucles.

    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For lg_no = 1 + DecaTemp To Dess1 + DecaTemp
    Faire :
    ' Determiner debut et fin en debut de code selon les conditions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If ...
    debut = 1 + DecaTemp  
    fin =  Dess1 + DecaTemp
    Mycolor = 15
    Else ...
    '
    For lg_no = Debut To fin
    ' Ton code
    Next

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut
    Bonjour a tous
    Au lieu d'utiliser des variables utiliser des tableaux et des sous-procédures avec des macros paramétrables.

    Un exemple pour remplacer la modification de la variable c1,..c10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Option Explicit
    Dim c(1 To 10) As Byte
    Sub essai()
     
    valeurc 1, 1
    If Ep1 = "" Then
            MsgBox "Entrez les données sur les matériaux"
            valeurc 1, 0
    ElseIf Ep2 = "" Then valeurc 2, 0
    ElseIf Ep3 = "" Then valeurc 3, 0
    ElseIf Ep4 = "" Then valeurc 4, 0
    ElseIf Ep5 = "" Then valeurc 5, 0
    ElseIf Ep6 = "" Then valeurc 6, 0
    ElseIf Ep7 = "" Then valeurc 7, 0
    ElseIf Ep8 = "" Then valeurc 8, 0
    ElseIf Ep9 = "" Then valeurc 9, 0
    ElseIf Ep10 = "" Then c(10) = 0
    End If
    End Sub
    Private Sub valeurc(nudep As Byte, val1 As Byte)
    For i = nudep To 10
    c(i) = val1
    Next i
    End Sub
    Pour simplifier un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Private Sub mur1(lignedep As Long, lignefin As Long, coldep As Long, colfin As Long, valeur1 As Long)
     For lg_no = lignedep To lignefin
        For col_no = coldep To colfin
            Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = valeur1
            Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = valeur1
            Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = valeur1
        Next col_no
    Next lg_no
    End Sub
     
    ' exemple pour appel
     
    mur1 1 + DecaTemp, Dess1 + DecaTemp, 1 + DecaTemp, DebMur + DecaTemp, 15
     
    'cet appel pour remplacer le code ci dessous
     'For lg_no =1 + DecaTemp  To Dess1 + DecaTemp
        'For col_no = 1 + DecaTemp To DebMur + DecaTemp
            'Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
            'Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
            'Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
        'Next col_no
    'Next lg_no
     
    mur1 Dess1 + 2 + DecaTemp, DessInter2 + DecaTemp, 1 + DecaTemp, DebMur - Dess1 - 1 + DecaTemp, 36
    remplace
    'For lg_no = Dess1 + 2 + DecaTemp To DessInter2 + DecaTemp
        'For col_no = 1 + DecaTemp To DebMur - Dess1 - 1 + DecaTemp
            'Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            'Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
            'Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
        'Next col_no
    'Next lg_no
    mur1 DessInter2 + 2 + DecaTemp, DessInter3 + DecaTemp, 1 + DecaTemp, DebMur - DessInter2 - 1 + DecaTemp, 36
    remplace
     
    'For lg_no = DessInter2 + 2 + DecaTemp To DessInter3 + DecaTemp
        'For col_no = 1 + DecaTemp To DebMur - DessInter2 - 1 + DecaTemp
            'Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 36
            'Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 36
            'Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 36
        'Next col_no
    'Next lg_no


    JP

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut alila et le forum
    Tes boucles me semblent superflues : un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     ' Dessin selon les lignes
            
                        For lg_no = 1 + DecaTemp To Dess1 + DecaTemp
                            For col_no = 1 + DecaTemp To DebMur + DecaTemp
                                Worksheets("Feuil2").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Worksheets("Feuil3").Cells(lg_no, col_no).Interior.ColorIndex = 15
                                Worksheets("Feuil4").Cells(lg_no, col_no).Interior.ColorIndex = 15
                            Next col_no
                        Next lg_no
    Moi j'aurais plutôt fait la boucle suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     ' Dessin selon les lignes
    For lg_no = 2 To 4
        With Sheets("Feuil" & lg_no)
            .Range(.Cells(1 + DecaTemp, 1 + DecaTemp), .Cells(Dess1 + DecaTemp, DebMur + DecaTemp)).Interior.ColorIndex = 15
        End With
    Next lg_no
    A+

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut
    Bonjour,

    Merci à tous pour vos réponse !
    Je tente maintenant de simplifier le code.
    Juste JP, dans ta dernière réponse, tu utilises beaucoup de choses que je ne connais pas encore :
    valeurc 3,0 : qu'est ce que cela fait exactement ?
    Puis ensuite ta seconde macro sert à quoi exactement ?

    Une autre question, est-il possible avec un bouton de lancer plusieurs macros ?

    Alila

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut
    Bonjour

    Document à lire
    http://silkyroad.developpez.com/VBA/LesVariables/
    en particulier le chapitre concernant le passage de paramètre
    La différence entre ByRef et ByVal

    valeurc 3,0 on appelle la procédure valeurc avec comme début de la boucle la valeur 3 et on met la valeur 0 dans c(i)
    ce qui correspond au code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    C3 = 0
                    C4 = 0
                    C5 = 0
                    C6 = 0
                    C7 = 0
                    C8 = 0
                    C9 = 0
                    C10 = 0
    JP

Discussions similaires

  1. [Toutes versions] Sous VBA appeler une cellule excel avec une variable
    Par karatetiger76 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/04/2011, 19h04
  2. [XL-2003] Appel d'une macro VBA directement d'une cellule
    Par Toto_le_héros38 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/01/2011, 00h21
  3. [POI] Appeler une cellule par son nom
    Par Galak extra dans le forum Documents
    Réponses: 9
    Dernier message: 17/06/2008, 14h33
  4. [VBA-E] Formater une cellule en format monétaire
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2006, 15h15
  5. [VBA-E]appelé une feuille...?
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/02/2006, 01h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo