Traduire une formule excel en VBA [Résolu]

Messages postés
7
Date d'inscription
samedi 21 septembre 2013
Statut
Membre
Dernière intervention
2 mars 2015
- - Dernière réponse : jordane45
Messages postés
26779
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2019
- 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"
Afficher la suite 

3 réponses

Messages postés
26779
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2019
317
0
Merci
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


Commenter la réponse de jordane45
Messages postés
7
Date d'inscription
samedi 21 septembre 2013
Statut
Membre
Dernière intervention
2 mars 2015
0
Merci
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.
Commenter la réponse de CILE78
Messages postés
7
Date d'inscription
samedi 21 septembre 2013
Statut
Membre
Dernière intervention
2 mars 2015
0
Merci
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 ?
jordane45
Messages postés
26779
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2019
317 -
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......
Commenter la réponse de CILE78