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.
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.
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"")"
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:
Pas la peine de dire que ça ne marche pas D':
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
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.
Partager