VBA - tableau et extraction (en fonction de conditions)
Je n'ai pas tenu compte du dernier post
Boisgontier
Je n'ai pas tenu compte du dernier post
Boisgontier
Bonjour M Boisgontier.
Ok, j'ai mis à jour le fichier dans le post précédent.
J'ai mis a jour le fichier ce sera peut être plus simple.
Feuille CATE
j'ai conservé le choix des catégories avec nom en A en numéro en B.
Feuil BD
En appuyant sur le bouton Go caté1 / résultat ça fonctionne parfaitement avec envoi vers RESULTAT1.
En appuyant sur Go caté1 / résultat, j’aimerai aussi pouvoir traiter les doublons de RESULTAT1.
Il faudrait que la quantité (C) des doublons refs (A) soit cumulé avec suppression des doublons.
J'ai mis ce code qui marche peut être qu'il y a plus simple à vous de me dire...
Sub caté1()
't = Timer()
Set f = Sheets("caté")
TblCaté = f.Range("D2:E" & f.[A65000].End(xlUp).Row).Value
xxxx = UBound(TblCaté)
Set f = Sheets("bd")
Tbl1 = f.Range("A2:S" & f.[A1000000].End(xlUp).Row).Value
Tbl = FiltreArrayCléColRécup(Tbl1, TblCaté, 1, Array(6, 7, 8, 14, 17, 18, 19, 1, 2))
If Not IsEmpty(Tbl) Then
Sheets("Résultat").[A2:I50000].ClearContents
Sheets("Résultat").[A2].Resize(UBound(Tbl), UBound(Tbl, 2) - LBound(Tbl, 2) + 1) = Tbl
End If
'MsgBox Timer - t
' regrouper avec cumul du stock dans RESULTAT
Set f = Sheets("Résultat")
Set f2 = Sheets("Résultat")
Tbl = f.Range("A2:R" & f.[A65000].End(xlUp).Row).Value
colCrit1 = 1
colOper = 3
Set d1 = CreateObject("Scripting.Dictionary")
Dim TblRes(): ReDim TblRes(1 To UBound(Tbl), 1 To UBound(Tbl, 2))
For i = LBound(Tbl) To UBound(Tbl)
temp = Tbl(i, colCrit1)
If Not d1.exists(temp) Then
d1(temp) = d1.Count + 1: lig = d1(temp)
For k = 1 To UBound(Tbl, 2): TblRes(lig, k) = Tbl(i, k): Next k
Else
lig = d1(temp): TblRes(lig, colOper) = TblRes(lig, colOper) + Tbl(i, colOper)
End If
Next i
Sheets("Résultat").[A2:I50000].ClearContents
f2.[A2].Resize(d1.Count, UBound(TblRes, 2)) = TblRes
End Sub
si Q est vide et R n'est pas vide S n'est pas vide alors R à aujourd'hui avec nombre de mois en X
si Q n'est pas vide et R n'est pas vide S n'est pas vide alors Q à aujourd'hui avec nombre de mois en X
si Q vide et R n'est pas vide S vide alors R à aujourd'hui avec nombre de mois en X