Analyser les données d'un tableau

wizard0147

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à analyser les données provenant de plusieurs feuilles d'un tableau Excel.
Je vous mets mon document en pièce jointe.

Les données de ce classeur sont triées par année. Une feuille représente une année.
Dans chaque feuille, il y a 3 tableaux qui montrent les importations du pays pour 3 produits différents sur l'année indiquée.

Je cherche en fait à créer un tableau permettant de comparer en un coup d’œil les totaux en Kg et € pour les différentes années.

J'ai essayé de passer par un TCD mais comme je le pensais, cela semble impossible.

J'ai ensuite essayé via un tableau fait manuellement en passant par les formules INDEX/EQUIV mais cela ne fonctionne pas à cause de la subdivision des colonnes dans les tableaux de données (Voir fichier en pièce jointe).

Je me tourne donc vers vous afin de trouver une solution à mon problème. Petit challenge supplémentaire, idéalement je souhaiterai que ce tableau de synthèse puisse établir seul la liste des pays exportateurs (attention cette liste varie d'une année à un l'autre).

Merci pour votre aide
 

Pièces jointes

  • Austria.xlsx
    31.7 KB · Affichages: 67
  • Austria.xlsx
    31.7 KB · Affichages: 74
  • Austria.xlsx
    31.7 KB · Affichages: 71
Dernière édition:

wizard0147

XLDnaute Occasionnel
Re : Analyser les données d'un tableau

Petit update, j'ai réussi à afficher les valeurs via la fonction RECHERCHEV :)
Reste donc la dernière question : Y'a-t-il un moyen qu'Excel établisse la liste de tous les pays concernés dans les différents tableaux ?
 

wizard0147

XLDnaute Occasionnel
Re : Analyser les données d'un tableau

Bon finalement, j'ai sauté de joie un peu vite :rolleyes:

Il y a en effet un petit problème avec RECHERCHEV. En fait, lorsque qu'il recherche un pays qui n'existe pas dans la plage de recherche, au lieu de mettre 0, il remet les valeurs de la ligne du dessus (Voir exemple en pièce jointe).

Vous n'auriez pas une petite idée ?:confused:
 

Pièces jointes

  • Austria.xlsx
    34.3 KB · Affichages: 33
  • Austria.xlsx
    34.3 KB · Affichages: 36
  • Austria.xlsx
    34.3 KB · Affichages: 37

Dugenou

XLDnaute Barbatruc
Re : Analyser les données d'un tableau

Bonjour,
Une proposition en pj : risque d'être assez fastidieux si tu as de nombreuses références (codes)
Par contre je ne vois pas comment rendre dynamique la liste des pays sauf avec une macro (ce que je ne sais pas faire)
Cordialement
 

Pièces jointes

  • wizard0147 V1.xlsx
    32.7 KB · Affichages: 28

Efgé

XLDnaute Barbatruc
Re : Analyser les données d'un tableau

Bonjour wizard0147, Bonjour Dugenou :)
J'étais justement parti sur une macro
Une proposition :
Refaire une vrai base de données avec les différentes feuilles pour pouvoir créer un TCD.
Le prérequis : Il n'y a dans le classeur que des feuilles "Année" et la feuille Analyse qui porte le bouton.
VB:
Private Sub CommandButton1_Click()
Dim i&, Test&, ID&, Annee$
Dim F As Worksheet, TTmp As Variant, Treport As Variant
ReDim Treport(1 To 5, 1 To 1)
Treport(1, 1) = "Année": Treport(2, 1) = "ID"
Treport(3, 1) = "Pays": Treport(4, 1) = "Kg"
Treport(5, 1) = "€"
For Each F In Worksheets
    If F.Name < > ActiveSheet.Name Then
        Annee = F.Name
        TTmp = F.Range(F.Cells(1, 1), F.Cells(Rows.Count, 1).End(3)(1, 28))
        For i = LBound(TTmp, 1) To UBound(TTmp, 1)
            On Error Resume Next
            Test = CLng(TTmp(i, 1))
            If Test < > 0 Then
               ID = TTmp(i, 1)
            Else
                Err.Clear
                If UCase(TTmp(i, 1)) < > "TOTAL" And TTmp(i, 1) < > "" Then
                    ReDim Preserve Treport(1 To 5, 1 To UBound(Treport, 2) + 1)
                    Treport(1, UBound(Treport, 2)) = Annee
                    Treport(2, UBound(Treport, 2)) = ID
                    Treport(3, UBound(Treport, 2)) = TTmp(i, 1)
                    Treport(4, UBound(Treport, 2)) = TTmp(i, 27)
                    Treport(5, UBound(Treport, 2)) = TTmp(i, 26)
                End If
            End If
        Next i
    End If
Next F
Columns("$A:$E").Clear
Cells(1, 1).Resize(UBound(Treport, 2), UBound(Treport, 1)) = Application.Transpose(Treport)
Columns("$A:$E").AutoFit
ActiveWorkbook.RefreshAll
End Sub

Le code est dans le code de la feuille, clic droit sur l'onglet Analyse / visualiser le code
La source du TCD est une plage nommée dynamique

Cordialement
 

Pièces jointes

  • Austria(1).xls
    84 KB · Affichages: 36
Dernière édition:

wizard0147

XLDnaute Occasionnel
Re : Analyser les données d'un tableau

Bonjour Efgé, Dugenou :)
Je vous remercie pour vos méthodes.
J'ai opté pour la macro d'Efgé notamment pour le côté évolutif (années à venir) mais je garde le code de Dugenou sous le coude ^^
En effet, ton code m'a donné des idées pour d'autres tableaux.

Un grand merci à tous les deux !
 

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu