Apprentissage Variable

Messages postés
7
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
27 octobre 2014
-
Bonjour,


Voici le début d'un code d'une de mes macro



Sub ReelGST()
'
' Extraction des données du Réél de GST

'


Dim ProjetTache As String

ProjetTache = Workbooks("Macromailauto3.xlsm").Worksheets("Intro").[D14].Value


    Range("E117").Select
    ActiveCell.FormulaR1C1 = _
        "=SUMIF([Mise_a_jour_BDD_Reporting_GC.xlsm]SCORE!C56,RC4&R98C&ProjetTache&R116C3,[Mise_a_jour_BDD_Reporting_GC.xlsm]SCORE!C29)*1000"
    Range("E117").Select





J'espérais en déclarant ma variable Projet Tache comme ci dessus que lorsque ma somme.si s'effectue en E117 , j'ai dans les critères à la place de "ProjetTache" dans ma formule ce qu'il y avait dans la cellule D14.

Mais non :/ Je suis débutant pouvait vous m'expliquer cela ?

EDIT : Ajout des balises de code
Afficher la suite 

6 réponses

Messages postés
26
Date d'inscription
dimanche 27 janvier 2008
Statut
Contributeur
Dernière intervention
7 juillet 2019
0
Merci
Ohlala c'est compliqué cette histoire, moi j'aurai déclaré un tableau puis j'aurai fait la somme avec une conditionnelle avec du code vb:
Exemple :
dim tableau(50) as single 'mettre le nombre de cellules
'ensuite tu met les valeurs des cellules dans le tableau : 
tableau(1)=cells(1,1) 'cells(colonne,ligne)
etc...
ensuite tu met une condition:
exemple
for i = 1 to 50
if tableau(i)>10 then ...
next


EDIT : Ajout des balises de code
jordane45
Messages postés
26318
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2019
314 -
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Commenter la réponse de michael59330
Messages postés
26318
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2019
314
0
Merci
Bonjour,

Il suffit de concaténer....

Dim ProjetTache As String
ProjetTache = Workbooks("Macromailauto3.xlsm").Worksheets("Intro").[D14].Value
Range("E117").Select
ActiveCell.FormulaR1C1 = _
        "=SUMIF([Mise_a_jour_BDD_Reporting_GC.xlsm]SCORE!C56,RC4&R98C" & ProjetTache & "R116C3,[Mise_a_jour_BDD_Reporting_GC.xlsm]SCORE!C29)*1000"
Range("E117").Select



Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Commenter la réponse de jordane45
Messages postés
26318
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2019
314
0
Merci
PS;
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Commenter la réponse de jordane45
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Bonjour,
discussion déplacée vers le sous-forum VBA.
Commenter la réponse de ucfoutu
Messages postés
7
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
27 octobre 2014
0
Merci
Bonjour ,

Désolé pour la mauvaise synthaxe de mon code je le saurais pour la prochaine fois !


Concernant ta réponse, je ne vois pas bien ce que tu as changé o_O?
Enfin si tu me parle de concaténation mais il me semble l'avoir déjà fait dans la somme.si voci le critère que j'avais mis :
plage ;RC4&R98C&ProjetTache&R116C3; somme_plage

Tu m'as transformé le critère en :

RC4&R98C" & ProjetTache & "R116C3

Ce qui ne marche même plus !

Je me suis surement mal exprimé. (Où quelque chose d'autre m'échappe!)

Le 2ème élément du "critère" est variable c'est pourquoi j'ai souhaité déclarer la variable "Projettache" qui correspond à une cellule dont la valeur va changer.
Commenter la réponse de MonkeyDguy
Messages postés
26318
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2019
314
0
Merci
Le souci c'est que ta variable.. si elle est contenue DANS la formule ( entre les guillemets) est comprise comme du TEXT et non comme étant la valeur de ta variable...

Sub toto()
Dim A As String
 A = " TEST "
 MsgBox ("ceci est un A raté")
 MsgBox ("ceci est un " & A & " réussi")
End Sub


Peux tu tester ce code :
Sub ReelGST()
' Extraction des données du Réél de GST
'-----------------------------------------------
Dim ProjetTache As String
Dim formule_sumIF As String
Dim Wkb As Workbook
Dim Sh As Worksheet

Set Wkb = Workbooks("Macromailauto3.xlsm")
Set Sh = Wkb.Worksheets("Intro")

ProjetTache = Sh.Range("D14").Value

Range("E117").Select
formule_sumIF = "=SUMIF([Mise_a_jour_BDD_Reporting_GC.xlsm]SCORE!C56,RC4&R98C&" & ProjetTache & "&R116C3,[Mise_a_jour_BDD_Reporting_GC.xlsm]SCORE!C29)*1000"

'-----------------------------------------------
' QUE DONNE LE DEBUG.PRINT DE LA FORMULE ?
Debug.Print formule_sumIF
'-----------------------------------------------

ActiveCell.FormulaR1C1 = formule_sumIF
Range("E117").Select

End Sub



Commenter la réponse de jordane45