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 :

variable égale à une formulaR1C1 [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut variable égale à une formulaR1C1
    Bonjoursoir,

    Je viens me réfugier pour la première fois sur un forum (donc désolé si je ne détaille pas assez mon problème :/ ) concernant un problème qui vous paraitra surement stupide... mais comme dirait mon ami Forrest "Maman disait toujours: <<n'est stupide que la stupidité.>>" D:
    En effet, je ne suis pas un pro (du tout) de excel mais je m'attarde à essayer de créer quelques modules VBA pour le boulot tels qu'une userform avec un jeu de filtre, insertion de ligne etc.

    Mon problème est le suivant:
    Je dispose d'une formule (activable via un bouton) de base qui me permet de calculer la somme des cellules contenant le chiffre "2" dans la colonne "X" et contenant aussi le mot "TEST" dans la colonne "Y". Ce résultat est placé dans une autre feuille du fichier excel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Sheets("TRUC").Select
        Range("B12").Select
        Selection.NumberFormat = "General"
        ActiveCell.FormulaR1C1 = _
            "=COUNTIFS(Tableau1[X],""2"",Tableau1[Y],""TEST"")"
    Cependant, ce code est incompatible avec ma demande puisque je cherche à créer un "historique" sur la seconde feuille du fichier. Chaque fois que j'utilise le bouton faisant appel à la formule, j'ai une nouvelle colonne qui se crée et qui insère le résultat de la formule.
    Seulement, si je rajoute sur la première feuille une ligne contenant un "2" (dans la colonne "X") et un "TEST" (dans la colonne "Y"), alors le résultat de la seconde feuille change.

    J'ai donc pensé (avec le peu de connaissance que j'ai :S ) de créer une variable "THEvariable" qui récupère le résultat de la formule pour l'insérer dans la cellule permettant ainsi d'éviter mon problème ci-dessus..... j'ai un mauvais pressentiment sur le regard que vous porté sur ma technique C:
    J'ai donc encore pensé de faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Sheets("TRUC").Select
        Dim THEvariable As Long
        Selection.NumberFormat = "General"
        THEvariable.FormulaR1C1 = _
            "=COUNTIFS(Tableau1[X],""2"",Tableau1[Y],""TEST"")"
        Range("B12") = THEvariable
    Pas la peine de dire que ça ne marche pas D':

    J'aimerais savoir si il existe une autre solution (surement d'ailleurs) ou un correctif à mon programme.
    En vous remerciant d'avance

    Salutations sans pareil.

  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,

    désolé, manque de temps pour répondre en profondeur ....

    cependant, voici une formule NB.SI.ENS en mode VBA, et optimisé pour un tableau structuré Excel (ListObject) qu'il me semble que tu utilises au vu de ton formulaR1C1 :

    Indique juste le nom de la feuille où est positionné le tableau, j'ai mis "LaFeuille" pour l'exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub ttr()
        With Worksheets("LaFeuille").ListObjects("Tableau1")
            MsgBox Application.WorksheetFunction.CountIfs(.ListColumns("X").DataBodyRange, "2", .ListColumns("Y").DataBodyRange, "TEST")
        End With
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    Bonjour Joe,

    Merci pour cette réponse, j'ai pu terminer ma macro!

    Voici ce que j'ai utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets("LaFeuille").ListObjects("Tableau1")
            Sheets("LaFeuille2").Range("B12") = Application.WorksheetFunction.CountIfs(.ListColumns("X").DataBodyRange, "2", .ListColumns("Y").DataBodyRange, "TEST")
    End With
    J'ai aussi utilisé la même méthode pour les SOMMEPROD (SUMPRODUCT):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets("LaFeuille").ListObjects("Tableau1")
            Sheets("LaFeuille2").Range("B11") = Application.WorksheetFunction.CountIfs(.ListColumns("Y").DataBodyRange, "TEST")
    End With
    Et enfin, j'ai utilisé ceci pour une date fixe (sans mise à jour automatique chaque jour de l'ouverture du fichier):

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/07/2014, 16h56
  2. [XL-2010] Variable égale à une fonction
    Par Zackiry dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/11/2013, 11h22
  3. [DATA] Variable égale à une variable dont le nom change
    Par thiblight dans le forum SAS Base
    Réponses: 3
    Dernier message: 11/12/2012, 10h54
  4. Boucle en VBA avec 2 variables dont une est le numéro de feuille
    Par micapilote dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/10/2011, 23h06
  5. [code VBA]passage de variable pour une requête paramétrée
    Par christrabin dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 14h30

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