XL 2010 VBA - RechercheV sur plusieurs feuilles

Bixente

XLDnaute Nouveau
Bonjour le forum,

J'ai (encore !!!) besoin de vos lumières éclairées !!!!!!

j'ai plusieurs feuilles remplies par des salariés (dans mon exp feuil1 et feuil2).
Je voudrais que dans la feuille "total" :
- il y ait une ligne par produit différent.
- que les colonnes "fournisseur", "type de produit" et multiplicateur se remplissent automatiquement en fonction du produit.
- que la colonne "volume" soit le total des volumes de chaque feuille (pour un produit).

Merci d'avance pour toute l'aide que vous pourrez m'apporter.

à très vite j'espère.
 

Pièces jointes

  • aide VBA.xlsx
    10.5 KB · Affichages: 58

Bixente

XLDnaute Nouveau
Je modifie un peu ma demande

La feuille "total" est fixe, pour chaque produit j'ai seulement besoin de faire la somme de ce produit de toutes les feuilles.

J'ai fais un tout petit code pour 1 produit, mais comment faire des boucles sachant qu'il y a 150 produits et 50 feuilles ?

Sub test()
With Sheets("Total")
.Range("E3").Value = WorksheetFunction.VLookup(.Range("D3").Value, Sheets("Feuil2").Range("D3:E6"), 2, False) + WorksheetFunction.VLookup(.Range("D3").Value, Sheets("Feuil1").Range("D3:E6"), 2, False)
End With
End Sub

Merci encore pour votre aide !!!!!!!
 

Pièces jointes

  • aide VBA.xlsm
    17.3 KB · Affichages: 62

Nairolf

XLDnaute Accro
Re,

J'avais répondu un peu vite, il y a donc des erreurs et je n'avais pas répondu à l'ensemble du problème, je pense que ça répond assez bien à ton problème (mais c'est encore perfectible) :
VB:
Sub test()

NbProduits = 5

For i = 1 To NbProduits
   
    Calcul = 0
   
    For Each sh In Worksheets
       
        If sh.Name <> "Total" Then
            Calcul = Calcul + Application.WorksheetFunction.SumIf(sh.Range("D3:D6"), Worksheets("Total").Range("D" & 2 + i), sh.Range("E3:E6"))
        End If
   
    Next sh
   
    Worksheets("Total").Range("E" & 2 + i).Value = Calcul
   
Next i

End Sub
 

zebanx

XLDnaute Accro
Bonsoir à tous,

@Bixente : vous ne préfériez pas un récaptiluatif de toutes les lignes sur un classeur et travaillez ensuite sur un tableau croisé. Ca demande un peu de travail en plus pour les mises à jour (cases vides du TCD) mais ça permet de faire plus de choses par la suite pour l'exploitation des données.
Si vous ne souhaitez qu'un recap, les "pros" devraient vous fournir un code adapté -)

++
thierry
 

Bixente

XLDnaute Nouveau
Bonjour à tous.

Re,

J'avais répondu un peu vite, il y a donc des erreurs et je n'avais pas répondu à l'ensemble du problème, je pense que ça répond assez bien à ton problème (mais c'est encore perfectible) :
VB:
Sub test()

NbProduits = 5

For i = 1 To NbProduits
 
    Calcul = 0
 
    For Each sh In Worksheets
     
        If sh.Name <> "Total" Then
            Calcul = Calcul + Application.WorksheetFunction.SumIf(sh.Range("D3:D6"), Worksheets("Total").Range("D" & 2 + i), sh.Range("E3:E6"))
        End If
 
    Next sh
 
    Worksheets("Total").Range("E" & 2 + i).Value = Calcul
 
Next i

End Sub

Merci Nairolf ça répond exactement à ma demande !!!!!
Je le teste sur mon fichier réel et je reviens vers toi !

Bonjour Bixente, Nairolf,

Ce n'est guère compliqué de remplir le tableau de la feuille "Total" mais il y a un os !

Vous ne nous dites pas comment est déterminé le multiplicateur (colonne F) d'un produit.

A+

Toutes les colonnes sont fixes. Donc pour le produit x le multiplicateur sera toujours 0.1.


Bonsoir à tous,

@Bixente : vous ne préfériez pas un récaptiluatif de toutes les lignes sur un classeur et travaillez ensuite sur un tableau croisé. Ca demande un peu de travail en plus pour les mises à jour (cases vides du TCD) mais ça permet de faire plus de choses par la suite pour l'exploitation des données.
Si vous ne souhaitez qu'un recap, les "pros" devraient vous fournir un code adapté -)

++
thierry

Vous voulez dire un TCD fait avec une compilation de toutes les feuilles ?
 

zebanx

XLDnaute Accro
@Bixente et le forum

Un exemple de fichier avec un onglet TOTAL et un TCD expliqué.
Comme l'indique GOSSELIEN, cela ouvre plus de possibilité d'exploitation de centraliser les informations dans un seul onglet.
Cela permet notamment de gérer des fichiers qui ne contiennent pas le même nombre de lignes.
C'est un peu plus long pour faire un copier coller valeur des TCD mais cela, en tout cas pour moi, est une méthode pérenne.

Cdlt
thierry
 

Pièces jointes

  • recap_total.xls
    972.5 KB · Affichages: 68

Discussions similaires

Réponses
20
Affichages
2 K

Statistiques des forums

Discussions
312 270
Messages
2 086 684
Membres
103 370
dernier inscrit
pasval