VBA 2 conditions pour i lignes

Fermé
Ali - Modifié le 26 sept. 2019 à 11:18
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 - 26 sept. 2019 à 15:10
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 ?
A voir également:

1 réponse

ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
26 sept. 2019 à 11:51
Bonjour,

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

A quoi correspondent tes F, g, h ?

Cordialement
0
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
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
26 sept. 2019 à 12:04
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
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
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
26 sept. 2019 à 12:17
C'est quoi Données ?
0
Le nom de la feuille Excel
0