Compilation de fichiers Excel

Bonjour à toutes et à tous,

Je ne suis pas un expert Excel mais d'habitude je me débrouille. Cependant, cette fois je sèche alors que la solution me parait être évidente...

J'ai 3 fichiers Excel (des exports d'une BdD).

Le premier contient les colonnes suivantes : ID, Nom, Prénom

Le second contient les colonnes suivantes : ID, Groupe

Le troisième contient les colonnes suivantes : ID, Rôle

Je souhaiterais compiler ces infos sur une seule feuille pour une lecture immédiate sous la forme de colonnes suivantes :

  • ID
  • Nom
  • Prénom
  • Groupe 1
  • Groupe 2
  • Groupe 3
  • Groupe...

Et une sub-division de chaque colonne Groupe :

  • Rôle 1
  • Rôle 2
  • Rôle 3
  • Rôle...

Un même ID peut appartenir à plusieurs Groupes. Ce même ID peut également avoir plusieurs Rôles au sein d'un même Groupe.

Le ID est unique.

Un simple "X" dans chaque cellule de la ligne me suffit amplement.

Merci pour votre aide et vos pistes de réflexion !

A+

Bonsoir,

Combien de colonnes au juste ? Et avec quels intitulés ? Car les subdivisions de colonnes... Il y a colonne ou pas colonne.

Et quel contenu des fichiers source pour les colonnes Groupe et Rôle ?

Cordialement.

bonjour

salut MFerrand

voici une piste, sérieuse, très sérieuse

https://www.youtube.com/watch?v=jmCzNTBbipQ

mais le top sera Power BI desktop gratuit

à tester d'urgence

amitiés à tous

Bonjour,

Merci pour vos réponses. Effectivement, le plus simple aurait été de vous joindre un fichier d'exemple. C'est chose faite.

Malheureusement, je n'ai pas accès à Youtube au boulot (bloqué) ni la possibilité d'installer d'autres softs que ceux disponibles sur mon PC.

Je continue à chercher de mon côté mais je pense que je n'utilise pas les bons termes...

Encore merci.

7classeur1.xlsx (10.62 Ko)

Bonjour,

Tes Groupes et Rôles n'étant pas définis dans ton tableau de synthèse, ni leurs relations, je ne vois pas bien comment on pourrait les inventer ! Cela doit être une spécification fournie au démarrage, sauf s'il n'y a aucune relation entre rôles et groupes, et que leur nombre respectif n'est pas limité, ce qui conduirait à des colonnes groupes et rôles indépendantes les unes des autres, en nombre non définis, à ajouter au fil des apparitions, mais c'est alors cette spécification qui devrait être donnée au départ.

Cordialement.

Bonjour,

Merci pour vos réponses. Effectivement, le plus simple aurait été de vous joindre un fichier d'exemple. C'est chose faite.

Malheureusement, je n'ai pas accès à Youtube au boulot (bloqué) ni la possibilité d'installer d'autres softs que ceux disponibles sur mon PC.

Je continue à chercher de mon côté mais je pense que je n'utilise pas les bons termes...

Encore merci.

re

en gros, ton admin est ...

car il admet VBA qui est une passoire à virus, et interdit les progrès depuis 10 ans

alors qu'il y a longtemps qu'il aurait dû venir te voir pour t'installer Power BI Desktop (version payante ougratuite)

il assure son pouvoir dans l'entreprise par des interdictions, au lieu de montrer son pouvoir en tant que source de progrès.

va le voir et à toi de le convaincre.

...et oui...

Cependant, c'est une grande entreprise et je ne suis qu'un numéro de matricule parmi des milliers d'autres dissémines à travers le monde. Les stratégies de sécurité sont décidées en haut lieu et il me faudrait un billet d'avion pour la Thaïlande, les USA ou je ne sais où pour éventuellement rencontrer ceux qui décident de ça...

Bonjour Hemi,

"voici pour t'aider :"
screen

dahny

Effectivement, ça pourrait m'être utile !

Je me suis rendu compte en me relisant qu'il manquait l'explication sur le fichier fourni... C'est ça de faire plusieurs choses en même temps quand on n'est pas équipé pour...

Donc, le fichier comporte 4 feuilles.

Les 3 premières sont des exports directs de la BdD.

La 4e représente la feuille sur laquelle je voudrais compiler les informations des 3 premières.

Pour résumé et pour exemple, l'ID "1" appartient au Groupe "BCI" et "ADD" ainsi qu'au Rôle "BCI_15" donc dans ce cas, les cellules correspondantes à la ligne de l'ID "1" sur la feuille 4 sont marquées d'un "X".

J'espère avoir été assez clair ?

Merci pour vos réponses

Ah ! Désolé d'avoir zappé ta 4e feuille, en effet !

Pas le temps maintenant, mais tu peux nous dire si on traite à partir de feuille rapatriée dans ton fichier (les 3 premières feuilles donc, ou si on devra traiter à partir de fichiers, à ouvrir éventuellement...

Cordialement.

Pas de soucis !

Traité à partir de feuilles rapatriées dans mon fichier me suffira amplement !

Merci d'avance !

Le groupe ADM doit-il être ignoré ?

Oh désolé, c'est une erreur de frappe... Il faut lire "ADD"

Bonsoir,

Procédure pour réaliser la synthèse à partir des données de trois feuilles source :

Sub Synthèse()
    Dim Lib, LID, Syn, Tmp, f, i&, j&, k%
    With ActiveSheet.Range("A1").CurrentRegion
        Lib = .Rows(2).Value
        .Offset(2).ClearContents
    End With
    With Worksheets("Feuil1").Range("A1").CurrentRegion.Offset(1)
        Syn = .Resize(.Rows.Count - 1, UBound(Lib, 2)).Value
        LID = .Resize(.Rows.Count - 1, 1).Value
    End With
    For Each f In Array("Feuil2", "Feuil3")
        Tmp = Worksheets(f).Range("A1").CurrentRegion.Value
        On Error Resume Next
        For i = 2 To UBound(Tmp)
            j = WorksheetFunction.Match(Tmp(i, 1), LID, 0)
            k = WorksheetFunction.Match(Tmp(i, 2), Lib, 0)
            If Err.Number = 0 Then
                Syn(j, k) = "X"
            Else
                Err.Clear
            End If
        Next i
        On Error GoTo 0
    Next f
    ActiveSheet.Range("A3").Resize(UBound(Syn, 1), UBound(Syn, 2)).Value = Syn
End Sub

Méthode : travail sur tableau reposant sur le fait que la source ID | Nom | Prénom est à rapatrier intégralement dans synthèse, les ID étant unique, il ne peut y avoir de doublon sur cette source qui sert ainsi de base à la constitution de la synthèse.

1) Sur la feuille synthèse, on récupère en tableau (Lib) la ligne 2 (2e ligne d'en-tête) qui servira de référence pour les positions de libellés des groupes et rôles,

puis on efface les données éventuellement existantes.

(NB- Noter la petite modification apportée à l'en-tête de la feuille afin de placer tous les noms de champs en 2e ligne.)

2) Sur la feuille 1 (source ID | Nom | Prénom), on récupère la totalité des données (en-tête exclue) mais e agrandissant le tableau (Syn) en nombre de colonnes pour l'aligner sur le tableau des libellés ; ce tableau Syn servira ainsi de support pour y adjoindre les données groupes et rôles ;

on récupère également la 1re colonne (sans en-tête) en tableau (LID), référence pour les positions des ID.

3) On démarre une boucle sur les deux autres feuilles (groupes et rôles), elles ont la même structure, ID en 1 et Groupe ou Rôle en 2, et peuvent donc être trraitées identiquement.

Prélèvement de l'ensemble des données dans un tableau (Tmp).

On parcourt les lignes de ce tableau de la ligne 2 à la fin ; pour chaque ligne :

  • recherche du rang de l'ID dans LID
  • recherche du rang du groupe ou rôle dans Lib
au moyen de Match (fonction EQUIV d'Excel).

Ces rangs correspondent aux index ligne et colonne dans le tableau Syn.

Disposant des coordonnées, on affecte la valeur "X" à cet emplacement dans le tableau.

La recherche est mise sous gestion d'erreur pour éviter qu'un faux Groupe ou Rôle ne puisse interrompre la procédure.

4) Une fois les deux feuilles traitées, on affecte à la plage de la feuille en A3, redimensionnée à la taille du tableau Syn, ledit tableau Syn.

Cordialement.

...et oui...

Cependant, c'est une grande entreprise et je ne suis qu'un numéro de matricule parmi des milliers d'autres dissémines à travers le monde. Les stratégies de sécurité sont décidées en haut lieu et il me faudrait un billet d'avion pour la Thaïlande, les USA ou je ne sais où pour éventuellement rencontrer ceux qui décident de ça...

donc tu bosses pour l'étranger

alors je suis un Français heureux de voir que nos concurrents sont en retard question informatique

amitiés à toi et à tous

@MFerrand : Merci beaucoup !

Je teste ça dans l'après-midi sur les exports de la BdD (mais y'a pas de raison que ça ne fonctionne pas...).

@jmd : Et oui !!

Dans tous les cas, merci pour votre aide !

Je viens d'effectuer le test sur le fichier de prod et tout fonctionne nickel !

Je vais me pencher sur la solution de colorier la cellule plutôt que de mettre un "X" histoire de rendre ça plus sympa à regarder si c'est possible...

Encore merci !

Rechercher des sujets similaires à "compilation fichiers"