Utiliser une variable + Optimisation du code
Résolu
makks
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
makks Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
makks Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
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..)
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
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:
- Utiliser une variable + Optimisation du code
- Code ascii - Guide
- Optimisation pc - Accueil - Utilitaires
- Utiliser chromecast - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
3 réponses
Bonjour
Il te faut séparer la partie "constante" de la partie "variable"
Cdlmnt
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
Bonjour,
Cela s'appelle la "concaténation" ....
Essayes ceci :
A partir de là .. tu seras en mesure de corriger par toi même ton code.
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.