XL 2010 VBA total selectif

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
1) je mets un fichier
2) là je n'ai aucune idée de la méthode : quel code VBA pour faire la RECAP qui totalise chaque produit de sheet 1 en sheet 2
en gros j'attends :
vis 4 x 50 450 etc ....
 

Pièces jointes

  • total_selectif.xlsx
    8.9 KB · Affichages: 15

herve62

XLDnaute Barbatruc
Supporter XLD
Re : VBA total selectif

si avec macro ..forcément
mais je n'ai pas l'idée de départ !!
après j'ai assez d'expérience pour continuer
Je pense que comparer 2 tableaux dont 1 figé je sais faire :
Code:
Function Diff(tab1, tab2)
  Set MonDico1 = CreateObject("Scripting.Dictionary")
  For Each c In tab2: tmp = c: MonDico1(tmp) = "": Next c
  Set mondico2 = CreateObject("Scripting.Dictionary")
  For Each c In tab1
    tmp = c
    If Not MonDico1.Exists(tmp) Then mondico2(tmp) = ""
  Next c
  Dim d()
 On Error Resume Next
 tmp = Application.Caller.Rows.Count
 If Err = 0 Then ReDim d(1 To Application.Caller.Rows.Count) Else ReDim d(1 To MonDico1.Count)
 On Error GoTo 0
 i = 1
 If mondico2.Count = 0 Then Absent = False: Exit Function
 For Each c In mondico2.keys
     d(i) = c
     i = i + 1
 Next c
 Call tri(d(), 1, mondico2.Count)
 Diff = Application.Transpose(d)
End Function

Mais là au départ la liste des articles n'est pas figée donc comme pour le code ci-dessus on peut pas mettre une plage un peu " cachée" , ex : vis 4 x 50 , piton ....etc et si demain je trouve dans la liste "Clé 6 pans " on fait comment ????
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : VBA total selectif

Slt Cht'i
ma grosse faiblesse en plus de 20 ans je n'ai jamais su me mettre aux formules ( étant programmateur en x langages de base) et je n'y comprends rien
Donc je sais pas adapter , là je fais comment si la liste augmente ?? mon but étant aussi de pouvoir choisir un article seul d'ou la souplesse et la force du VBA
La feuille 2 est une RECAP donc je ne suis pas sensé savoir ce qu'il y a comme articles en feuille 1 .
 

Pièces jointes

  • total_selectif2.xlsm
    16.4 KB · Affichages: 15

gosselien

XLDnaute Barbatruc
Re : VBA total selectif

Bonjour,

comme ceci ça peut aller ?


P.

Code:
Sub TotalF1enF2()
Dim Ws1, Ws2 As Worksheet
Set Ws1 = Sheets("feuil1")
Set Ws2 = Sheets("feuil2")
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Ws1.Range("a2", Ws1.[a65000].End(xlUp))
     mondico(c.Value) = mondico(c.Value) + c.Offset(, 1).Value
  Next c
  Ws2.[E2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
  Ws2.[f2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)
  Ws2.[E1].Sort Key1:=[E2], Order1:=xlAscending, Header:=xlYes
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 453
dernier inscrit
benjiii88