transformer Formule en Version Macro

  • Initiateur de la discussion Initiateur de la discussion mathieu.cxp
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

mathieu.cxp

Guest
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.
 
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
 
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
 
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
 
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.
 
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 🙂
 
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)"
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
7
Affichages
173
Réponses
4
Affichages
732
Réponses
8
Affichages
390
Retour