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
| Sub MàJ()
Application.ScreenUpdating = False 'permet de ne pas rafraîchir les cellules pendant l'exécution de la macro => gain de temps
'**********************************
' initialisation
'**********************************
'initialisation des variables
Dim wa As Workbook
Dim wb As Workbook
Dim wc As Worksheet
Dim ws201 As Worksheet
Dim ws202 As Worksheet
Dim ws204 As Worksheet
Dim aire_de_recherche As Range
Set wa = Workbooks("test.xls")
fichier_cible = "C:\Users\bibiman\Documents\Listes_des_transactions.xlsx"
Set ws201 = wa.Worksheets("PSB201")
Set ws202 = wa.Worksheets("PSB202")
Set ws204 = wa.Worksheets("PSB204")
Set wb = Workbooks.Open(fichier_cible)
Set wc = wb.Sheets("Liste des transactions")
'initialisation des numéros de colonnes dans le fichier (cible) de transactions
col_cible_saisie = 16 'numéro de la colonne Planning de saisie des tests
col_cible_execution = 17 'numéro de la colonne entité
'initialisation des numéros de colonnes dans le fichier (source) de Planification
col_source_saisie = 1 'numéro de la colonne de la date de saisie
col_source_execution = 2 'numéro de la colonne de la date d'execution
col_source_Transaction = 3 'numéro de la colonne transaction AGL, équivalent à la colonne C
Saisie = "Saisie"
'**********************************
' Mise à jour
'*********************************
'Récupération du code de transaction dans le fichier source (Planification des tests.xls)
For i = 1 To 2000 '2000 nombre de lignes max du fichier source
code_transaction = ws201.Cells(i, col_source_Transaction).Value
'Récupération du code de transaction dans le fichier cible (dans la première colonne)
On Error Resume Next
ligne_transaction_cible = [H2:H5000].Find(What:=code_transaction, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns).Row
If ligne_transaction_cible Is Nothing Then
'Récupération de la colonne où la chaine de caractères "Saisie" a été saisie dans le fichier source (Planification des tests.xls)
On Error Resume Next
col_source_saisie = Rows(i).Find(What:=Saisie, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns).Column
If col_source_saisie = "1" Then 'Is Nothing Then
'Mise à jour des dates de saisie, dans le fichier (cible) de transactions
wc.Cells(ligne_transaction_cible, col_cible_saisie).Value = ""
ElseIf col_source_saisie > 1 Then
wc.Cells(ligne_transaction_cible, col_cible_saisie).Value = ws201.Cells(2, col_source_saisie).Value
End If
'Récupération de la colonne où les chaines de caractères "Exec" ou "Livr" ont été saisies dans le fichier source (Planification des tests.xls)
On Error Resume Next
col_source_execution = ws201.Rows(i).Find(What:="Exec", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Column
If Not col_source_execution Is Nothing Then
col_source_execution = ws201.ws201.Rows(i).Find(What:="Livr", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Column
'Mise à jour des dates d'éxecution, dans le fichier (cible) de transactions
wc.Cells(ligne_transaction_cible, col_cible_execution).Value = ws201.Cells(2, col_source_execution).Value
ElseIf col_source_execution Is Nothing Then
wc.Cells(ligne_transaction_cible, col_cible_execution).Value = ws201.Cells(2, col_source_execution).Value
End If
wc.Rows(ligne_transaction_cible).Interior.Color = RGB(255, 255, 0) 'jaune
' End If
Next
Application.ScreenUpdating = True
MsgBox ("Fin de traitement")
End Sub |
Partager