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







Répondre avec citation
Partager