transformer Formule en Version Macro

mathieu.cxp

XLDnaute Nouveau
Salut à tous.

Je viens vers vous car j'ai un soucis de traduction d'une formule sous forme de macro, et je vois pas comment faire.

Je vous explique, j'ai la formule suivante :
Code:
 =SI(Q2="OK";SI(E2="NOT EU";SI(Z2<>"WON";0;SI(O2="USD";P2*PARAMETERS!$A$15;P2));0);0)

Et j'ai transtormé ça comme ceci :
Code:
Dim QUOTE_WON_NOTEU As Integer

If ("Q" & derligne) = "OK" Then
    If ("E" & derligne) = "NOT EU" Then
        If ("Z" & derligne) <> "WON" Then
        QUOTE_WON_NOTEU = 0
        Else
            If ("o" & derligne) = "USD" Then
            QUOTE_WON_NOTEU = Range("P" & derligne).Value * Sheet("PARAMETERS").Range(A15).Value
            Else
            QUOTE_WON_NOTEU = Range("P" & derligne).Value
            End If
        End If
    Else
    QUOTE_WON_NOTEU = 0
    End If
Else
QUOTE_WON_NOTEU = 0
End If

Range ("a" & derligne).Value = QUOTE_WON_NOTEU

J'ai des erreurs dans tous les sens (j'ai essayé de modifier la structure de mon code, mais -> choux blanc :(

Pourriez vous m'aider ????

D'avance merci.




Autre Problème que je rencontre : Je souhaiterai faire une userform avec un outil de recherche intégré.
J'ai une liste de 200 applications (colone A) et un code équivalent à l'application (colone B)
J'ai créé une liste dans ma userform qui permet de sélectionner l'application voulue, et de retourner le code équivalent (aucun soucis pour faire ça grâce à vous :) ).
Maintenant, ce que je souhaiterai faire :
Dans ma userform, avoir un textBox, servant de champ de recherche.
Quand je tappe un mot dedans, que la liste déroulante ne propose plus que les applications contenant ce ou même CES mots :)
Et toujours, que quand je sélectionne mon application dans cette liste déroulante dynamique, mon code équivalent soit retourné :)

Si vous avez besoin d'un fichier pour démarrer, n'hésitez pas à me le faire savoir :)

Merci d'avance à tous ceux qui voudront bien se pencher sur mon problème.

Bonne Journée.
 

Eric 45

XLDnaute Occasionnel
Re : transformer Formule en Version Macro

Bonjour à tous
Bonjour mathieu.cxp

Sans avoir pu essayer, je te propose quelques petites modif :

Code:
Dim derligne As Integer
Dim QUOTE_WON_NOTEU As Integer

If Range("Q" & derligne) = "OK" Then
    If Range("E" & derligne) = "NOT EU" Then
        If Range("Z" & derligne) <> "WON" Then
        QUOTE_WON_NOTEU = 0
        Else
            If Range("o" & derligne) = "USD" Then
            QUOTE_WON_NOTEU = Range("P" & derligne).Value * Sheets("PARAMETERS").Range("A15").Value
            Else
            QUOTE_WON_NOTEU = Range("P" & derligne).Value
            End If
        End If
    Else
    QUOTE_WON_NOTEU = 0
    End If
Else
QUOTE_WON_NOTEU = 0
End If

Range("a" & derligne).Value = QUOTE_WON_NOTEU

End Sub
et si j'ai bien compris

Pour ta deuxième question, tu devrais ouvrir un autre post.

Eric
 

mathieu.cxp

XLDnaute Nouveau
Re : transformer Formule en Version Macro

merci pour ce code modifié, effectivement, une belle erreur de débutant :(

Mais celà ne fonctionne toujours pas :?

il me met : sub ou fonction non définie au niveau de cette ligne :)
Code:
 QUOTE_WON_NOTEU = Range("P" & derligne).Value * Sheet("PARAMETERS").Range(A15).Value
 

pierrejean

XLDnaute Barbatruc
Re : transformer Formule en Version Macro

bonjour a tous

ma version a tester :

Code:
If Range("Q" & derligne) = "OK" And Range("E" & derligne) = "NOT EU" And Range("Z" & derligne) = "WON" Then
 If Range("O" & derligne) = "USD" Then
   QUOTE_WON_NOTEU = Range("P" & derligne).Value * Sheets("PARAMETERS").Range("A15").Value
 Else
   QUOTE_WON_NOTEU = Range("P" & derligne).Value
 End If
Else
QUOTE_WON_NOTEU = 0
End If
Range("A" & derligne).Value = QUOTE_WON_NOTEU
 

mathieu.cxp

XLDnaute Nouveau
Re : transformer Formule en Version Macro

bon, en regardant de plus, près, il sera nettement plus simple pour moi de faire écrire la formule dans la case. Mais là, comme avant, je ne vois pas comment faire...

Je vais créer un second topic pour mon autre question :)
Merci du conseil.

EDIt : merci pour cette super formule pierrejean. Pardon de comprendre seulement maintenant que j'ai en fait besoin d'écrire ma formule dans la cellule, et non pas de mettre directement le résultat.
 

mathieu.cxp

XLDnaute Nouveau
Re : transformer Formule en Version Macro

un petit up, histoire que le topic tombe pas aux oubliettes... :)

La question est donc : comment faire écrire la formule dans la case, sachant que la formule contient des référence à des cellules qui varient en fonction de "derligne"

Merci d'avance pour votre aide :)
 

pierrejean

XLDnaute Barbatruc
Re : transformer Formule en Version Macro

Re

On s'accroche !!

Code:
Range("A" & derligne).FormulaLocal = "=SI(Q" & derligne & "=""OK"";SI(E" & derligne & "=""NOT EU"";SI(Z" & derligne & "<>""WON"";0;SI(O" & derligne & "=""USD"";P" & derligne & "*PARAMETERS!$A$15;P" & derligne & "));0);0)"
 

Statistiques des forums

Discussions
312 505
Messages
2 089 094
Membres
104 029
dernier inscrit
Neozz14