Afficher le nombre d'occurence et leur localisation

Bonjour,

J'ai une problématique:

J'ai plusieurs fichier Excel avec plusieurs onglets. Dans ces fichiers Excel, il y a des références liés a des désignation. J'aimerais créer un onglet récapitulatif ou par liste déroulante ou autre pour chaque références ca me donne:

- sa quantité dans le fichier Excel

- son emplacement (dans quel onglets il apparait)

Est ce possible de réaliser ca? Si oui quelqu'un peut t'il m'indiquer la marche a suivre ou m'aider a la réalisation de ce récapitulatif?

Je vous remercie par avance de votre aide

9nomenclature.zip (311.49 Ko)

Petite précision je suis totalement novice en VBA

Bonjour Turok et bienvenu, bonjour le forum,

Le fichier, le fichier !!! Criait la foule en délire...

Merci ThauThème pour le rappel

je viens de le joindre a la demande mais je ne sais pas si ca va être assez explicite avec les fausses données :/

Re,

Peut-être comme ça :

Option Explicit

Sub Macro1()
Dim R As Worksheet 'déclare la variable R (onglet Recap)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim O As Worksheet 'déclare la variable O (onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim T As Integer 'déclare la variable T (Total)

Set R = Worksheets("Recap") 'définit l'onglet R
R.Range("A1").CurrentRegion.ClearContents 'efface d'éventuelles anciennes valeurs dans l'onglet R
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For Each O In Sheets 'boucle sur tous les onglets O
    If O.Name <> R.Name Then 'condition : si l'onglet de la boucle n'est pas l'onglet R
        TV = O.Range("D11").CurrentRegion 'définit le tableau des valeurs TV
        For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
            If TV(I, 1) <> "" Then D(TV(I, 1)) = "" 'alimente le dictionnaire D avec les données de la colonne 1 de TV
        Next I 'prochaine ligne de la boucle
    End If 'fin de la condition
Next O 'prochaine onglet de la boucle
TMP = D.keys 'récupère dans le tableau temporaire TMP la liste des éléments du dictionnaire D sans doublon
ReDim TL(1 To 3, 1 To D.Count) 'redimensionne le tableau des lignes Tl (3 lignes, autant de colonnes que d'éléments dans le tableau temporaire TMP)
For J = 0 To UBound(TMP) 'boucle 1 : sur tous les éléments du tableau temporaire TMP
    T = 0 'initialise le total T
    For Each O In Sheets 'boucle 2 : sur tous les onglets O du classeur
        If O.Name <> R.Name Then 'condition 1 : si l'onglet de la boucle n'est pas l'onglet R
            TV = O.Range("D11").CurrentRegion 'définit le tableau des valeurs TV
            For I = 2 To UBound(TV, 1) 'boucle 3 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
                If TV(I, 1) = TMP(J) Then 'condition 2 : si la donnée ligne I colonne 1 de TV est égale a l'élément J de TMP
                    TL(1, J + 1) = TV(I, 1) 'récupère la donnée dans la ligne 1 de TL
                    T = T + TV(I, 2) 'définit la total T
                    TL(2, J + 1) = T 'récupère le total T dans la ligne 2 de TL
                    TL(3, J + 1) = IIf(TL(3, J + 1) = "", O.Name, TL(3, J + 1) & "/" & O.Name) 'concatene le nom de l'onglet dans la ligne 3 de TL
                End If 'fin de la condition 2
            Next I 'prochaine ligne de la boucle 3
        End If 'fin de la condition 1
    Next O 'prochain onglet de la boucle 2
Next J 'prochain élément de la boucle 1
R.Range("A1").Resize(UBound(TL, 2), 3).Value = Application.Transpose(TL) 'renvoie dans A1 redimensionnée de l'onglet R le tableau TL transposé
End Sub

Wahou merci je vais essayer de comprendre pour tester ça :)

Encore merci pour toutes ses lignes.

Ma demande va peut être être abusé mais serait t'il possible que tu m'expliques ce que je dois remplacer par mes valeurs?

Je suis vraiment débutant dans les macros et j'ai beau essayé de comprendre j'ai vraiment du mal

Je te remercie par avance du temps consacré au problemes

Rechercher des sujets similaires à "afficher nombre occurence leur localisation"