Problème code VBA avec somme

Bonjour à tous !

Voilà j'ai un petit problème sur VBA (je suis néophyte total), je n'arrive pas à faire ma petite condition sur le résultat d'une somme.

J'ai joint un fichier très incomplet pour que vous puissiez voir l'idée:

- En sheet1, j'ai les indicateurs financiers d'une entreprise (ici Solvay, dans mon fichier final c'est tout le CAC40, mais le fichier est trop incompréhensible pour que je le mette là lol). Ce que je veux, c'est de mettre dans mon tableau en sheet2 Solvay dans la case "actions à acheter" ou "actions à vendre" suivant les résultat des indicateurs, càd si je devais expliquer le VBA que j'essaie de faire :

SI la somme des cases jaunes à gauches (F3+F4+F10+F11) est égale à 20 ET SI la somme des cases jaunes à droite (N4+N5+Q9+Q10) est inférieur ou égale à -10, ALORS afficher "Solvay" dans la sheet2 dans "indications pour acheter".

SI la somme des cases jaunes à gauches (F3+F4+F10+F11) est égale à -20 ET SI la somme des cases jaunes à droite (N4+N5+Q9+Q10) est supérieur ou égale à 10, ALORS afficher "Solvay" dans la sheet2 dans "indications pour vendre".

Voilà, c'est à la fois très basique je pense mais j'ai beaucoup de mal, voilà ce que j'ai fait en vba qui ne fonctionne (évidemment pas) pas :

Sub Tableaufinal()

Windows("Probleme VBA.xlsm").Activate

If Sum("F3+F4+F10+F11") = 20 And Sum("N4" + "N5" + "Q9" + "Q10") <= -10 Then

Windows("probleme vba.xslm").Activate

Sheets("Sheet2").Activate

Range("E9") = Solvay

If Sum("F3+F4+F10+F11") = -20 And Sum("N4" + "N5" + "Q9" + "Q10") >= 10 Then

Windows("probleme vba.xslm").Activate

Sheets("Sheet2").Activate

Range("G9") = Solvay

End Sub

Merci beaucoup si vous pouvez y jeter un coup d'oeil.

Stéphane

26probleme-vba.xlsx (37.94 Ko)

Bonjour et bienvenu(e)

Macro à tester

Mais dans le cas que tu présentes il n'y aura rien d'inscrit dans la 2ème page

Ou alors je n'ai pas saisi

Sub Tableaufinal()
Dim Total1 As Double, Total2 As Double

  Total1 = Application.Sum(Range("F3"), Range("F4"), Range("F10"), Range("F11"))
  Total2 = Application.Sum(Range("N4"), Range("N5"), Range("Q9"), Range("Q10"))
  With Sheets("Sheet2")
    If Total1 = 20 And Total2 <= 10 Then
      .Range("E" & Rows.Count).End(xlUp).Offset(1, 0) = "Solvay"
    ElseIf Total1 = -20 And Total2 >= 10 Then
      .Range("E" & Rows.Count).End(xlUp).Offset(1, 0) = "Solvay"
    End If
  End With
End Sub

Hello,

Merci pour ta réponse rapide.

Ça ne marchait pas, mais j'ai repris l'idée et j'ai fait un truc un peu long mais j'arrive à ce que je voulais.

Néanmoins un nouveau problème se pose. J'obtiens un tableau disons de 2 de large sur 40 de long.

Ça ressemble à ça :

BNP

SG

Solvay

Credit Agricole

Et je voudrais faire une dernière macro dans l'idée de supprimer les cases vides pour à la fin n'avoir plus qu'un tableau tout beau tout propre.. Je sais pas si je suis clair, genre "si A1 est vide, alors mettre la valeur de A2 dans A1. Si A1 est vide, alors mettre A3 dans A1, etc. Si A1 n'est pas vide, regarder si A2 est vide, si il est vide, mettre A3 dans A2..."

Bon voilà, c'est certainement confus, si ça l'est trop tant pis

Rechercher des sujets similaires à "probleme code vba somme"