Se connecter avec
S'enregistrer | Connectez-vous

Trouver la somme de feuil1 vers feuil2

Dernière réponse : dans Programmation

bonjour tout le monde
bonjour Zed ,
je suis sur un code que je croix avoir presque terminé mais je bute sur un point

voici mon code:

  1. Sub spreadDeCredit()
  2. Dim k As Long
  3. Dim spot_1 As Double
  4. Dim spot_2 As Double
  5. Dim somme As Single
  6. Dim diff As Double
  7. k = Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row
  8.  
  9. For i = 0 To k
  10. If Worksheets("Feuil1").Cells(i, 16).Value Like "*AAA*" Then
  11. spot_1 = Worksheets("Feuil1").Cells(i, 10).Value
  12. spot_2 = Worksheets("Feuil1").Cells(i, 11).Value
  13. diff = Abs(spot_1 - spot_2)
  14. somme = 0
  15. somme = somme + diff
  16. End If
  17. Cells(6, 8).Value = somme
  18. End Sub



dans ce code je cherche a parcourir "Feuil1" avec la condition que j'ai imposé et mettre le resultat dans feuil2
ma boucle parcours la feuille ("feuil1") daja a ce nivo j'aimerai savoir ci c'est correct mon ecriture :??: 
ensuite je voudrais faire la somme de toutes les differences Abs(spot_1 - spot_2) ...
est ce correct la aussi
  1. somme = somme + diff
:??: 
enfin mon soucis majeur est que ma cellule H6 DOIT CONTENIR : H6=somme/(nombre de fois qu'on a rencontré le caractere AAA dans feuil1) en d'autres termes c'est le nombre de fois qu'on a fait la difference entre spot_1 et spot_2

sof que j'ignore comment le definir dans mon code

merci de votre aide :) 
Lassé par la pub ? Créez un compte

Meilleure solution

Expert Programmation

dianbobo, tu m'appelles encore une fois Zed, je te marave la gueule façon Marsellus Wallace !
[:zeb:4]

Je rappelle que Zed's dead baby, Zed's dead x_x

------------------------------

Eh, pas mal. Il manque juste deux toutes petites, mais vraiment petites choses :
Initialise j à 0, comme tu le fais pour somme.
Déclare k comme Long.

Le code suivant déclare un Variant (type par défaut) puis un Long :
  1. Dim k, j As Long

Oui, je sais, la syntaxe du VB est vraiment à chier.

Allez, encore un mot. Ligne 20, tu utilises Cells sans préciser la feuille en cours. Mais c'est pour pinailler.

;) 

bonjour Zed ,bonjour tout le monde

voici apres mes recherches d'hiers ma solution :bounce: 

  1. Sub spreadDeCredit22()
  2.  
  3. Dim k, j As Long
  4. Dim spot_1 As Double
  5. Dim spot_2 As Double
  6. Dim somme As Single
  7. Dim diff As Double
  8. Dim i As Integer
  9. k = Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row
  10. somme = 0
  11. For i = 0 To k
  12. If Worksheets("Feuil1").Cells(i + 6, 16).Value Like "*AAA*" Then
  13. spot_1 = Worksheets("Feuil1").Cells(i + 6, 10).Value
  14. spot_2 = Worksheets("Feuil1").Cells(i + 6, 11).Value
  15. diff = Abs(spot_1 - spot_2) / 100
  16. somme = somme + diff
  17. j = j + 1
  18. End If
  19. Next i
  20. Cells(6, 8).Value = somme / j
  21. End Sub


c'est genial ça :sol: 

merci a vous tous

voila si j'ai bien suivi les instructions: :sol: 

  1. Sub spreadDeCredit22()
  2. .
  3. .Dim k as long
  4. dim j As Long
  5. Dim spot_1 As Double
  6. Dim spot_2 As Double
  7. Dim somme As Single
  8. Dim diff As Double
  9. .Dim i As Integer
  10. k = Worksheets("Feuil1" ).Cells(Rows.Count, 1).End(xlUp).Row
  11. somme = 0
  12. j=0
  13. For i = 0 To k
  14. If Worksheets("Feuil1" ).Cells(i + 6, 16).Value Like "*AAA*" Then
  15. spot_1 = Worksheets("Feuil1" ).Cells(i + 6, 10).Value
  16. spot_2 = Worksheets("Feuil1" ).Cells(i + 6, 11).Value. diff = Abs(spot_1 - spot_2) / 100
  17. somme = somme + diff
  18. j = j + 1
  19. End If
  20. Next i
  21. worksheets("risk").cellls(6, 8).Value = somme / j
  22. End Sub


merci bien


bonjour tout le monde de façon bien ecrite :
la solution du probleme
:sol: 
  1. Sub spreadDeCredit22()
  2. .
  3. .Dim k as long
  4. dim j As Long
  5. Dim spot_1 As Double
  6. Dim spot_2 As Double
  7. Dim somme As Single
  8. Dim diff As Double
  9. .Dim i As Integer
  10. k = Worksheets("Feuil1" ).Cells(Rows.Count, 1).End(xlUp).Row
  11. somme = 0
  12. j=0
  13. For i = 0 To k
  14. If Worksheets("Feuil1" ).Cells(i + 6, 16).Value Like "*AAA*" Then
  15. spot_1 = Worksheets("Feuil1" ).Cells(i + 6, 10).Value
  16. spot_2 = Worksheets("Feuil1" ).Cells(i + 6, 11).Value
  17. diff = Abs(spot_1 - spot_2) / 100
  18. somme = somme + diff
  19. j = j + 1
  20. End If
  21. Next i
  22. worksheets("risk" ).cellls(6, 8).Value = somme / j
  23. End Sub
Lassé par la pub ? Créez un compte