Apprentissage Variable

MonkeyDguy Messages postés 7 Date d'inscription vendredi 24 octobre 2014 Statut Membre Dernière intervention 27 octobre 2014 - Modifié par jordane45 le 27/10/2014 à 12:42
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 27 oct. 2014 à 18:26
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

6 réponses

michael59330 Messages postés 30 Date d'inscription dimanche 27 janvier 2008 Statut Non membre Dernière intervention 29 octobre 2023
Modifié par jordane45 le 27/10/2014 à 12:42
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
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
27 oct. 2014 à 12:44
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
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
Modifié par jordane45 le 27/10/2014 à 12:51
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
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
27 oct. 2014 à 12:45
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 oct. 2014 à 12:50
Bonjour,
discussion déplacée vers le sous-forum VBA.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MonkeyDguy Messages postés 7 Date d'inscription vendredi 24 octobre 2014 Statut Membre Dernière intervention 27 octobre 2014
27 oct. 2014 à 17:13
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.
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
27 oct. 2014 à 18:26
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



0
Rejoignez-nous