bonjour,

l'idée est de fusionner 3 feuilles ( listing1, 2, 3) en une listing final ( qui sera archivée).
une userform avec 3cases à cocher listing1 et/ou listing2 et/ou listing 3 et un bouton de commande
voici le code de la userform:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub CommandButton1_Click() ' bouton valider
With UserForm1
     If Controls("listing1") = True Then
        Call fusionner_listing1
 
            ElseIf Controls("listing2") = True Then
                Call fusionner_listing2
 
                    ElseIf Controls("listing3") = True Then
                        Call fusionner_listing3
     End If
End With
 'Call Archivage
 End Sub
comme vous le voyez, 3 macros ( quasi identiques à l'indice pret ) doivent être exécuter en fonction des cases à cocher respectivement true.

voici la premiere macro appelle lorsque la case listing1 est cochée:

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
Sub fusionner_listing1() '*****************  fusion depot1 ************* 
 
UserForm1.Hide
 
 
'*****************  fusion depot1        ******************** 
Sheets("listing final").Visible = True
Sheets("listing 1").Visible = True
 
 
DerLigne = Sheets("listing 1").Cells(1000, 2).End(xlUp).Row
If Sheets("listing 1").Range("B2").Value <> "" Then  ' si la cellule sous l'entete de tableau est non vide
 
    Sheets("listing 1").Range("B2:K" & DerLigne).Copy
    Sheets("listing final").Range("B10000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
    Sheets("listing 1").Range("B2:K" & DerLigne).ClearContents   ' supprime le contenu du listing 1
 
'***colore les cellules pour identifié le depot1  ***********************
Application.CutCopyMode = False
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 16775147
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
Else
MsgBox ("décochez listings 1 car le listing1 est vide et vous ne pouvez donc pas le fusionner")
 
End If
Sheets("listing 1").Visible = False
Sheets("listing final").Visible = False
 
End Sub
si listing2 est cochée, la macro fusion_listing2 (resemblant à listing1 n'est pas executer comme si , une fois la macro listing1 executée , la suite du code de la userform ( elseif) n'etait pas executée ..

HELP...merci