Forcer au calcul un texte exprimant une formule

Bonjour,

2dhotgwttna salut2

J'ai crée une formule à la suite de champs renseignés par plusieurs cellules et les ai assemblé par "CONCATENER".

ex. au départ

="=SI("&H7&"("&C7&D7&E7&F7&";"&I7&J7&K7&L7&";"&O7&P7&Q7&R7&");AG10;NA())"

donne

=SI(ET(AG9<S9;AG10>S9;S10>S9);AG10;NA())

Pour la "valider" je dois entrée dans la cellule et faire ENTREE et la formule fonctionne.

help

Je souhaite à la suite d'une macro reproduire cette validation mais sans que la formule soit contenue dans

ActiveCell.FormulaR1C1 = FORMULE REELLE

car elle est destiné à être modifié

mais plutôt

ActiveCell.FormulaR1C1 = Range("z6"). ?

Pour info j'ai déjà réussi ce tour de passe passe avec des formules DDE, mais je n'y arrive pas avec des formules simples internes.

Merci pour votre aide

Bien à vous

Bagi !

J'ai essayé des macros avec

1) remplacer = par =

2) Convertir

3) validation matricielle

4) des multiplications par un (format)

5) changer le format en Standard

6) des Sendkeys(non reconnu par mon vba)

Sub Entrer_Sortir_Cellule()

Application.ScreenUpdating = False

Dim c As Range

For Each c In Selection

Sendkeys "{F2}"

Sendkeys "{Enter}"

Next c

Application.ScreenUpdating = True

End Sub

Je n'en peux plus

De l'aide SVP !

Bagi !

Bonjour

Tu ne crois pas que pour augmenter les chances qu'une solution soit trouvée, il faut fournir un fichier avec tes formules

Bonsoir à tous (Banzaï aussi lol !),

Voici le fichier et mon problème :

Je souhaite pouvoir faire une macro qui prend la formule en A1 et la "valide" comme en A2.

Etant donnée que je compose cette formule à travers un "composeur de formule conditionnel"

image10

Je souhaiterais reprendre la formule composée et la mettre dans une base de donnée graphique. Le résultat que je veux obtenir c'est l'action F2 et entrée. Mais ceci sans que la formule soit dans la macro car elle est destinée à changer. (Si elle restait dans la macro à chaque fois que je demanderais la macro elle me rejetterais la formule originale et non la nouvelle). Je ne veux pas non plus entrée dans la cellule et faire Entrée.

J'ai donc essayé :

Remplacer "=" par" =" en enregistrement ou conversion de données ça fonctionne mais pas quand je la rappelle

etc...

koi

J'ai fini par penser que la commande Sendkey était la solution comme :

Range("A2").Sendkeys "{F2}"

Range("A2").Sendkeys "{Enter}"

Mais VBA me dit qu'il y a erreur de compilation etc...

J'ai pensé à stoker ma formule dans une variable mais je m’emmêle les pinceaux pour la rappeler et je ne suis même pas sûr qu'elle puisse être "validé à la sortie"

Voilà j'espère que j'ai bien expliqué mon problème.

Bien à toi

Bagi!

50casse-tete.xls (16.00 Ko)

Bonsoir,

Dim s As String
s = [A1]
[A2].FormulaLocal = s

ça a l'air de le faire

eric

Eric,

Un grand merci, ça marche !!!!

Tu es un ... Chief !

avatar14311 8

Problème Résolu. Click !

Bien à toi

Bagi !

TINKS Banzaï pour l'idée du fichier

Et dire qu'il y a quelques mois j'ai été confronté au même problème sans arriver à le résoudre...

J'aurais dû me poser la question

eric

Bonjour,

Merci de votre aide car après de très nombreuses recherches, j'ai trouvé ma solution à mon problème grâce à vous.

Mon problème était de transformer une formule en texte (concaténé) en formule active.

Pour info, je copie une plage de cellules "PlageP" comportant chacune une formule différente venant d'une fonction qui concatène du texte et la colle dans une autre plage de cellule "PlageFormule" en transformant la formule écrite en texte en formule active.

Voici la macro utilisée :

Range("PlageFormule").FormulaLocal = Range("PlageP").Value

Merci encore

TH

Ce message est destiné à Banzaî et Eriiic, ainsi que tous ceux qui m'on aidé sur ce forum à chaque fois que j'en ai eu besoin.

Je voulais vous montrer ce que j'avais réussi à rassembler comme bout de code pour réaliser une plateforme d'aide à la décision en trading sur une simple feuille excel. Moi qui ne comprenais pas grand chose en VBA (et c'est toujours le cas^^), je me suis acharné pour reproduire un graphique OHLC avec toutes les moyennes mobile simples ou exponentielles, des conditions de stratégies pour dessiner des points graphiques et le tout en temps réel ou presque, une minutes de décalage par rapport aux cotations futures...

Voila je vais pas m'étaler, le résultat est là : http://turtlesignal.e-monsite.com/pages/robalgo.html et il s'appel Robalgo-lite.

En attendant vos critiques et vos idées d'amélioration, je vous souhaite le meilleur et A+

Au plaisir de vous lire,

Bagi^^

Bonjour,

Pas regardé encore. Pour avoir suivi de part en part je sais qu'il faut du temps devant soi, et du courage si on est un ignare de ce domaine

Tout ce que je voulais dire c'est : bel exemple de persévérance, bravo

Et une suggestion.

5. Un des bugs peu aussi provenir du système des virgules au lieu des points.Transformer les virgules en points

Mémoriser l'état du séparateur système (propre à excel) , le mettre à ".", l'activer, et restaurer le contexte à la fin : tu peux l'intégrer.

La petite proc que je m'étais faite :

'Utiliser temporairement séparateur décimal d'excel
Dim UseSystemSeparatorsSav As Boolean, DecimalSeparatorSav As String
Sub sepDecimalExcel()
    With Application
        ' sauvegarder
        UseSystemSeparatorsSav = .UseSystemSeparators
        DecimalSeparatorSav = .DecimalSeparator
        ' changer
        .DecimalSeparator = "."
        .UseSystemSeparators = False
    End With
End Sub

Sub retablirSepDecimal()
    With Application
        .UseSystemSeparators = UseSystemSeparatorsSav
        .DecimalSeparator = DecimalSeparatorSav
    End With
End Sub

Si tu veux le connaitre avant :

Function separateurDecimal() As String
    ' séparateur décimal en cours
    If Application.UseSystemSeparators Then
        'séparateurs système de Microsoft Excel utilisés
        separateurDecimal = Application.International(xlDecimalSeparator)
    Else
        'séparateurs régionaux de Windows utilisés
        separateurDecimal = Application.DecimalSeparator
    End If
End Function

Tu peux éventuellement avoir le séparateur millier qui peut te gêner s'il est sur "." (XlThousandsSeparator), à sauvegarder, changer (avant le séparateur décimal) et restaurer dans ce cas.

eric

^Merci Eric on en parlait justement avec qq'un qui testait le prog ce soir. Super ! Merci ça sera dans la prochaine MAJ bonne soirée!

Rechercher des sujets similaires à "forcer calcul texte exprimant formule"