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 :

Insérer formule dans une cellule VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 55
    Par défaut Insérer formule dans une cellule VBA
    Bonjour,
    Je n'arrive pas à insérer dans une cellule une formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("2016").Range("R51").Formula = "=comptecouleurfond(I49:L51;5)"
    Ca vient de cette partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=comptecouleurfond(I49:L51;5)"
    Car quand je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("2016").Range("R51").Formula = "=S50+S51"
    Ca marche très bien
    Sachant que compte comptecouleurfond est une fonction qui marche tres bien quand je ne passe pas par le VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function CompteCouleurFond(champ As Range, couleurfond)
      Application.Volatile
      Dim c, temp
      temp = 0
      For Each c In champ
        If c.Interior.ColorIndex = couleurfond Then
          temp = temp + 1
        End If
        Next c
        CompteCouleurFond = temp
    End Function
    Merci , je pense que c'est tout bête mais je ne trouve pas
    Bonne journée

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    .Formula nécessitant la rédaction de la formule au format anglais : tu dois remplacer le point virgule qui sépare tes arguments par une simple virgule

    autre solution : utiliser .FormulaLocal qui travaillera avec la langue régionale paramétrée (Français pour toi)

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 55
    Par défaut
    Oui c'est exactement ça merci bien
    Dernière petite question sur le même sujet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("2016").Range("R51").FormulaLocal = "=comptecouleurfond(""B"" & i:""BE"" & i;5)"
    Quelle est le problème dans ma syntaxe ?
    Merci

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    tu mélanges dans ta formule les parties "dures" (qu'il faudra écrire tel quel dans ta cellule excel) et les parties "dynamiques" (les variables dont on veut écrire leur valeur dans la cellule)

    à vue de nez ça doit être ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("2016").Range("R51").FormulaLocal = "=comptecouleurfond(""B""" & i & ":""BE""" & i & ";5)"

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 55
    Par défaut
    Hum ça ne marche pas
    Rien n'est reçue dans la cellule concerné
    Par contre si j'effectue ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("2016").Range("R54").FormulaLocal = "=comptecouleurfond(""B"" & i ; ""BE"" & i;5)"
    Il me rentre dans la cellule R54 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =comptecouleurfond("B" & i; "BE" & i;5)
    mais qui ne marche pas

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu rajoute un colonne que tu masque!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function NumCoulFont(C As Object)
    Application.Volatile True
    NumCoulFont = Abs(C.Interior.Color)
    End Function
    Sub Test()
    Range([B1], Cells((Cells.Rows.Count), "b").End(xlUp)).FormulaR1C1 = "=NumCoulFont(RC[-1])"
    Cells(Cells((Cells.Rows.Count), "b").End(xlUp).Row + 1, "A").FormulaLocal = "=NB.SI(" & Range([B1], Cells((Cells.Rows.Count), "b").End(xlUp)).Address & ";65535)"
    End Sub

+ 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. Inscrire une formule dans une cellule par VBA
    Par marc56 dans le forum Excel
    Réponses: 6
    Dernier message: 23/11/2008, 23h57
  3. Insérer une formule dans une cellule
    Par thierrykammi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/08/2008, 13h43
  4. Insérer une formule dans une cellule
    Par sam_XIII dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 05/10/2007, 16h47
  5. [VBA] Macro qui envoie une formule dans une cellule
    Par Okoss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2007, 22h32

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