Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL pour MAC Somme issue d'une recherche sur plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion fpinet
  • 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 !

fpinet

XLDnaute Nouveau
Bonjour,
Grand débutant, j'ai besoin d'aide pour une formule, je vais essayer d'être précis. Je cherche à réaliser la somme de données récupéré sur plusieurs onglets (plus de 10 au final) d'un classeur. J'ai tenté d'utiliser la fonction sommeprod et rechercheV mais je coince.
Le plus est que regardiez le fichier exemple que je viens de préparer.

Merci pour votre aide
 

Pièces jointes

Bonjour,

>Pourquoi utilise-t-on un dLig.RemoveAll ou un dCol.Remove all sur le code de la fonction SD3D triée ?

-Création de l'index lignes non trié
-Tri des clés
-Raz dictionnaire
-Création dictionnaire à nouveau mais avec les clés triées

VB:
  Set dLig = CreateObject("Scripting.Dictionary")    ' Index lignes
  n = 0
  For s = début To fin                               ' Parcours de toutes les feuilles
     a = Sheets(s).Range(critLigne).Value            ' Lecture dans un Array a()
     For Each c In a
      If c <> "" Then
        tmp = CStr(c)
        If Not dLig.exists(tmp) Then dLig(tmp) = ""
      End If
     Next c
  Next s
  crit1 = dLig.keys: Tri crit1, LBound(crit1), UBound(crit1) ' Tri des critères
  dLig.RemoveAll       ' Raz dictionnaire
  For i = 0 To UBound(crit1): dLig(crit1(i)) = i + 1: Next   ' Création index lignes trié

Boisgontier
 
Rebonjour à tous

@job75, @BOISGONTIER
Une petite utilité potentielle complémentaire par rapport à 2 de vos exemples de propositions en introduisant un coefficient "-" devant chaque feuille pour laquelle on ne souhaite pas additionner les informations mais les retrancher.

Cela évite de modifier inutilement les tableaux.
Et avec l'utilisation de w.index plutôt que de w.name, d'avoir directement les différences entre deux journées pour contrôle de différence.

Les codes sont vraiment modifiées à la marge.
Sauf erreur, j'avais déjà vu une fonction faite par JOB75 qui permettait de traiter une différence avec la feuille précédente en se référant sur l'adresse. Là, on a plusieurs feuilles possibles et un travail sur une référence.

Bonne journée
 

Pièces jointes

Dernière édition:

Bonjour,
Je reviens vers vous car je souhaite créer la même fonction qui prendrai la colonne d'origine +3, J'ai donc repris le code VBA en cherchant à le modifier et en créant un module 2. Je renomme la fonction et modifie col +1 en col +3 mais, j'ai certainement manqué quelque chose. Pouvez vous m'aider à comprendre.
Merci par avance et bonne fin de journée
Voici le code


Function SommeFeuillesEtud(cible$, col%)
Application.Volatile
Dim w As Worksheet, tablo, i&
For Each w In Worksheets
If w.Name <> Application.Caller.Parent.Name Then
tablo = w.UsedRange.Resize(, col + 3) 'matrice, plus rapide
For i = 1 To UBound(tablo)
If CStr(tablo(i, col)) = cible Then _
If IsNumeric(tablo(i, col + 3)) Then SommeFeuillesEtud = SommeFeuillesEtud + tablo(i, col + 3)


Next
End If
Next
End Function
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…