Traduire une formule excel en VBA

Résolu
CILE78 Messages postés 7 Date d'inscription samedi 21 septembre 2013 Statut Membre Dernière intervention 2 mars 2015 - 22 févr. 2015 à 16:49
jordane45 Messages postés 37538 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 juin 2023 - 22 févr. 2015 à 23:31
Bonjour,

Je dois réaliser un tableau qui en fonction de plusieurs critères (mode de détention de la propriété, délai remboursement du crédit, ...) va déterminer une solution.
J'ai rédigé ma formule mais elle est trop longue pour excel et, après avoir modifier les si en if, les ou en or et et en and, je l'ai collé sur le formulaire VBA. Mais cela ne fonctionne pas.
Est-ce que vous avez une idée de comment la rédiger pour qu'elle fonctionne ?
Merci

UNE PARTIE DE LA FORMULE :

"=IF(AND(propriete=""pleine propriété"",qshi>dureeresiduelle,carhi>dureeresiduelle,causeredepot=""-"",specificite=""-"",relogement=""oui"",evolutioncar=""non""),""plan vente 1"",""IF(AND(propriete=""pleine propriété"",qshi>dureeresiduelle,carhi>dureeresiduelle,OR(specificite=""necessaire à la vie professionnelle"",specificite=""adapté à une situation particulière"",relogement=""non (à expliciter dans observations particulières)"",evolutioncar=""oui (à expliciter dans observations particulières)"")),""à discuter ou moratoire/plan pour vente 2 3 4"",""IF(AND(propriete=" " pleine propriété"",qshi>dureeresiduelle,carhi>dureeresiduelle,OR(causeredepot=""marché immobilier difficile"",causeredepot=""autre (à expliciter dans obs°)"",causeredepot=""non demandé dans précédent plan")),""moratoire/plan pour vente ou PRP avec LJ5-6-7"",IF(AND(propriete=""pleine propriété"",qshi>dureeresiduelle,carhi>dureeresiduelle,causeredepot=""refus de vendre""),""Irrecevable ou moratoire/plan pour vente ou PRP avec LJ 8"" , IF(AND(propriete=""pleine propriété"",qshi>dureeresiduelle,carhi<dureeresiduelle,causeredepot=""-"",specificite=""-"",relogement=""oui"",evolutioncar=""non"")), ""plan vente 9"","AUTRES SOLUTIONS"

3 réponses

jordane45 Messages postés 37538 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 juin 2023 341
22 févr. 2015 à 17:59
Bonjour,
de mémoire... une formule excel est limitée à 256 caractères... la mettre en VBA pour la passer par ActiveCell.FormulaR1C1 ... n'y changera rien à mon avis....
de plus.. tu as utilisé ActiveCell.FormulaR1C1 ... alors que tu n'utilises pas le système de référence RC ... à la limite... tu aurais plutôt du utiliser : ActiveCell.FormulaLocal

Quoi qu'il en soit... mettre du texte à rallonge dans ta formule... des plages nommées avec des noms relativement longs.. ne t'aidera surement pas à écrire ta formule.

A mon avis Tu peux :

- Stocker tes textes dans une plage de cellule de ton classeur ... et pointer sur les cellules correspondantes plutôt que d'écrire le texte directement

- Découper ta formule en plusieurs étapes...(et les placer dans des cellules masquées de ton tableau


... tout ça... sans avoir besoin de passer par du VBA


0
CILE78 Messages postés 7 Date d'inscription samedi 21 septembre 2013 Statut Membre Dernière intervention 2 mars 2015
22 févr. 2015 à 18:12
Tu m'ouvres une piste. Je vais me lancer la dedans car je ne suis que débutante dans VBA et je pense que j'ai atteint mes limites pour cette fois.

Merci.
0
CILE78 Messages postés 7 Date d'inscription samedi 21 septembre 2013 Statut Membre Dernière intervention 2 mars 2015
22 févr. 2015 à 20:20
Ca fonctionne bien.
J'ai mis tous mes scénarios dans un tableau avec une formule en bout de chaque scénario.
Quand on remplis le tableau alors une des 100 formules fonctionne et affiche un texte.
Je cherche à extraire ce texte qui s'affiche pour le mettre dans une cellule d'une autre feuille. As-tu une idée ?
0
jordane45 Messages postés 37538 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 juin 2023 341
22 févr. 2015 à 23:31
Ceci est un nouvelle question.... donc... comme préconisé sur ce forum.. il te faut mettre cette discussion en résolue et ouvrir une nouvelle discussion pour exposer ton nouveau souci.
Sachant que, si ça ne concerne que des formules et non pas le VBA ... ce forum n'est pas le bon endroit ou poster......
0