Fonction SI: rien faire si faux

Salut a tous, je me demande s'il est possible avec la fonction SI de ne rien faire si la condition est fausse (ne pas alterer le contenu de la cellule sur laquel on applique la formule).

Voici un petit fichier.

989forum13.xls (14.50 Ko)

Bonjour

Oui et non

Si le résultat vient d'une autre cellule Oui

=SI(LC(1)="";"";LC(8))

Si le résultat est la même cellule Non

=SI(LC(1)="";"";LC)

référence circulaire

Sinon il faut passer par VBA

Salut Banzai , juste un petit mot pour dire que mon application fonctionne maintenant au complet. J'ai donc ajouter ton code VBA a mes macro et ca fonctionne tres bien, 8 secondes pour traiter 1200 lignes de code assembleur. Il me reste qu'a faire un menage et mettre le tout plus "clean" a l'ecran.

Pour ma question, il semblerais que c'est une formule circulaire, car j'ai essaye et j'ai un message d'erreur. Est-ce que mettre cette formule dans la cellule par VBA fera en sorte que ce ne soit pas circulaire?

Et si par vba, je sauvegarde temporairement le contenu de la cellule, je pourrais prendre sont contenu pour mettre dans la cellule si c'est faux ?

528forum13.xls (14.50 Ko)

Bonjour

CAPUCIN a écrit :

Est-ce que mettre cette formule dans la cellule par VBA fera en sorte que ce ne soit pas circulaire?

Même chose que tu l'écrives manuellement ou par VBA tu auras toujours ta référence circulaire

CAPUCIN a écrit :

Et si par vba, je sauvegarde temporairement le contenu de la cellule, je pourrais prendre sont contenu pour mettre dans la cellule si c'est faux ?

C'est la réponse que je t'avais donnée

Banzai64 a écrit :

Si le résultat vient d'une autre cellule Oui

Alors que tu sauves la colonne B par VBA et que t'en serve pour ta formule est une possibilité

donc ta formule en colonne B serait 'exemple)

=SI(LC(1)="";"";LC(8))

j'ai fabrique la formule suivante:

Range("B2:B" & Z).Formula = "=IF(RC3="","",RC11)"

mais j'ai une erreur de syntaxe car dans mes cellules la formule qui apparait est :IF(LC3="";LC11) . Les virgules et les guillemets sont-il bons?

Bonsoir

Manque des guillemets

Range("B2:B" & Z).Formula = "=IF(RC3="""","""",RC11)"

Pour mettre 1 guillemet dans une formule (chaîne) il faut doubler ce guillemet

Ca fonctionne tres bien!

Crois-tu qu'on pourrais modifier la macro de l'autre jour pour qu'elle puisse s'affecter a la ligne active au lieu de toutes les lignes du tableau. Cette option me permettrais de voir si j'ai une erreur de syntaxe en ecrivant du code dans la colonne 9 de la ligne active.

Note que la macro de l'autre jour reste la principale de mon application, simplement que cette nouvelle macro permettrais une option pratique pour mon application.

Clique sur mon bouton rouge pour voir le resultat de ta macro de l'autre jour!

Bonsoir

A voir

Je ne vois pas de difference avec la macro precedente, mise a part la MFC. Lorsque je clique sur le bouton ce n'est pas que la ligne active qui est mise a jour mais tout le tableau. A moins que la procedure soit differente?

Bonsoir

Si tu ne vois pas de différence c'est que je n'ai pas compris ce que tu veux faire

CAPUCIN a écrit :

Crois-tu qu'on pourrais modifier la macro de l'autre jour pour qu'elle puisse s'affecter a la ligne active au lieu de toutes les lignes du tableau. Cette option me permettrais de voir si j'ai une erreur de syntaxe en ecrivant du code dans la colonne 9 de la ligne active.

Pour moi j'avais compris que tu cherchais un moyen de signaler le fait qu'une instruction n'avait pu être décodée (la raison de la MEFC)

Donc il faut que tu m'expliques (1 ou 2 exemples seraient les bienvenus)

Je comprend que tu ne comprenne pas.

Notre macro cherche toute les occurences du tableau mauve dans les mnemoniques de la colonne 9, et c'est tres bien. J'ai rajouter un critere aditionnel a la cellule K704 de sorte que si la syntaxe de ce qui est dans la colonne 9 n'est pas bonne, des "?" apparaissent dans les cellules de cette ligne. Regarde en i5, j'ai tapper volontairement une erreur de syntaxe et les "?" apparaissent.

Ce que je voudrais, c'est une autre macro qui permettent de faire la meme chose mais sur une seule cellule de la colonne 9, par exemple la cellule active, de sorte que si j'ecris une mnemonique dans cette cellule et qu'il y a une erreur de syntaxe,

, je le sache immediatement afin que je corrige immediatement mon erreur d'edition. Autrement dit, modifier la macro pour que le tableau a traiter n'est qu'une seule ligne, soit la ligne active. Cette methode nous donnerais probablement un temps d'execution instantanne au lieu de 5 secondes. Mais je tiens a garder notre premiere macro, seulement j'aurais une option qui permet de corriger une cellule aussi tot qu'elle est en erreur.

Pour la MFC, je peux la faire directement avec EXCEL puis l'enregistrer en macro.

Bonsoir

A vérifier

wow! EN PLEIN DANS LE MILLE! y-a t-il des choses que tu ne puisse pas faire? lol

minuscule en prime!

je suis en train de regarder la difference avec l'ancienne macro. J'ai de petits probleme a l'integrer a la place de l'autre dans mon application, mais ce n'est surement pas grand chose.

Encore une fois BRAVO!

Capucin.

Bonjour

Attention cette macro n'est pas prévue, telle quelle, à remplacer l'autre

Si tu fais un copier/coller de code en colonne I (plusieurs ligne) , elle ne les traduira pas

Elle est utilisée lors de la saisie d'une seule ligne

Bonne journée

le copier coller ce n'est pas tres grave, ce qui est le plus important c'est qu'on puisse detecter les erreurs de syntaxe "live" , et ca fonctionne puisque les "?" aparaissent si c'est le cas.

Il faut cependant que tu m'explique ou sont les modifs pour que ca fonctionne live, car la seule differrence que j'ai remarque, c'est la presence de "option Explicit". Ca me semble pas mal magique! lol

Bonjour

Le nouveau code est dans le code de la feuille

Je ne vois pas de formule dans les cellules, ou puis-je voir les modifs dans la feuille?

Bonjour

CAPUCIN a écrit :

Je ne vois pas de formule dans les cellules, ou puis-je voir les modifs dans la feuille?

Pas clair

Formule dans les cellules ?

Si le code est reconnu tu auras dans les 4 cellules des formules ou 4 ?

Modifs dans la feuille ??????

je comprend bien le resultat obtenu mais je cherche a savoir comment puis-je mettre ce que tu as fait dans mon application. C'est pour ca que je cherche a savoir qu'est-ce que je dois adapter, donc ce que tu as fait . Comme tu sais, j'ai essaye de prendre ta macro et de l'executer dans mon application mais je n'obtient le resultat du fichier que tu m'as envoye. Donc, comment dois-je proceder?

je join le fichier que tu m'as fait.

Bonjour

J'ai du mal à comprendre (âge surement)

CAPUCIN a écrit :

Salut Banzai , juste un petit mot pour dire que mon application fonctionne maintenant au complet. J'ai donc ajouter ton code VBA a mes macro et ca fonctionne tres bien, 8 secondes pour traiter 1200 lignes de code assembleur. Il me reste qu'a faire un menage et mettre le tout plus "clean" a l'ecran.

Pour moi la macro principale tu l'avais incluse dans ton fichier réel

Donc 1ère macro --> Problème réglé

Ensuite je t'ai fait une macro pour traiter en "live" ce que tu entres en colonne I

Il suffit juste de copier cette macro dans le code de ta feuille de ton fichier réel et c'est fini

Banzai64 a écrit :

Le nouveau code est dans le code de la feuille

Donc à te lire tu n'as pas encore adapté la macro principale à ton fichier réel

Il faudrait connaitre la structure réelle de ton fichier afin d'y faire les adaptations

Fournis ton fichier réel anonymisé

Rechercher des sujets similaires à "fonction rien faux"