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
|
Sub Recherche()
Dim AireDataBase As Range, CelluleDataBase As Range
Dim LigneTitreDataBase As Long, DerniereLigneDataBase As Long
Dim AireTraitement As Range, CelluleTraitement As Range
Dim LigneTitreTraitement As Long, DerniereLigneTraitement As Long, DerniereColonneTraitement As Long, ColonneTraitement As Long
With Sheets("DATABASE")
LigneTitreDataBase = 1
DerniereLigneDataBase = .Cells(.Rows.Count, 1).End(xlUp).Row
Set AireDataBase = .Range(.Cells(LigneTitreDataBase + 1, 1), .Cells(DerniereLigneDataBase, 1))
End With
With Sheets("Traitement")
LigneTitreTraitement = 1
ColonneTraitement = 1
DerniereLigneTraitement = .Cells(.Rows.Count, ColonneTraitement).End(xlUp).Row
DerniereColonneTraitement = .Cells(LigneTitreTraitement, .Columns.Count).End(xlToLeft).Column
Set AireTraitement = .Range(.Cells(LigneTitreTraitement, ColonneTraitement), .Cells(DerniereLigneTraitement, ColonneTraitement))
End With
For Each CelluleDataBase In AireDataBase
For Each CelluleTraitement In AireTraitement
If CelluleTraitement = CelluleDataBase Then
' Si la formule dans DATABASE doit être la dernière colonne de la ligne trouvée dans TRAITEMENT
'With Sheets("Traitement")
'DerniereColonneTraitement = .Cells(CelluleTraitement.Row, .Columns.Count).End(xlToLeft).Column
'End With
CelluleDataBase.Offset(0, 3).Formula = "=sum(Traitement!" & CelluleTraitement.Address & _
":" & CelluleTraitement.Offset(0, DerniereColonneTraitement - ColonneTraitement).Address & ")"
Exit For
End If
Next CelluleTraitement
Next CelluleDataBase
Set AireDataBase = Nothing
Set AireTraitement = Nothing
End Sub |
Partager