S2: SOMME(SI(I2<>0;SI((H2*J2/I2*0.1)>0;(H2*J2/I2*0.1);0);0);...)

Résolu/Fermé
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 - 29 juil. 2016 à 16:17
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 3 août 2016 à 15:14
Bonjour,
J'ai plusieurs formules que je n'arrivent pas à traduire en VBA.
Si quelqu'un veut bien me donner un petit coup de pouce svp :D

- Cellule S2
SOMME(SI(I2<>0;SI((H2*J2/I2*0.1)>0;(H2*J2/I2*0.1);0);0);+SI(N2<>0;SI((M2*O2/N2*0.1)>0;(M2*O2/N2*0.1);0);0))
- Cellule T2
(O2+J2)*(SI(E2="cadre";(F2/5);(F2/6))*G2)
- Cellule R2
MFC Couleur.Rouge si => =+Q2<>SI(S2>T2;S2;T2)

Comme vous le remarquerez, il y a de nombreuses conditions et sous-conditions et c'est exactement ça qui me pose problème.

Merciiiiiiiiiiiiiiii.

5 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
29 juil. 2016 à 16:31
Bonjour

Q1. Est ce que tu veux que vba te mettre ces formules dans la feuille
Q2. Est ce que le 2 est la valeur d'une variable, si oui laquelle
Q3. Est ce que tu veux copier ces formules vers le bas, si oui jusqu'où
Q4. Est ce que ton excel est en français

Cdlmnt
1
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
29 juil. 2016 à 16:39
Bonjour ccm81 :)
Je suis fan de toi!!! C'est toujours le même tableau si lequel tu m'as déjà bcp aidé.

R1. Le résultat plutôt que la formule
R2. Je n'ai pas compris la question
R3. Oui c'est ça jusque tout en bas comme pour les autre formules avec la fameuse Range("XX" & i)
R4. Mon Excel est français et récent aussi :) (2013)

Merci.
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
29 juil. 2016 à 16:46
Tu veux que je te le renvoi?
J'ai déjà bien avancé mais j'ai encore mille et un projets qui me viennent en avançant.
ça me permet surtout d'apprendre sur un cas concret.
0
Mosfet_05 Messages postés 346 Date d'inscription mercredi 3 septembre 2014 Statut Membre Dernière intervention 10 juin 2018 42
29 juil. 2016 à 16:47
Serait il possible d'avoir le lien du fil en question ?
0
Mosfet_05 Messages postés 346 Date d'inscription mercredi 3 septembre 2014 Statut Membre Dernière intervention 10 juin 2018 42
Modifié par Mosfet_05 le 29/07/2016 à 16:40
Bonjour;
- Cellule S2
SOMME(SI(I2<>0;SI((H2*J2/I2*0.1)>0;(H2*J2/I2*0.1);0);0);+SI(N2<>0;SI((M2*O2/N2*0.1)>0;(M2*O2/N2*0.1);0);0))

Peut être traduit par (non testé) :
'Variabe
dim som as double

'Initialisation
som =0

'Début
IF (range("I2")<>0) THEN
IF ((range("H2")*range("J2")/range("I2")*0.1)>0) THEN
som = som + (range("H2")*range("J2")/range("I2")*0.1)
END IF
END IF


IF(range("N2")<>0) THEN
IF((range("M2")*range("O2")/range("N2")*0.1)>0) THEN
som = som + (range("M2")*range("O2")/range("N2")*0.1)
END IF
END IF

'Mise à jour de S2
range("S2") = som


Qu'en pense tu ?
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
29 juil. 2016 à 16:43
Bonjour et merci,
ça bloque en ligne 9, je crois qu'il n'aime pas trop le !
0
Mosfet_05 Messages postés 346 Date d'inscription mercredi 3 septembre 2014 Statut Membre Dernière intervention 10 juin 2018 42
29 juil. 2016 à 16:44
Je l'ai enlevé, l'inversion de condition n'était pas nécessaire.
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
29 juil. 2016 à 16:57
Je ne savais pas ce que celà voulait bien dire, j'étais justement en train de chercher :)
Je test comme ça.
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
29 juil. 2016 à 17:10
Yes ça marche!!!!! Merci :D
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
29 juil. 2016 à 17:02
Une petite macro qui met les formules colonne S, dans la feuille
Public Sub Formules()
Dim f As String, lifin As Long
lifin = Cells(Rows.Count, 13).End(xlUp).Row
f = "=SOMME(SI(I2<>0;SI((H2*J2/I2*0,1)>0;(H2*J2/I2*0,1);0);0);+SI(N2<>0;SI((M2*O2/N2*0,1)>0;(M2*O2/N2*0,1);0);0))"
Range("S2").FormulaLocal = f
Range("S2").AutoFill Destination:=Range("S2:S" & lifin), Type:=xlFillDefault
End Sub


RQ. Je n'ai pas mis de gestion d'erreur

Cdlmnt
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
29 juil. 2016 à 17:28
Merci,
j'ai une erreur ici
=> Range("S2").FormulaLocal = f

Et quand je pointe le curseur il me met la valeur de la cellule.
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
29 juil. 2016 à 17:58
Chez moi, ça fonctionne
http://www.cjoint.com/c/FGDp0XCjVWe
RQ1. J'ai nettoyé ta colonne O où les cellules sans date contenaient des espaces !!!
RQ2. J'ai modifié un peu ta formule (je pense qu'on pourrait encore faire mieux)
RQ3. Si la proposition de Mosfet_05 que je salue au passage te convient, elle a l'avantage de moins encombrer le fichier, mais, pour écrire la formule vba avec une ligne variable, il va falloir la mettre dans une boucle et .... acheter un sac de guillemets ;-)

Cdlmnt
0
Mosfet_05 Messages postés 346 Date d'inscription mercredi 3 septembre 2014 Statut Membre Dernière intervention 10 juin 2018 42
29 juil. 2016 à 22:23
Bonsoir,
En effet, il vaut mieux faire ainsi.
En ce qui concerne l'erreur rencontrée, il est possible que le module VBA utilisé ne soit pas identique à celui du demandeur.
Enfin, il faudrait rajouter une petite ligne pour demander à Excel de bien vouloir recalculer l'ensemble du classeur, juste par sécurité.
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
1 août 2016 à 09:38
Bonjour ccm81
Un grand merci encore.
Où se trouve le marché aux guillemets? x0x0x0x
Bon allez, je teste tout ça et je te tiens au courant.
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1 > Mosfet_05 Messages postés 346 Date d'inscription mercredi 3 septembre 2014 Statut Membre Dernière intervention 10 juin 2018
1 août 2016 à 09:40
Bonjour Mosfet_05 et merci
J'ai trouvé ça sur le site
ActiveSheet.Calculate

Je vais essayer :D
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
1 août 2016 à 10:43
Arf...
J'ai une erreur.
Microsoft Visual Basic pour Application
(x) 400

Je suis perdue dans mon fichier. Trop de modif qui se croisent. Il me faut un café :@
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
1 août 2016 à 11:46
Gros PB
Mon traitement ne se fait plus :'(
J'ouvre un autre post et reviendrais ensuite ici pour faire mes tests
En espérant que je trouve une soluce...
merci!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
3 août 2016 à 15:14
En ce moment, je n'ai vraiment pas beaucoup de temps, mais tu devrais mettre le fichier en ligne, !

Cdlmnt
0