Bonjour,
Je cherche à faire de la copie de data d'un fichier à l'autre selon 2 critères (n° de semaine et Poste de travail).
Selon le poste de travail, les données sont copiées dans un onglet spécifique (il s'agit de machine de prod, 4 machines). J'ai réalisé le code pour le premier poste de travail et cela fonctionne sans pb. J'ai fait une copie de la boucle permettant de copier les data pour la première machine que j'ai adapté pour la seconde machine. Mais pour la seconde, ça ne fonctionne pas.
L'utilisateur clique sur un bouton et un UserForm apparait où l'utilisateur entre un N° de semaine.
Voici mon code:
La partie 'Pour S1L fonctionne et j'ai voulu adapter pour 'Pour S5L mais là ça ne fonctionne pas.Code:Private Sub CommandButton1_Click() Dim FichierMaintenance As Workbook Dim FichierPlanning As Workbook Dim i As Long Dim SemaineUtilisateur As Long Dim SemaineMaintenance As Long Dim OT As Long Dim WorkCenterMaintenance Dim EtatImmoMarchine As String Dim EtatImmoOperateur As String Dim EnTeteOT As String If TextBox1.Value = "" Then MsgBox ("Merci d'entrez une valeur!") TextBox1.SetFocus Else SemaineUtilisateur = TextBox1.Value End If 'UPDATER CETTE PARTIE POUR IMPLEMENTATION 'Dim Repertoire As String 'Lien du fichier maintenance 'Repertoire = "C:\...." 'POUR LE TEST Dim Repertoire1 As String Repertoire1 = "C:\Users\t843529\Desktop\Copy of 1 Copy of Copie de Planif Maint Prév à Avril (2).xlsx" 'Set FichierMaintenance = Application.Workbooks.Open(Repertoire, False, True) Set FichierPlanning = ThisWorkbook Set FichierMaintenance = Application.Workbooks.Open(Repertoire1, False, True) Dim DerniereLigneMaint As Long DerniereLigneMaint = FichierMaintenance.Worksheets("Planning").Range("S" & Rows.Count).End(xlUp).Row '***************************************************************************************** 'Pour S1L Dim DerniereLignePlanningS1L As Long DerniereLignePlanningS1L = FichierPlanning.Worksheets("1 L").Range("A" & Rows.Count).End(xlUp).Row Dim WorkCenterPlanning1L WorkCenterPlanning1L = "Asset F&P Sud Zeon 1L" For i = 3 To DerniereLigneMaint SemaineMaintenance = FichierMaintenance.Worksheets("Planning").Cells(i, 19).Value WorkCenterMaintenance = FichierMaintenance.Worksheets("Planning").Cells(i, 9).Value If SemaineMaintenance = SemaineUtilisateur And WorkCenterMaintenance = WorkCenterPlanning1L Then OT = FichierMaintenance.Worksheets("Planning").Cells(i, 3).Value EtatImmoMachine = FichierMaintenance.Worksheets("Planning").Cells(i, 13).Value EtatImmoOperateur = FichierMaintenance.Worksheets("Planning").Cells(i, 14).Value EnTeteOT = FichierMaintenance.Worksheets("Planning").Cells(i, 6).Value FichierPlanning.Worksheets("1 L").Cells(DerniereLignePlanningS1L, 1).Value = SemaineMaintenance FichierPlanning.Worksheets("1 L").Cells(DerniereLignePlanningS1L, 3).Value = OT FichierPlanning.Worksheets("1 L").Cells(DerniereLignePlanningS1L, 10).Value = EnTeteOT FichierPlanning.Worksheets("1 L").Cells(DerniereLignePlanningS1L, 5).Value = EtatImmoMachine FichierPlanning.Worksheets("1 L").Cells(DerniereLignePlanningS1L, 7).Value = EtatImmoOperateur End If Next i End '***************************************************************************************** '***************************************************************************************** 'Pour S5L Dim DerniereLignePlanningS5L As Long DerniereLignePlanningS5L = FichierPlanning.Worksheets("5 L").Range("A" & Rows.Count).End(xlUp).Row Dim WorkCenterPlanning5L WorkCenterPlanning5L = "Asset F&P Sud Zeon 5L" For i = 3 To DerniereLigneMaint SemaineMaintenance = FichierMaintenance.Worksheets("Planning").Cells(i, 19).Value WorkCenterMaintenance = FichierMaintenance.Worksheets("Planning").Cells(i, 9).Value If SemaineMaintenance = SemaineUtilisateur And WorkCenterMaintenance = WorkCenterPlanning5L Then OT = FichierMaintenance.Worksheets("Planning").Cells(i, 3).Value EtatImmoMachine = FichierMaintenance.Worksheets("Planning").Cells(i, 13).Value EtatImmoOperateur = FichierMaintenance.Worksheets("Planning").Cells(i, 14).Value EnTeteOT = FichierMaintenance.Worksheets("Planning").Cells(i, 6).Value FichierPlanning.Worksheets("5 L").Cells(DerniereLignePlanningS5L, 1).Value = SemaineMaintenance FichierPlanning.Worksheets("5 L").Cells(DerniereLignePlanningS5L, 3).Value = OT FichierPlanning.Worksheets("5 L").Cells(DerniereLignePlanningS5L, 10).Value = EnTeteOT FichierPlanning.Worksheets("5 L").Cells(DerniereLignePlanningS5L, 5).Value = EtatImmoMachine FichierPlanning.Worksheets("5 L").Cells(DerniereLignePlanningS5L, 7).Value = EtatImmoOperateur End If Next i End '***************************************************************************************** End Sub
Si quelqu'un à une idée?
Merci d'avance.
-----