Recherche valeur sans la depacer

capricorne68

XLDnaute Occasionnel
Bonjour à tous les excellents ,
Je recherche la formule de recherche , me permettant de trouver une valeur dans un tableau exemple
100. Janvier
200. Février
250. Mars
450. Avril
664. Mai


Dans mon tableau j'ai la valeur de 10 et la valeur à trouve est janvier
200. ´´. Février
451. ´´. Mai
Voilà les résultats que je souhaite avoir , j'ai déjà essayer avec index équivalent , mais je reste bloquer .
Merci à bientôt
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Un essai en VBA.

Il faut simplement dans le module de code de la feuille "recap" indiquer l'adresse de la cellule de début du tableau résultat dans la constante CellBase.

Code dans le module de la feuille "recap":
VB:
Public Sub compil()
Const cellBase = "b14"     'cellCible est l'adresse de la cellule
                           'de départ des résultats sur la feuille "recap"
Dim iRecap&, i&, nlig&, tablo, Base As Range, cible As Range, n&

   Application.ScreenUpdating = False
   iRecap = Worksheets("recap").Index
   Set Base = Worksheets("recap").Range(cellBase)
   Set cible = Worksheets("recap").Range(cellBase)
   For i = 1 To iRecap - 1
      With Worksheets(i)
         nlig = .Cells(Rows.Count, "a").End(xlUp).Row
         If nlig > 1 Then
            .Range("a2:a" & nlig).Copy cible
            cible.Offset(, 1).Resize(nlig - 1) = .Name
            cible.Offset(, 2).Resize(nlig - 1).Formula = "=ROW()+ 1 - " & cible.Row
            cible.Offset(, 2).Resize(nlig - 1) = cible.Offset(, 2).Resize(nlig - 1).Value
            cible.Offset(, 3).Resize(nlig - 1).Formula = "=ROW()+ 1 - " & Base.Row
            cible.Offset(, 3).Resize(nlig - 1) = cible.Offset(, 3).Resize(nlig - 1).Value
            Set cible = cible.Offset(nlig - 1)
         End If
      End With
   Next i
   cible.Resize(Rows.Count - cible.Row + 1, 4).ClearContents
End Sub

Private Sub Worksheet_Activate()
   compil
End Sub

Code dans le module de ThisWorkbook:
VB:
Private Sub Workbook_Open()
Dim oldname
   oldname = LCase(ActiveSheet.Name)
   Worksheets("recap").Activate
   Worksheets("recap").compil
   If oldname <> "recap" Then Sheets(oldname).Select
End Sub

nota: La feuille recap doit se trouver juste après les deuilles 1 à n des mois.
 

Pièces jointes

  • capricorne68- essai recup- v1.xlsm
    23.7 KB · Affichages: 38
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 023
Membres
104 007
dernier inscrit
Monvieux