Somme conditionelle sous Excel

Somme conditionelle sous Excel - Logiciels - Windows & Software

Marsh Posté le 15-12-2003 à 14:12:14    

salut tlm :d
 
je suis en train d'utiliser la somme conditionelle sous excel pour que le tableur m'affiche une somme en fonction d'un parametre.
si la cellule = AE(initiale du commercial) alors somme(cellule chiffre d'affaire) puis il me renvoi un montant euros qui est le Chiffre d'affaire du commercial en question (AE).
 
ca fonctionne tres bien sauf que pour chaque commerciaux je dois refaire toute la somme conditionelle ! je ne peux pas faire un copier coller de la cellule précédente et simplement modifié les initiales du commercial. Il me renvoit un résultat faux.
 
savez vous donc comment je peux juste faire un copier coller sans me retaper le boulot a chaque fois ?
 
meri d'avance :d

Reply

Marsh Posté le 15-12-2003 à 14:12:14   

Reply

Marsh Posté le 15-12-2003 à 15:02:59    

voici la formule :
=SOMME(SI(CONTRATS!$F$2:$F$1000="YB";SI(CONTRATS!$A$2:$A$1000>=DATEVAL("01/12/2003" );SI(CONTRATS!$A$2:$A$1000<=DATEVAL("05/12/2003" );CONTRATS!$C$2:$C$1000;0);0);0))
 
si ca peux aider :d

Reply

Marsh Posté le 15-12-2003 à 15:03:57    

YB : initiale du commerciale
DATEVAL : periode à prendre en compte
CONTRATS! : feuille ou figure les données

Reply

Marsh Posté le 15-12-2003 à 15:07:42    

le pb là c'est qu'on ne peut pas être sûr de ce que tu tapes dans ta feuille (erreur de frappe)
on peut pas avoir ton doc plutôt ? (change les valeurs)
car si tu copies bien tes formules ça pose pas de pbs.

Reply

Marsh Posté le 15-12-2003 à 15:08:20    

comment puis je t envoyer le document ?

Reply

Marsh Posté le 15-12-2003 à 15:08:47    

mon mail dans mon profil par exemple :)

Reply

Marsh Posté le 15-12-2003 à 15:13:18    

:lol:
 
oui les plaisanteries les plus courtes sont les meilleures :d

Reply

Marsh Posté le 15-12-2003 à 15:19:35    

c bon le fichier est parti sur ta boite


Message édité par neoffyz le 15-12-2003 à 15:50:10
Reply

Marsh Posté le 16-12-2003 à 10:00:01    

bonjour :d
donc je récapitule car la solution au probleme n'a pas été trouvée malgré une motivation sans faille de notre cher blueteen :d
 
voici ma formule :
 
=SOMME(SI(CONTRATS!$F$2:$F$1000="YB";SI(CONTRATS!$A$2:$A$1000>=DATEVAL("01/12/2003" );SI(CONTRATS!$A$2:$A$1000<=DATEVAL("05/12/2003" );CONTRATS!$C$2:$C$1000;0);0);0))
 
en fait je fais aparaitre dans la cellule la somme d'une colonne si la plage d'une colonne fait apraitre "YB" et une autre condition je crée une période située entre le 1/12/2003 au 5/12/2003.
 
la formule fonctionne très bien quand j'utilise l'assistant somme conditionel de excel, mais le souci c quand je veux la copier coller cette formule et changer un parametre par exemple remplacer YB par CA : la cellule me renvoit une valeur fausse
 
voila :d
si quelqu'un aurait une formule plus maléable ou une solution, je suis bien sur preneur :d
au lieu de me retaper a chaque fois l'assistant pour créer la formule :d

Reply

Marsh Posté le 16-12-2003 à 10:26:48    

A priori la formulation du test qui semble valide pour l'assistant ne l'est plus lorsque la formule est placée dans une cellule. Pourquoi ne pas opter pour une macro paramétrable recevant les initiales du commercial et les bornes de la période. Il suffirait alors d'utiliser une feuille de paramétrage et d'associer un racourci à celle ci afin de disposer facilement du résultat.

Reply

Marsh Posté le 16-12-2003 à 10:26:48   

Reply

Marsh Posté le 16-12-2003 à 10:40:44    

on a progressé
là y a un truc qui marche :
 
=BDSOMME(donnees;3;claude)
 
cette fonction est bien adaptée
donnees étant une plage de cellules contenant la date, montant à utiliser, et initiales
 
3 étant le numéro de la colonne contenant les sommes à addtionner en cas de correspondance aux critères.
 
et claude correspondant à la zone de critères contenant les initiales et la fourchette de date (enfin une des zones)
 
j'attend de voir avec lui sa méthode de travail, voir si on peut appliquer ça à toute sa feuille.


Message édité par blueteen le 16-12-2003 à 10:41:44
Reply

Marsh Posté le 16-12-2003 à 10:40:51    

je montre ça à ma chere et douce mais pas avant ce soir .... ;(
j'espere que tu auras trouvais d'ici la

Reply

Marsh Posté le 16-12-2003 à 11:32:25    

Guru a écrit :

A priori la formulation du test qui semble valide pour l'assistant ne l'est plus lorsque la formule est placée dans une cellule. Pourquoi ne pas opter pour une macro paramétrable recevant les initiales du commercial et les bornes de la période. Il suffirait alors d'utiliser une feuille de paramétrage et d'associer un racourci à celle ci afin de disposer facilement du résultat.


 
ca me parait interessant, mais complexe pour moi :d

Reply

Marsh Posté le 16-12-2003 à 11:33:39    

Comme tu sembles interessé voici un exemple pour jouer :D
 

Code :
  1. Sub SommeConditionnelle()
  2.     Dim iLigneP As Integer
  3.     Dim iLigneC As Integer
  4.     Dim iLoop As Integer
  5.     Dim lSomme As Long
  6.     Dim iWSContrats As Integer
  7.     Dim iWSParam As Integer
  8.     Dim iWSResultat As Integer
  9.    
  10.     iSomme = 0
  11.     iWSContrats = 0
  12.     iWSParam = 0
  13.     iWSResultat = 0
  14.    
  15.     For iLoop = 1 To Excel.Worksheets.Count + 1
  16.         If Excel.Worksheets.Item(iLoop).Name = "CONTRATS" Then
  17.             iWSContrats = iLoop
  18.         ElseIf Excel.Worksheets.Item(iLoop).Name = "PARAMETRES" Then
  19.             iWSParam = iLoop
  20.         ElseIf Excel.Worksheets.Item(iLoop).Name = "RESULTATS" Then
  21.             iWSResultat = iLoop
  22.         End If
  23.     Next
  24.    
  25.     If ((iWSContrats = 0) Or (iWSParam = 0) Or (iWSResultat = 0)) Then
  26.         MsgBox "Erreur"
  27.         Exit Sub
  28.     End If
  29.    
  30.     ' On suppose :
  31.     ' - que la liste des commerciaux est dans la colonne A de la feuille de paramètres
  32.     ' - que le début de période est dans la cellule B2 de la feuille de paramètres
  33.     ' - que la fin de période est dans la cellule C2 de la feuille de paramètres
  34.     ' - que les lignes renseignées de la feuille contrat se suivent sans lignes vides
  35.     ' - que les résultats des sommes sont écrits dans les cellules de la colone B et les initiales dans la colonne A de la feuille resultat
  36.    
  37.     iLigneP = 2
  38.     While Excel.Worksheets.Item(iWSParam).Range("A" & iLigneP).Value <> ""
  39.         Excel.Worksheets.Item(iWSResultat).Range("A" & iLigneP).Value = Excel.Worksheets.Item(iWSParam).Range("A" & iLigneP).Value
  40.        
  41.         iLigneC = 2
  42.         lSomme = 0
  43.         While Excel.Worksheets.Item(iWSContrats).Range("F" & iLigneC).Value <> ""
  44.             If ((DateDiff("d", Excel.Worksheets.Item(iWSContrats).Range("A" & iLigneC).Value, Excel.Worksheets.Item(iWSParam).Range("B2" ).Value) >= 0) _
  45.                 And (DateDiff("d", Excel.Worksheets.Item(iWSContrats).Range("A" & iLigneC).Value, Excel.Worksheets.Item(iWSParam).Range("C2" ).Value) <= 0)) Then
  46.                 lSomme = lSomme + Excel.Worksheets.Item(iWSContrats).Range("C" & iLigneC).Value
  47.             End If
  48.            
  49.             iLigneC = iLigneC + 1
  50.         Wend
  51.        
  52.         Excel.Worksheets.Item(iWSResultat).Range("B" & iLigneP).Value = lSomme
  53.         iLigneP = iLigneP + 1
  54.     Wend
  55. End Sub
  56. '---------------------------------------------------------------------------------------------------------------


Message édité par Guru le 16-12-2003 à 11:37:48
Reply

Marsh Posté le 16-12-2003 à 11:34:25    

blueteen a écrit :

on a progressé
là y a un truc qui marche :
 
=BDSOMME(donnees;3;claude)
 
cette fonction est bien adaptée
donnees étant une plage de cellules contenant la date, montant à utiliser, et initiales
 
3 étant le numéro de la colonne contenant les sommes à addtionner en cas de correspondance aux critères.
 
et claude correspondant à la zone de critères contenant les initiales et la fourchette de date (enfin une des zones)
 
j'attend de voir avec lui sa méthode de travail, voir si on peut appliquer ça à toute sa feuille.


 
oui pourquoi pas, mais j arrive pas a piger pour le zone critere
 
sinon merci a blueteen, il a passé son apres midi d hier a m aider ;)

Reply

Marsh Posté le 16-12-2003 à 11:37:17    

désolé guru mais c du chinois pour moi :(
j'ai fait un peu de C a l iut autrefois mais bon, j etais jeune :d

Reply

Marsh Posté le 16-12-2003 à 11:38:25    

Cela peut fonctionner sans modification si les hypothèses te conviennent sinon je peux modifier la macro. :D

Reply

Marsh Posté le 16-12-2003 à 11:41:59    

j'ai une feuille CONTRATS qui est en gros ma DB : nom du vendeur, produit vendu, montant, et date
colonne A = date
col B = client
col C = montant HT
col E = produit
col F = vendeur
 
puis une feuille 'rapport mois'  qui me donne le CA en fonction d'une date et du vendeur
et une feuille 'produit', qui me donne le CA en fonction du produit
 
wala


Message édité par neoffyz le 16-12-2003 à 11:43:19
Reply

Marsh Posté le 16-12-2003 à 12:01:35    

c bon j'utilise la formule BDSOMME
merci a blueteen
ca a l air de coller !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed