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
|
Public Sub RechercheAB()
'recherche à partir du fichier A vers le fichier B
'----- nombre de lignes d'une feuille Excel
'classeur_A (celui la)
LigneExcelNB = Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("BZ1").End(xlDown).Row
'----- nombre de lignes des colonnes
'classeur_A (celui la)
LigneNB_A = Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("B" & LigneExcelNB).End(xlUp).Row
'classeur_B (l'autre)
LigneNB_B = Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("F" & LigneExcelNB).End(xlUp).Row
LigneOffset = 1 'ligne suplémentaire
'----- boucle du fichier A colonne B
For n = 2 To LigneNB_A
'a suprimer , uniquement pour le test
Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("k10").Value = n
'au début de la recherche le data n'a pas été trouvé
DataExiste = False
'lecture de la cellule
DataFichAColB = Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("B" & n).Value
'un trou ?
If DataFichAColB <> "" Then
DataFichAColB = Right(DataFichAColB, 4)
'----- boucle du fichier B colonne F
For i = 2 To LigneNB_B
'a suprimer , uniquement pour le test
Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("k12").Value = i
DataFichBColF = Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("F" & i).Value
'un trou ?
If DataFichBColF <> "" Then
If DataFichAColB = DataFichBColF Then
'le data a été trouvé
DataExiste = True
'----- completer avec colonne e,f,g vers i,k,m
'écrire dans I
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("I" & i).Value = _
Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("E" & n).Value
'test avec colonne J du fichier B si I <> J alors I est en fond rouge
If Not Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("I" & i).Value = _
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("J" & i).Value Then
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("I" & i).Interior.ColorIndex = 3
End If
'écrire dans K , pas de test
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("K" & i).Value = _
Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("F" & n).Value
'écrire dans M , pas de test
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("M" & i).Value = _
Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("G" & n).Value
End If
End If
Next i
End If
'le data a t il été trouvé
If DataExiste = False Then
'ajouter le data dans le fichier B
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("F" & LigneNB_B).Offset(LigneOffset, 0).Value = DataFichAColB
'completer avec colonne e,f,g vers i,k,m
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("I" & LigneNB_B).Offset(LigneOffset, 0).Value = _
Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("E" & n).Value
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("K" & LigneNB_B).Offset(LigneOffset, 0).Value = _
Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("F" & n).Value
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("M" & LigneNB_B).Offset(LigneOffset, 0).Value = _
Workbooks("Classeur_A.xlsm").Sheets("Feuil1").Range("G" & n).Value
'fond des nouvelles cellules en couleur bizare
'utilise RGB pour voir les 2 façons de faire (plus de couleur avec RGB)
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("F" & LigneNB_B).Offset(LigneOffset, 0).Interior.Color = RGB(205, 169, 35)
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("I" & LigneNB_B).Offset(LigneOffset, 0).Interior.Color = RGB(205, 169, 35)
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("K" & LigneNB_B).Offset(LigneOffset, 0).Interior.Color = RGB(205, 169, 35)
Workbooks("Classeur_B.xlsm").Sheets("Feuil1").Range("M" & LigneNB_B).Offset(LigneOffset, 0).Interior.Color = RGB(205, 169, 35)
'nouvelle ligne suplémentaire
LigneOffset = LigneOffset + 1
End If
Next n
End Sub |