XL 2010 recherchev plusieurs classeur

titooooo

XLDnaute Occasionnel
bonjour le forum et bon dimanche

je voudrais trouver une formule qui fait

une recherchev sur toutes les feuille du classeur et rapporter les données de la colone e et f

et une fois les données extraite que ca sera trier en ordre du plus récent au plus ancien
nb mon classeur peut contenir jusqu’à 20 feuille identique mais chacune pour un championnat
 

Pièces jointes

  • all-euro-data-2015-2016.xls
    306.5 KB · Affichages: 56

CCMJoe

XLDnaute Nouveau
Bonjour titooooo et bonjour à tous,

Je te donne mon avis :
J'ai créé une colonne à côté de la tienne pour y mettre cette formule :
=SOMME.SI.ENS(E0!$E$2:$E$381;E0!$B$2:$B$381;Recherche!C3;E0!$C$2:$C$381;Recherche!D3;E0!$D$2:$D$381;Recherche!E3)
Cette formule ne concerne qu'une seule feuille (E0).

Je pense qu'il faut que tu fasses de même avec 1 colonne par championnat et puis qu'ensuite tu fasses la sommes des championnats. Ce sera plus lisible que d'avoir la somme directement.

Je te joins le fichier modifié.

XLMent vôtre,
Joe.
 

Pièces jointes

  • all-euro-data-2015-2016_mod.xls
    313.5 KB · Affichages: 59

Paf

XLDnaute Barbatruc
bonjour titoooooooo, CCMJoe,

un essai par macro événementielle. la sélection en A1 de la feuille recherche 'rapatrie' les données et trie dans l'ordre chronologique décroissant.
A copier dans la feuille de code de la feuille recherche

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonTab, TabFin(), i As Long, x As Long, j As Byte

If Target.Address = "$A$1" Then
    Range("C3").CurrentRegion.ClearContents
    For Each sh In Worksheets
        If sh.Name <> "Recherche" Then
            MonTab = sh.Range("B2:F" & sh.Range("B" & Rows.Count).End(xlUp).Row)
            For i = LBound(MonTab, 1) To UBound(MonTab, 1)
                If MonTab(i, 2) = Target Or MonTab(i, 3) = Target Then
                    x = x + 1
                    ReDim Preserve TabFin(1 To 5, 1 To x)
                    TabFin(1, x) = CDbl(MonTab(i, 1))
                    For j = 2 To 5
                        TabFin(j, x) = MonTab(i, j)
                    Next
                End If
            Next
            Erase MonTab
        End If
    Next
    If x > 0 Then
        Range("C3").Resize(UBound(TabFin, 2), UBound(TabFin, 1)) = Application.Transpose(TabFin)
        Range("C3:G" & 2 + UBound(TabFin, 2)).Sort Key1:=Range("C4"), Order1:=xlDescending, Header:=xlGuess
    End If
End If
End Sub

A+
 

Discussions similaires

Réponses
7
Affichages
428

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87