Traduire une longue formule excel en VBA
Résolu/Fermé
CILE78
Messages postés
7
Date d'inscription
samedi 21 septembre 2013
Statut
Membre
Dernière intervention
2 mars 2015
-
Modifié par Whismeril le 22/02/2015 à 19:04
CILE78 Messages postés 7 Date d'inscription samedi 21 septembre 2013 Statut Membre Dernière intervention 2 mars 2015 - 2 mars 2015 à 16:36
CILE78 Messages postés 7 Date d'inscription samedi 21 septembre 2013 Statut Membre Dernière intervention 2 mars 2015 - 2 mars 2015 à 16:36
A voir également:
- Traduire une longue formule excel en VBA
- Formule somme excel colonne - Guide
- Formule excel si et - Guide
- Formule excel moyenne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
2 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
Modifié par michel_m le 23/02/2015 à 08:39
Modifié par michel_m le 23/02/2015 à 08:39
Bonjour
pleine propriété, qshi.....
sont des variables ?
si oui, pourquoi écrire une formule ? mettre le résultat de traitements VBA éviterait de charger inutilement ta feuille...
D'autre part, tu voudrais avoir cette formule de E37 à O37 ?
tu dis...
Michel
pleine propriété, qshi.....
sont des variables ?
si oui, pourquoi écrire une formule ? mettre le résultat de traitements VBA éviterait de charger inutilement ta feuille...
D'autre part, tu voudrais avoir cette formule de E37 à O37 ?
tu dis...
Michel
Normad
Messages postés
112
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
10 juin 2015
39
23 févr. 2015 à 15:32
23 févr. 2015 à 15:32
Bonjour,
Si je comprends bien c'est l'enregistreur de macro qui a écrit la base et comme le dit Michel, ce n'est pas la bonne façon d'utiliser VBA.
Le plus efficace est d'écrire une fonction avec ou sans argument qui pourra être utilisé dans la feuille et renverra le résultat comme une fonction Excel standard...
J'imagine, pour ma part que pleine propriété, qshi..... sont des cellules nommées.
La fonction à écrire se présenterait de cette façon (je n'ai reécrit que le début...) :
Ensuite dans la feuille écrire juste la fonction = xyz()
Si je comprends bien c'est l'enregistreur de macro qui a écrit la base et comme le dit Michel, ce n'est pas la bonne façon d'utiliser VBA.
Le plus efficace est d'écrire une fonction avec ou sans argument qui pourra être utilisé dans la feuille et renverra le résultat comme une fonction Excel standard...
J'imagine, pour ma part que pleine propriété, qshi..... sont des cellules nommées.
La fonction à écrire se présenterait de cette façon (je n'ai reécrit que le début...) :
Public Function xyz() As String
If Range("propriete").Value = "pleine propriété" And Range("qshi").Value > Range("dureeresiduelle").Value _
And Range("carhi").Value > Range("dureeresiduelle").Value And Range("causeredepot").Value = "-" _
And Range("specificite").Value = "-" And Range("relogement").Value = "oui" And Range("evolutioncar").Value = "non" _
And Range("specificite").Value = "-" And Range("relogement").Value = "oui" Then
xyz = "plan vente 1"
'ElseIf Range("propriete").Value = "pleine propriété" And Range("qshi").Value > Range("dureeresiduelle").Value _
etc... (suite des condtions 2e cas......) Then
'xyz = résultat dans ce cas
Else
'xyz = résultat si pas dans les deux premières conditions
End If
End Function
Ensuite dans la feuille écrire juste la fonction = xyz()
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
23 févr. 2015 à 15:48
23 févr. 2015 à 15:48
Bonjour
voir si on peut simplifier car (regard rapide donc...) propriété , qshi, carhi soànt les m^me conditions
rien nous dit à cette heure que "propriété", "qshi" etc sont des nom de cellules....
voir si on peut simplifier car (regard rapide donc...) propriété , qshi, carhi soànt les m^me conditions
rien nous dit à cette heure que "propriété", "qshi" etc sont des nom de cellules....
Normad
Messages postés
112
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
10 juin 2015
39
23 févr. 2015 à 15:59
23 févr. 2015 à 15:59
Bonjour,
Non rien ne le dit de façon certaine, mais comme il semble vouloir réécrire une formule Excel, je ne vois pas vraiment ce que ça pourrait être d'autre que des plages nommées...
Mais comme souvent, sans fichier joint, on ne comprend pas forcément tout et en plus c'est nettement plus complexe....
Non rien ne le dit de façon certaine, mais comme il semble vouloir réécrire une formule Excel, je ne vois pas vraiment ce que ça pourrait être d'autre que des plages nommées...
Mais comme souvent, sans fichier joint, on ne comprend pas forcément tout et en plus c'est nettement plus complexe....
CILE78
Messages postés
7
Date d'inscription
samedi 21 septembre 2013
Statut
Membre
Dernière intervention
2 mars 2015
2 mars 2015 à 16:36
2 mars 2015 à 16:36
Il s'agit effectivement de cellules nommées.
J'ai détourné le problème en créant dans une feuille distincte plusieurs formules puis une qui prenait la solution de la formule qui était correcte.
Difficile effectivement de retranscrire par écrit le problème. La prochaine fois j'attacherai un fichier excel.
Merci à tous les deux pour votre aide.
J'ai détourné le problème en créant dans une feuille distincte plusieurs formules puis une qui prenait la solution de la formule qui était correcte.
Difficile effectivement de retranscrire par écrit le problème. La prochaine fois j'attacherai un fichier excel.
Merci à tous les deux pour votre aide.