VBA 2 conditions pour i lignes

Ali -  
ALS35 Messages postés 1034 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Alors j'ai un fichier avec plusieurs executions sur le marché boursier. Le fichier contient le nom des valeurs, la quantité éxécuté, ainsi que le cours auquel les transactions ont été executés. J'ai essayé de faire un code VBA sous la forme suivante : Si Nom de la valeur i = nom de la valeur =i+1 et cours de la valeur i = cours de la valeur i+1, faire la somme des deux quantités.

Le code se traduit comme suit :
[/contents/446-fichier-sub Sub] cours()


For i = 1 To n
n = 1000
If Données.Cells(F, i) = Données.Cells(F, i + 1) And Données.Cells(h, i) = Données.Cells(h, i + 1) Then

Données.Cells(n, i) = Données.Cells(g, i) + Données.Cells(g, i + 1)


End If

Next

End Sub


Sauf que ce dernier ne marche pas. Une idée les amis ?

1 réponse

  1. ALS35 Messages postés 1034 Date d'inscription   Statut Membre Dernière intervention   147
     
    Bonjour,

    La syntaxe de la collection Cells est : Cells(n°ligne, n° colonne).

    A quoi correspondent tes F, g, h ?

    Cordialement
    0
    1. Ali
       
      Hello, merci pour ta réponse.

      My bad, ca fait quelques années que je n'ai pas pratiqué et la j'essaie de reprendre car j'en ai besoin dans mon boulot.

      Bon je me suis trompé, j'ai remplacé les F, G, H par des chiffres relatifs aux colonnes (5 pour E, 6 pour F)

      Sub cours()


      For i = 1 To n
      n = 1000
      If Données.Cells(6, i) = Données.Cells(6, i + 1) And Données.Cells(8, i) = Données.Cells(8, i + 1) Then

      Données.Cells(14, i) = Données.Cells(7, i) + Données.Cells(7, i + 1)


      End If

      Next

      End Sub

      Alors dans mon fichier Excel, j'ai la colonne F (que j'ai remplacé par 6) pour le nom des valeurs, G pour la quantité et H pour le cours. Concernant N (14) c'est la colonne ou je veux que les résultats apparaissent. Merci beaucoup, je suis sur que je fais n'importe quoi.. mais j'ai besoin de m'y mettre très serieusement
      0
    2. ALS35 Messages postés 1034 Date d'inscription   Statut Membre Dernière intervention   147
       
      Attention, comme je te l'ai dit Cells c'est d'abord n°ligne puis n° colonne.
      Je crois que tu fais l'inverse !
      0
    3. Ali
       
      Alors j'ai inversé, ce qui donne :
      Sub cours()


      For i = 1 To n
      n = 1000
      If Données.Cells(i, 6) = Données.Cells(i + 1, 6) And Données.Cells(i, 8) = Données.Cells(i + 1, 8) Then
      
      Données.Cells(i, 14) = Données.Cells(i, 7) + Données.Cells(i + 1, 7)
      
      
      End If
      
      Next
      
      End Sub


      Mais toujours rien, je pense qu'il faut repenser le programme en soit. Ca ne va pas marcher comme ça
      0
    4. ALS35 Messages postés 1034 Date d'inscription   Statut Membre Dernière intervention   147
       
      C'est quoi Données ?
      0
    5. Ali
       
      Le nom de la feuille Excel
      0