Fonction recherche première valeur + recherche plage corresp

Bonjour

J'aimerais trouver une fonction qui me renvois la première valeur d'une colonne (Date) ET qui me permet de renvoyer la 2ème, la 3ème,... lorsque j'étire ma fonction vers le bas. La fonction INDEX+1 ne fonctionne par car dans le tableau les dates peuvent passer du 8 mars au 10 mars (par ex).

Aussi, en fonction de la date, j'aimerais utiliser une fonction qui me renverrais la date de fin et la date de début (voir fichier joint).

Voici mon fichier en ayant complété la première ligne de mon tableau pour que vous compreniez ce que j'attends de ces deux fonctions qui me posent problème.

Merci

33test.xlsx (12.81 Ko)

bonjour,

une solution via une fonction personnalisée

Function fdate(r As Range, rank, info)
'paramètres r= tableau sans les entêtes
' rank = rang de la date à considérer
' info, 1=date, 2=heure de début, 3=heure de fin, 4=Quantité verticale, 5=quantité horizontale
df = 0
For i = 1 To r.Rows.Count
 If r.Cells(i, 1) <> "" Then
  df = df + 1
  If df = rank Then
    Select Case info
    Case 1
     fdate = r.Cells(i, 1): Exit Function
    Case 2
     fdate = r.Cells(i, 3): Exit Function
    Case 3, 4, 5
     For j = i + 1 To r.Rows.Count
      If r.Cells(j, 1) <> "" Then
       fdate = r.Cells(j - 1, info + 1): Exit Function
      End If
     Next j
     fdate = r.Cells(j - 1, info + 1): Exit Function
    End Select
  End If
 End If
Next i
End Function
19test.xlsm (19.62 Ko)

Merci H20so4 !

Lorsque je rajoute une date et des données à la suite de mon tableau jaune, le tableau bleu ne se met pas à jour. Il faut que je rajoute quelque chose au code pour se faire ?

bonjour,

oui il faut adapter les formules pour qu'elles prennent en compte les nouvelles données ou bien définir une plage dynamique.

Ah oui c'est bon j'avais pas vu où se terminais la plage de données dans la fonction. Je l'ai étirée et ça fonctionne très bien ! Merci beaucoup

re-bonjour,

solution avec une plage de données dynamique

39test.xlsm (19.69 Ko)

Je vais opter pour cette solution ! Encore merci

Il me reste encore un petit soucis : Pour la colonne P (Tps de prod°) j'aimerais soustraire, au temps de présence, la somme des arrêts.

Par exemple, dans mon cas (voir fichier) :

  • pour le 8-mars-17, en P4 je devrais avoir =04*1440-SOMME(L4:L9)
  • pour le 10-mars-17, en P5 je devrais avoir =O5*1440-SOMME(L10:L16)
. . .

Merci à ceux qui prendront le temps de revenir sur mon problème, et encore plus merci à ceux qui sauront me répondre

22test-3.xlsm (19.69 Ko)

bonjour,

une solution via une fonction personnalisée

Function sdate(r, d, o)
' fait la somme des données en colonne o selon un date
' paramètres r=tableau
' d=date pour laquelle il faut faire la somme
' o numero de colonne par rapport à la première colonne du tableau
For i = 1 To r.Rows.Count
 If d = r.Cells(i, 1) Then
  fr = i
  s = r.Cells(i, o).Value
 ElseIf fr <> 0 And r.Cells(i, 1) = "" Then
  s = s + r.Cells(i, o).Value
 ElseIf fr <> 0 Then
  Exit For
 End If
Next i
sdate = s
End Function
25test.xlsm (21.12 Ko)

Je me doutais bien qu'il fallait recréer une fonction personnalisée mais je ne suis pas doué dans ce domaine !

Encore merci H20s04

Rechercher des sujets similaires à "fonction recherche premiere valeur plage corresp"