Utiliser une variable + Optimisation du code

Résolu
makks Messages postés 18 Statut Membre -  
makks Messages postés 18 Statut Membre -
Bonjour à tous,

Je viens tout juste de commencer le VBA sous excel et j'ai quelques petits problèmes avec mes macros malgrès mes nombreuses lectures, je m'explique :
Je dois réaliser une "automatisation" d'analyse de données, je cherche donc à recopier une formule sur plusieurs colonne avec certains paramètres de cette formule qui bouge comme ceci : (Le code est terriblement moche je trouve mais bon..)
For i = 9 To 20
         Cells(i, 4).Select
         ActiveCell.FormulaR1C1 = "=SUMIFS(Données!C[12],Données!C[10],""AMELIORATION"",Données!C[-1],2010,Données!C,i)"
    Next i
    
    For i = 24 To 35
         Cells(i, 4).Select
         ActiveCell.FormulaR1C1 = "=SUMIFS(Données!C[12],Données!C[10],""AMELIORATION"",Données!C[-1],2011,Données!C,i)"
    Next i
    
    For i = 39 To 50
         Cells(i, 4).Select
         ActiveCell.FormulaR1C1 = "=SUMIFS(Données!C[12],Données!C[10],""AMELIORATION"",Données!C[-1],2012,Données!C,i)"
    Next i


Mon problème est que je n'arrive pas à récupérer ma variable i et qu'il me ressort ça comme du texte dans mes formules alors que je voudrais récupérer la donnée C:9 puis C:10 ect de ma feuille Données,
De plus, mon code est long et vraiment pas optimisé (Toujours 4 d'écart entre les i des différentes boucles) a savoir qu'il y a des boucles jusqu'en 2015, je suis vraiment pas très alaise avec le VBA encore donc si quelqu'un pourrait m'indiquer,
Merci :)

ps: en fait a la base "i" va de 1 à 12 (les douzes mois) mais je n'ai pas réussi à faire deux boucles en une (faire varier i et une autre variable pour mes cellules en même temps) donc je voulais soustraire à postériori pour retomber sur ma bonne valeur. Je ne sais pas ce que ca pourrait donner


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
A voir également:

3 réponses

ccm81 Messages postés 11033 Statut Membre 2 433
 
Bonjour

Il te faut séparer la partie "constante" de la partie "variable"
 f = "=SUMIFS(Données!C[12],Données!C[10],""AMELIORATION"",Données!C[-1],2010,Données!C," & i & ")"
Cells(i, 4).FormulaR1C1 = f


Cdlmnt
1
jordane45 Messages postés 40050 Statut Modérateur 4 754
 
Bonjour,


je n'arrive pas à récupérer ma variable i et qu'il me ressort ça comme du texte dans mes formules


Cela s'appelle la "concaténation" ....


Essayes ceci :

sub test()

dim toto as String

toto = "makks"

' exemple 1
msgbox " Bonjour toto "

'exemple 2
msgbox "Bonjour " & toto

End Sub



A partir de là .. tu seras en mesure de corriger par toi même ton code.
0
makks Messages postés 18 Statut Membre 1
 
Vous etes mes héros, merci beaucoup pour votre aide,
J'avais effectivement remarqué que c'était un problème de guillemets et de concaténation mais je ne trouvais pas ou exactement ni comment l'appliquer, maintenant je comprend !
0