Bonjour à tous,

Je suscite votre aide car je suis bloqué avec mon code,

Le but de ce code est :
-Chaque cellule de la colonne A de la page DATABASE contiennent des catégories
-Ce code va chercher la catégorie de la cellule dans la page TRAITEMENT
-Faire la somme de toutes les cellules sur la meme ligne (Numero de colonne indéterminé) de la page Traitement
-Renvoyer le resultat de cette somme dans la colonne C de la page DATABASE à la ligne de cette même catégorie


J'ai 2 soucis avec ce code :
- Premier problème => il doit sommer toutes les cellules correspondant à la catégorie par exemple :
Si dans la page DATABASE la cellule A2 est "catégorie 1" il doit aller chercher dans la colonne A page TRAITEMENT la "Categorie 1" et ensuite faire la somme de toutes les celulles sur cette meme ligne jusqu'à la derniere cellule de la dernière colonne pleine.

- Deuxieme problème => dans le code ci dessous il fait toujours la meme somme, il ne prend pas en consideration le résultat de la recherche V pour aller faire la somme des cellules correspondantes à ce choix

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
Sub recherche()
 
'il va réaliser une recherche V à partir du nom des catégories et si il trouve, il va sommer toutes la ligne correspondante dans la page traitement, il devra afficher le résultat dans la page Database colonne 3 à la ligne correspondante à la catégorie testée
 
Dim P As Range, C As Range, Teste
 
 
With Sheets("DATABASE")
    Set P = .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp))
End With
 
With Sheets("Traitement")
L = Sheets("Traitement").Range("A" & Rows.Count).End(xlUp).Row
M = Sheets("Traitement").Cells(1, Cells.Columns.Count).End(xlToLeft).Column
 
 
    For Each C In P
        Teste = Application.VLookup(C.Value, .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp)), 1, 0)
 
        If IsError(Teste) Then
        C.Offset(, 3) = ""
        Else
    For i = 1 To L
 
      C.Offset(, 3).Formula = "=sum(Traitement!" & Cells(i, 1).Address & _
":" & Cells(i, M).Address & ")"
     Next
 
        End If
     Next C
End With
End Sub