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 :

Calcul dans cellule excel via vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur thermique
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur thermique

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut Calcul dans cellule excel via vba
    Bonjour,

    J'ai besoin de vos compétences concernant l'intégration d'une formule dans une cellule excel.
    Prenons un exemple bidon, disons que je dois calculer 5*H, avec H=1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
     
    H=1
    Cells(1,1)=5*H+1
     
    End Sub
    Je comprends bien que le logiciel n'arrive pas à interpréter H, j'ai donc essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
     
    H=1
    Cells(1,1)=5*" & H & "+1
     
    End Sub
    Mais cela ne fonctionne pas non plus. A partir de là c'est au dessus de mes compétences. Je ne sais pas s'il faut adapter une quelconque dim, ou si c'est même faisable.

    ps: je ne veux pas juste écrire le résultat dans la cellule car en réalité il y a des cellules ciblées dans cette formule et mon code vba fait que cette cellule est très régulièrement mise à jour (plus rapide de mettre à jour via excel que de réécrire la ligne).

    Merci d'avance pour vos suggestions si vous en avez.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 199
    Par défaut
    Bonjour,

    Chez moi le code ci-dessous fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Sub Test()
     
    Dim H As Integer
     
    H = 4
    Cells(1, 1) = 5 * H + 1
     
    End Sub
    Cordialement,

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur thermique
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur thermique

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut
    Effectivement, mais je me suis malheureusement mal exprimé et mal écrit mes lignes de code >< ....

    En fait je souhaite que la formule reste écrite en intégralité dans la formule, juste en remplaçant H par la valeur contenue dans le code.

    Je réécris le dernier code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
     
    H = 4
    Cells(1, 1) = "=5 * H + 1"
     
    End Sub
    Seulement ceci me donne =5*H+1 dans la cellule, sans modifier le H, et ce code ci ne fonctionne pas non plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
     
    H = 4
    Cells(1, 1) = "=5 *" &  H & "+ 1"
     
    End Sub

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,
    Citation Envoyé par Darlink Voir le message
    En fait je souhaite que la formule reste écrite en intégralité dans la formule, juste en remplaçant H par la valeur contenue dans le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
     
    H = 4
    Cells(1, 1).FormulaLocal = "=5*" & H & "+1"
     
    End Sub
    Ainsi ta formule restera dans la cellule mais H sera figé.

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur thermique
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur thermique

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut
    Merci à toutes les personnes qui ont essayé de m'aider malgré une compréhension générale ^^

    Mais c'est anasecu qui a trouvé la solution que je cherchais :p. H sera figé et cela me va très bien

    Merci encore, bonne journée !

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    Dans la limite de ma compréhension ce code fonctionne et donne comme résultat 6 dans la cellule A1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Test()
    H = 1
    Cells(1, 1) = 5 * H + 1
    End Sub
    la suite de votre discussion est incompréhensible au moins pour moi !!
    ps: je ne veux pas juste écrire le résultat dans la cellule car en réalité il y a des cellules ciblées dans cette formule et mon code vba fait que cette cellule est très régulièrement mise à jour (plus rapide de mettre à jour via excel que de réécrire la ligne).

  7. #7
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Rebonjour
    si tu cherche à ce que le H soit variable tu peux faire de cette façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Test()
    Dim H As Variant
     H = Application.InputBox("Introduire la valeur de H", "Valeur de H", Type:=1)
    Cells(1, 1) = 5 * H + 1
    End Sub
    Si non tu peux déclarer que le H égal à la cellule B2 par exemple et tu utilise la fonction worksheetChange
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Change(ByVal Target As Range)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insérer une formule dans une cellule Excel via VBA
    Par *.Har(d)t dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/02/2020, 13h02
  2. Réponses: 3
    Dernier message: 17/02/2016, 19h52
  3. [XL-2007] Résultats Calcul VBA dans cellule Excel
    Par Estaque3394 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/10/2012, 19h21
  4. verrouillage partiel cellules Excel /via VBA
    Par belzebuth007 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/06/2010, 16h12
  5. Création liste dans cellules Excel en VBA
    Par yazoo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2005, 14h46

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