IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Transformer une expression textuelle de formule en formule active


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Transformer une expression textuelle de formule en formule active
    Bonjour,

    Je planche sur un problème depuis un moment et je n'arrive toujours pas à trouver de solutions.

    J'aimerai créer une macro qui me permette de placer le signe = devant une formule.

    Exemple: j'ai dans ma cellule le contenu suivant : 8+5*1

    je voudrai créer un macro qui me copie le contenu de cette cellule dans la cellule de droite puis me place le signe = devant afin que la macro me renvoie le résultat.

    En faisant ça, je peux toujours avoir en vue la formule et dans la case d'à côté le résultat qu'elle renvoie

    Mon but est de pouvoir imprimer la page avec le calcul et le résultat affichés.

    J'ai trouvé cette macro qui fonctionne avec plusieurs caractères mais pas avec le signe =.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Ajout_Avant()
    Dim cellule As Range
    For Each cellule In Selection
    cellule = "=" & cellule
    Next cellule
    End Sub
    J'ai trouvé une autre solution en insérant un espace avant le signe = comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub Ajout_Avant()
    Dim cellule As Range
    For Each cellule In Selection
    cellule = " =" & cellule
    Next cellule
    End Sub
    ça fonctionne, seulement maintenant il faudrait continuer cette macro en supprimant l'espace qui se trouve avant le signe égale, c'est donc à ce moment là que je suis bloqué et que je ne trouve pas de solutions.

    Est-ce-que quelqu'un peut m'aider SVP?

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    je ne comprends, pas c'est quoi le problème de ton code ?
    tu dis vouloir écrire dans la "cellule de droite" mais tu "écris" dans la cellule courante ..!

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    J’ai testé ta procédure légèrement modifiée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Ajout_Avant()
    Dim cellule As Range
        For Each cellule In Selection
            cellule.Offset(0, 1) = "=" & cellule
        Next cellule
    End Sub
    La formule 8+5*1 est placée en A1.
    Je sélectionne A1, je lance la procédure.
    Elle me renvoie bien le résultat 13 en B1

    Cordialement.

  4. #4
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    tu raisonnes à l'envers, si tu veux un calcul, c'est la formule qu'il faut d’abord, ensuite si tu veux séparément avoir en clair son expression texte à côté, ce n'est pas compliqué :

    Tu as un formule en C1 du genre : En D1, tu fais : Onglet Formules, groupe Gestionnaire de noms, Définir un nom - comme nom tu indiques "FormuleEnClair", en bas dans Fait référence à , tu mets : et OK

    ensuite dans ton code VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub toto()
    Dim I As Long
     
    For I = 1 To 15
        Cells(I, 4).Formula = "=FormuleEnClair"
    Next I
     
    End Sub
    cordialement,

    Didier

Discussions similaires

  1. Transformer une expression en Dimension
    Par dbaxime76 dans le forum QlikView
    Réponses: 6
    Dernier message: 28/05/2013, 22h39
  2. Évaluer une expression textuelle
    Par Passepoil dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 22/06/2012, 13h14
  3. Transformer une expression arithmétique bien parenthésée en un arbre binaire
    Par mohsenuss91 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 04/02/2012, 10h06
  4. Transformé une formule Excel en script VBA ?
    Par SFLEY dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/01/2007, 11h48
  5. Réponses: 7
    Dernier message: 29/06/2006, 12h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo