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
|
Option Explicit
Sub comparer_2_fichiers()
Dim nom_classeur1 As String
Dim Feuille As String, reponse As String
Dim a As Integer, l As Integer, m As Integer, k As Integer, i As Integer, j As Integer, z As Integer, termine_macro As Integer
nom_classeur1 = InputBox("tapez le nom du classeur ou se trouvent les appels d'offres")
If nom_classeur1 = "" Then
Exit Sub
End If
Workbooks.Add
ActiveWorkbook.SaveAs "C:\Documents and Settings\JMDUPOUX\Bureau\produit CHU accepté-supprimé.xls"
Workbooks("produit CHU accepté-supprimé.xls").Worksheets("Feuil1").Activate 'compte le nombre de ligne jusqu'a cellule vide
k = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 'pour le 2nd fichier et la 1ere feuille
Do 'boucle pour comparer toutes les feuilles
Feuille = InputBox("tapez le nom de la feuille a traiter")
If Feuille = "" Then
Exit Sub
End If
Workbooks(nom_classeur1 & ".xls").Worksheets(Feuille).Activate 'compte le nombre de ligne jusqu'a cellule vide
l = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 'pour le 1er fichier
Workbooks("TOUS LES ARTICLES SUPPRIMES dernier.xls").Worksheets("Art Supprimés").Activate 'compte le nombre de ligne jusqu'a cellule vide
m = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 'pour le 2nd fichier et la 1ere feuille
'k = 1 ' variable ligne pour le fichier produit CHU accepté-supprimé.xls
For i = 2 To l Step 1 'boucle du 1er fichier "CHU.xls", pour comparer les articles de mon client
For j = 2 To m Step 1 'boucle du 2er fichier "TOUS LES ARTICLES SUPPRIMES dernier.xls", pour trouver les articles si des articles de mon client sont supprimés ou bloqués
If Workbooks(nom_classeur1 & ".xls").Worksheets(Feuille).Cells(i, 3) = Workbooks("TOUS LES ARTICLES SUPPRIMES dernier.xls").Worksheets("Art Supprimés").Cells(j, 1) Then
Workbooks(nom_classeur1 & ".xls").Worksheets(Feuille).Rows(i).Copy ' si article trouvé, la macro copie la ligne
Workbooks("produit CHU accepté-supprimé.xls").Worksheets("Feuil1").Activate
Rows(k).PasteSpecial ' et colle la ligne dans la feuille 1 du fichier "produit CHU accepté-supprimé.xls"
k = k + 1
Exit For 'on sort de la boucle des qu'on a trouvé
End If
If j = m Then ' une fois que la macro est venue à bout du la feuille "Art Supprimés" du fichier "TOUS LES ARTICLES SUPPRIMES dernier.xls"
' elle s'attaque à la feuille "Art Bloqués" du fichier "TOUS LES ARTICLES SUPPRIMES dernier.xls"
Workbooks("TOUS LES ARTICLES SUPPRIMES dernier.xls").Worksheets("Art Bloqués").Activate 'compte le nombre de ligne jusqu'a cellule vide
z = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 'pour le 2nd fichier et la 2nd feuille
For a = 2 To z Step 1
If Workbooks(nom_classeur1 & ".xls").Worksheets(Feuille).Cells(i, 3) = Workbooks("TOUS LES ARTICLES SUPPRIMES dernier.xls").Worksheets("Art Bloqués").Cells(a, 1) Then
Workbooks(nom_classeur1 & ".xls").Worksheets(Feuille).Rows(i).Copy ' si article trouvé, la macro copie la ligne
Workbooks("produit CHU accepté-supprimé.xls").Worksheets("Feuil1").Activate
Rows(k).PasteSpecial ' et colle la ligne dans la feuille 1 du fichier "produit CHU accepté-supprimé.xls"
k = k + 1
Exit For 'on sort de la boucle des qu'on a trouvé
End If
Next a
End If
Next j
Next i
termine_macro = MsgBox("Avez vous une autre feuille à traiter", vbYesNo + vbCritical + vbDefaultButton2, "Titre de la boîte")
If termine_macro = vbYes Then
reponse = "OUI"
Else
reponse = "NON"
End If
Loop Until reponse = "NON"
End Sub |
Partager