Re : Recherches H + V combinées
Bonjour,
pour ma part, ce sera une solution par vba et non par fonction
Renseigner dpt et pds et le tour est joué.
Code en Feuil1 : (altF11 pour ouvrir l'editeur VBA puis developper "Microsoft Excel Object" à gauche
'/////////////////////////////////////////////////////////////////////////////
'lorsqu'on change une valeur dans une cellule
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sel As Range
'pour une plage
Set Sel = Range("BdepPoids") ' cellules Poids et Dept
'siLa cellule appartient au bloc BdepPoids "
If Not Application.Intersect(Sel, Range(Target.Address)) Is Nothing Then
'si les 2 cellules sont renseignées cad non vides
If Range("Q7").Value <> "" And Range("Q8").Value <> "" Then
'selection de la ligne (Dpt)concernée
Range(Range("A2"), Range("A2").End(xlDown)).Select
Selection.Find(What:=Range("Q7").Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
'puis rechercher la colonne concernée et recup du prix pour le repercuter en case Prix du departement
Select Case Range("Q8").Value
'différents cas selon le poids
Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9: Range("Bprix").Value = Cells(ActiveCell.Row, 3)
Case 10, 11, 12, 13, 14, 15, 16, 17, 18, 19: Range("Bprix").Value = Cells(ActiveCell.Row, 4)
Case 20, 21, 22, 23, 24, 25, 26, 27, 28, 29: Range("Bprix").Value = Cells(ActiveCell.Row, 5)
Case 30, 31, 32, 33, 34, 35, 36, 37, 38, 39: Range("Bprix").Value = Cells(ActiveCell.Row, 6)
Case 40, 41, 42, 43, 44, 45, 46, 47, 48, 49: Range("Bprix").Value = Cells(ActiveCell.Row, 7)
Case 50, 51, 52, 53, 54, 55, 56, 57, 58, 59: Range("Bprix").Value = Cells(ActiveCell.Row, 8)
Case 60, 61, 62, 63, 64, 65, 66, 67, 68, 69: Range("Bprix").Value = Cells(ActiveCell.Row, 9)
Case 70, 71, 72, 73, 74, 75, 76, 77, 78, 79: Range("Bprix").Value = Cells(ActiveCell.Row, 10)
Case 80, 81, 82, 83, 84, 85, 86, 87, 88, 89: Range("Bprix").Value = Cells(ActiveCell.Row, 11)
Case 90, 91, 92, 93, 94, 95, 96, 97, 98, 99: Range("Bprix").Value = Cells(ActiveCell.Row, 12)
'tous les autre cas
Case Else:
If Range("Q8").Value < 991 Then
Range("Bprix").Value = Cells(ActiveCell.Row, 13)
End If
End Select
End If
End If
End Sub
'/////////////////////////////////////////////////////////////////////////////