Rechercher & liste deroulante

Ilino

XLDnaute Barbatruc
Bonsoir Forum
Je vous solicite encore a m’aider
Ci-joint le fichier ,
Je souhaiterai dans la feuille F2 faire la somme de chaque ligne jaune ( ex Z9 AI9) on récupérant les valeurs de la feuille F1 selon la selection de la liste deroulante
GRAZIE
Edit : Merci Job and 00
 

Pièces jointes

  • Ilino - Validation données - valeurs visibles V2 OO JOB.xlsm
    44.2 KB · Affichages: 28

Ilino

XLDnaute Barbatruc
Re : Rechercher & liste deroulante

BONSOIR MAPOMME
MERCI POUR LA REPONSE
MAIS J AI TROUVE UN PETIT SOUCI
SI JE SELECTIONNE DANS CHAQUE CELLULE (Liste deroulante) meme valeur je n'aurai pas la somme
exemple si je selectionne A1 dans toutes les cellule de la Ligne 9 j'aurais la somme 1 ????
A+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Rechercher & liste deroulante

Bonjour Ilino,

[...] UN PETIT SOUCI
SI JE SELECTIONNE DANS CHAQUE CELLULE (Liste deroulante) meme valeur je n'aurai pas la somme
exemple si je selectionne A1 dans toutes les cellule de la Ligne 9 j'aurais la somme 1 ????
[...]

Un autre essai avec une fonction personnalisée:=SomValeursSi(Criteres , Dans, NumCol) avec:
  • Criteres -> la plage des critères à respecter (plage Z9:AI9)
  • Dans -> la plage où respecter les critères (plage $A$30:$A$2064 de la feuille F1)
  • NumCol -> le décalage à appliquer à la colonne Dans pour trouver la colonne des valeurs à sommer (ici 10)
.
ce qui donne en cellule AJ9 à recopier vers le bas : =SomValeursSi(Z9:AI9;'F1'!$A$30:$A$2064;10)

Le code de la fonction dans module1:
VB:
Function SomValeursSi(xCriteres As Range, xDans As Range, NumCol&)
Dim yCriteres, tabCriteres(), n&, yDans, yCol, i&, i2&, j&, j2&
  
  SomValeursSi = 0
  yCriteres = xCriteres.Value: i2 = UBound(yCriteres, 2)
  n = 0
  For i = 1 To i2
    If Len(yCriteres(1, i)) > 0 Then
      n = n + 1
      ReDim Preserve tabCriteres(1 To n)
      tabCriteres(n) = "/" & yCriteres(1, i) & "/"
    End If
  Next i
  If n = 0 Then Exit Function
  
  yDans = xDans.Value: j2 = UBound(yDans)
  yCol = xDans.Offset(, NumCol).Value
  
  For j = 1 To j2
    If Len(yDans(j, 1)) > 0 Then SomValeursSi = SomValeursSi _
        + (UBound(Filter(tabCriteres, "/" & yDans(j, 1) & "/", True, vbTextCompare)) + 1) _
        * yCol(j, 1)
  Next j
  
End Function
 

Pièces jointes

  • Ilino - somme criteres v1.xlsm
    49.1 KB · Affichages: 37

Discussions similaires

Réponses
3
Affichages
400