Bonjour;

Je viens vers vous pour que vous m'aidiez à résoudre mon problème. En faite j'aimerais faire un archivage de ma feuille 1 du fichier plans c'est à dire une fois que la colonne 41 est = oui , et que je clique sur le bouton archiver un plans, toutes les lignes basculent vers mes 3 fichiers (un fichier SM, un fichier Rh et un fichier Su) et doivent être supprimées dans la feuille 1.
Et je voudrais que toutes les données qui ont comme domaine SM ou Rh ou Su de la colonne 4 de ma feuille 1 du fichier plan soient basculées en fonction du fichier SM ou Rh ou Su.
Et j'aimerais faire la même chose pour la feuille 2 du fichier plans.

J'ai essayé de le faire mais à chaque exécution une erreur survient: la méthode pastespecial de la classe range a échoué.
NB: le code du bouton archiver se trouve dans un module
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
'Affectation du numéro de la ligne de début des données à la variable LigneEnLecture
    LigneEnLecture = 10
    While (Cells(LigneEnLecture, 1) <> "" _
    And LigneEnLecture <= 1048576)
        If (Cells(LigneEnLecture, 41) = "Oui" _
        And Cells(LigneEnLecture, 42) = "Oui" _
        And Cells(LigneEnLecture, 51) <> "") Then
            While (Cells(LigneEnLecture, 41) = "Oui" _
            And Cells(LigneEnLecture, 42) = "Oui" _
            And Cells(LigneEnLecture, 51) <> "")
                'Sélection de la feuille "Plans " du classeur de gestion
                LesPlans.Activate
                'Affectation de la valeur de la référence à la variable ReferencePlanArchive
                ReferencePlanArchive = Cells(LigneEnLecture, 1)
                'Affectation de la valeur du site à la variable SitePlanArchive
                SitePlanArchive = Cells(LigneEnLecture, 2)
                'Affectation de la valeur de l'Entreprise Extérieure à la variable EntreprisePlanArchive
                EntreprisePlanArchive = Cells(LigneEnLecture, 3)
                 'Affectation de la valeur du domaine à la variable DomainePlanArchive
                DomainePlanArchive = Cells(LigneEnLecture, 4)
                'On sélectionne la ligne en lecture si le Plan de Prévention est signé et archivé
                Cells(LigneEnLecture, 1).EntireRow.Select
                'On copie la ligne sélectionnée
                Selection.Copy
                'Création d'un tableau contenant le nom des trois classeurs plan 
                Dim TableauDomainePlanPrevention(3) As String
                'Affectation des domaines correspondants
                TableauDomainePlan(0) = "RT"
                TableauDomainePlan(1) = "SM"
                TableauDomainePlan(2) = "SU"
                'Variable qui servira pour parcourrir le tableau
                Dim i As Integer
                'Cette variable représente le numéro de la ligne où finit le contenu des données du classeur des Plans  en création par domaine
                'Dim LigneFinDonneesPlan As Long
                'On crée une boucle pour traiter chaque plan
                For i = 0 To 2
                    'Affectation du bon classeur
                    Set ClasseurPlansSignesArchives = Application.Workbooks.Open("\\mv0\Sta.SM\Stage de Co\Travaux\Automatisation BDD\Documents\Développement\Plans  en Création\Plans  " & TableauDomainePlan(i) & ".xlsm")
                    'Sélection du classeur ouvert
                    ClasseurPlansSignesArchives.Activate
                   
                
                 'Sélection de la feuille où l'on copie les données
                ClasseurPlansSignesArchives.Sheets("Plans").Activate
                'Affectation du numéro de la ligne où l'on va copier les données
                LigneCopieDonnees = ClasseurPlansSignesArchives.Sheets("Plans").[A1048576].End(xlUp).Row + 1
               
                'Sélection de la ligne où l'on copie les données
                ClasseurPlansSignesArchives.Sheets("Plans").Cells(LigneCopieDonnees + 1, 1).EntireRow.Select
                'Collage des données sur la ligne
                Selection.PasteSpecial
                 
                'Fermeture du classeur Excel
                ClasseurPlansSignesArchives.Close (True)
                'Sélection de la feuille "Plans" du classeur de gestion
                LesPlans.Activate
                'Suppression de la ligne dans le classeur de gestion
                Rows(Selection.Row).Delete Shift:=xlUp
            Next i
                'Sélection de la feuille "Suivis de visite" du classeur de gestion
                LesSuivisVisite.Activate
                'Recherche de la ligne correspondante à la ligne qui vient d'être supprimée dans la feuille "Suivis de visite"
                LigneRechercheCorrespondance = 10
                 While (Cells(LigneRechercheCorrespondance, 1) <> ReferencePlanArchive _
                And Cells(LigneRechercheCorrespondance, 2) <> SitePlanArchive _
                And Cells(LigneRechercheCorrespondance, 3) <> EntreprisePlanArchive _
                And Cells(LigneRechercheCorrespondance, 4) <> DomainePlanArchive _
                And LigneRechercheCorrespondance <= 1048576)
                    LigneRechercheCorrespondance = LigneRechercheCorrespondance + 1
                Wend
                If (LigneRechercheCorrespondance <= 1048576) Then
                    'On sélectionne la ligne correspondante
                    Cells(LigneRechercheCorrespondance, 1).EntireRow.Select
                    'On copie la ligne sélectionnée
                    Selection.Copy
                    For i = 0 To 2
                    'Affectation du classeur "Plans Signés et Archivés" à la variable ClasseurPlansSignesArchives
                    Set ClasseurPlansSignesArchives = Application.Workbooks.Open("\\mv0\Sta.SM\Stage de Co\Travaux\Automatisation BDD \Documents\Développement\Plans  en Création\Plans " & TableauDomainePlan(i) & ".xlsm")
                     'Sélection du classeur ouvert
                    ClasseurPlansSignesArchives.Activate
                    'Sélection de la feuille où l'on copie les données
                     ClasseurPlansSignesArchives.Sheets("Suivis de visite").Activate
                     'Affectation du numéro de la ligne où l'on va copier les données
                    LigneCopieDonnees = ClasseurPlansSignesArchives.Sheets("Suivis de visite").[A1048576].End(xlUp).Row + 1
                    'Sélection de la ligne où l'on copie les données
                   
                    ClasseurPlansSignesArchives.Sheets("Suivis de visite").Cells(LigneCopieDonnees + 1, 1).EntireRow.Select
                    'Collage des données sur la ligne
                    Selection.PasteSpecial
                    'Fermeture du classeur Excel
                    ClasseurPlansSignesArchives.Close (True)
                    'Sélection de la feuille "Suivis de visite" du classeur de gestion
                    LesSuivisVisite.Activate
                    'Suppression de la ligne dans le classeur de gestion
                    Rows(Selection.Row).Delete Shift:=xlUp
                    'Sélection de la feuille "Plans" du classeur de gestion
                    LesPlans.Activate
                     Next i
                End If
            Wend
           
        End If
        'Sélection de la feuille "Plans" du classeur de gestion
        LesPlans.Activate
        LigneEnLecture = LigneEnLecture + 1
    Wend
End Sub
l'erreur se trouve à la ligne 89