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