Comparaison entre plusieurs onglet et récap dans une feuille récap

  • Initiateur de la discussion Initiateur de la discussion momo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

momo

XLDnaute Occasionnel
Bonjour à tous!!!

Je viens par la présente vous faire part d'un soucis que j'ai à mettre en place une formule ou une macro qui me resumerait les éléments que les onglets Momo Lolo et May ont en commun avec la feuille "base" et les renseigner dans une feuille recap.

Dans un précédent post j'avais fait la même demande mais la feuille recap se présentait différemment et cette fois ci la macro qu'on m'ai aidé à avoir n'arrive pas a faire le nouveau récap
 

Pièces jointes

Re : Comparaison entre plusieurs onglet et récap dans une feuille récap

Bonjour,
Changer d'avis n'est pas interdit, mais si job75 ne prend pas le job ... (bon usine à gaz en perspective)
J'utiliserai le récap existant grâce à job et juste le transposer à ta nouvelle mise en page (matricielle et index - equiv)
 
Re : Comparaison entre plusieurs onglet et récap dans une feuille récap

re,
Euh,j'avais pas creusé, mais quand job disait "usine à gaz", la formulation est légère ....
d'ailleurs tu as deux lignes de plus que sa macro.
Se baser sur le code, le n° de ref est déjà une chose, sur des interprétation de désignations, bonne nuit ...
 
Re : Comparaison entre plusieurs onglet et récap dans une feuille récap

Mais non st007
la recherche ne se fait que sur les numeros en colonne a sur chacun des onglets; Il n'y a que eux qui soient exactement identique sur tous les onglets.
Et tu verras que sur la macro de Job 75 dans mon fichier j'ai ramené la recherche à juste ce numero là;

En soi la macro de job me fait le Job 😱 mais c juste que j'aurais voulu que les resultat se presentent tel q le tableau de l'onglet recap2 se présente. C'est ma seule difficulté en fait
 
Re : Comparaison entre plusieurs onglet et récap dans une feuille récap

st007 ET job75
En fonction de l'explication supp donnée est ce qu'il ne serait pas possible de faire en fonction de la mise en forme du recap 2?
 
Dernière édition:
Re : Comparaison entre plusieurs onglet et récap dans une feuille récap

Bonsoir momo, st007,

On a bien compris le problème depuis longtemps.

Mais vous ce que vous ne comprenez pas c'est que faire des recherches avec des critères trop vagues (description) ou trop tordus (montants) mène tout droit à l'usine à gaz.

Normal qu'il n'y ait pas d'amateur.

Bonne fin de soirée.
 
Re : Comparaison entre plusieurs onglet et récap dans une feuille récap

Bonjour Job

J'avais bien compris que je m'étais mal exprimé pour me faire comprendre...

En fait la recherche ne se faisait que par les numéros de référence qui sont communes dans toutes les feuilles.

JE précisais juste que ces numeros identiques sur chaque feuille pourrait avoir des descriptions differentes selon les feuilles mais ça a la limite on s'en fout . Mon réel problème était de pouvoir faire la mise en forme
MAis je crois que st007 m' a donné des pistes pour que j'y arrive

Merci à vous deux de m'avoir consacré de votre temps alors même que ce n'était pas une obligation...
 
Re : Comparaison entre plusieurs onglet et récap dans une feuille récap

Bonjour momo, le forum,

La mise en forme du tableau n'est guère un problème.

Si l'on se contente de comparer uniquement les 1ères colonnes (Num) c'est "relativement" simple :

Code:
Private Sub Worksheet_Activate()
Dim a, ub%, ncol%, base, lig&, d As Object, i&, num, nlig&
Dim j%, nlig1&, rest(), t, n&, p&, coul&
a = Array("Base", "Momo", "Lolo", "May") 'feuilles à étudier
ub = UBound(a)
ncol = 2 * ub + 3
base = Sheets(a(0)).[A1].CurrentRegion.Resize(, 3)
lig = 3 '1ère ligne à renseigner
Set d = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
Rows("3:" & Rows.Count).Delete 'RAZ
For i = 2 To UBound(base)
  num = base(i, 1)
  If Not d.exists(num) Then 'élimine les doublons
    d(num) = ""
    nlig = 0
    For j = 1 To ub
      nlig1 = Application.CountIf(Sheets(a(j)).[A:A], num)
      If nlig1 > nlig Then nlig = nlig1
    Next j
    If nlig Then
      nlig1 = Application.CountIf(Sheets(a(0)).[A:A], num)
      If nlig1 > nlig Then nlig = nlig1
      ReDim rest(1 To nlig, 1 To ncol)
      rest(1, 1) = num
      For j = 0 To ub
        t = Sheets(a(j)).[A1].CurrentRegion.Resize(, 3)
        n = 0
        For p = 2 To UBound(t)
          If t(p, 1) = num Then
            n = n + 1
            rest(n, 2 * j + 2) = t(p, 2)
            rest(n, 2 * j + 3) = t(p, 3)
          End If
        Next p
      Next j
      coul = coul + 1
      With Cells(lig, 2).Resize(nlig, ncol)
        .Value = rest
        If coul Mod 2 Then .Interior.ColorIndex = 24
      End With
      lig = lig + nlig
    End If
  End If
Next i
End Sub
Fichier joint, je colore les lignes de même "Num" une fois sur 2 pour plus de lisibilité.

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

T
Réponses
2
Affichages
874
thsoulard
T
C
  • Question Question
Réponses
23
Affichages
4 K
Réponses
15
Affichages
3 K
Membre supprimé 341069
M
M
Réponses
7
Affichages
5 K
M
Retour