IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[E-07] Boucle pour simplifier le code


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [E-07] Boucle pour simplifier le code
    Bonjour,
    Debutant en VBA j'ai fait une petite macro et je souhaiterais simplifier le code ci-dessous par une boucle. en fait la formule est la même, il y a juste les colonnes qui changent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    derligne = Range("A1").End(xlDown).Row
     
    Range("B2").Formula = "=AVERAGE(calcul!B2:B" & derligne & ")"
    Range("C2").Formula = "=AVERAGE(calcul!C2:C" & derligne & ")"
    Range("D2").Formula = "=AVERAGE(calcul!D2:D" & derligne & ")"
    Range("E2").Formula = "=AVERAGE(calcul!E2:E" & derligne & ")"
    Range("F2").Formula = "=AVERAGE(calcul!F2:F" & derligne & ")"
    Range("G2").Formula = "=AVERAGE(calcul!G2:G" & derligne & ")"
    Range("H2").Formula = "=AVERAGE(calcul!H2:H" & derligne & ")"
    Range("I2").Formula = "=AVERAGE(calcul!I2:I" & derligne & ")"
    Range("J2").Formula = "=AVERAGE(calcul!J2:J" & derligne & ")"
    Range("K2").Formula = "=AVERAGE(calcul!K2:K" & derligne & ")"
    Range("L2").Formula = "=AVERAGE(calcul!L2:L" & derligne & ")"
    Range("M2").Formula = "=AVERAGE(calcul!M2:M" & derligne & ")"
    J'ai essayé plein de truc comme avec la boucle for ci-dessous mais j'y arrive pas, je dois sans doute me planter dans la syntaxe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = A To M
    Range(i & "2").Formula = "=AVERAGE(calcul!" & i & "2:" & i & derligne & ")"
    Next i
    Donc si quelqu'un pouvait m'aider ca serait bien sympa. Merci d'avance.

    Damien

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    Boucle sur Cells(i,j).Formula

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = A To M
    Cells(2, i).Formula = "=AVERAGE(calcul!" & i & "2:" & i & derligne & ")"
    Next i
    Erreur définie par l'application ou par l'objet

    et ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 2 To 13
    Cells(2, i).Formula = "=AVERAGE(calcul!" & i & "2:" & i & derligne & ")"
    Next i
    les calculs se lancent mais quand je regarde dans mon classeur excel la formule n'est pas bonne il n'y a pas de lettre dedans et le resultat n'est pas bon voila ce que ca m'affiche dans excel pr la cellule B2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MOYENNE(calcul!22:2102)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    Utilise FormulaR1C1 pour avoir des positions relatives et ne plus avoir à utiliser des lettres dans tes formules.

    A noter que tu fais ta moyenne sur une plage incluant ta cellules de moyenne, ça fait une référence circulaire.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Ok merci pour votre aide je vais essayer avec les références relatives.
    La cellule de moyenne est située sur une autre feuille que la plage, c'est parce que j'ai pas mis le debut du code

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut à tous
    dahuhunter au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = A To M
    Cells(2, i).Formula = "=AVERAGE(calcul!" & i & "2:" & i & derligne & ")"
    Next i
    Qui ne peut fonctionner, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 13
    Cells(2, i).Formula = "=AVERAGE(calcul!" & chr(64+i) & "2:" & chr(64+i) & derligne & ")"
    Next i
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 13
    Cells(2, i).Formula = "=AVERAGE(calcul!" & cells(2,i).address & ":" & cells(65536,i).end(xlup).address & ")"
    Next i
    A+

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    oh j'étais parti en vacances et miracle en revenant mon pb est résolu merci Gorfael ca marche du feu de dieu
    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide pour simplifier un code et comprendre le mécanisme
    Par nicdodo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/04/2015, 15h50
  2. Boucle pour raccourcir le code?
    Par jimmo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/11/2014, 08h25
  3. [E-00] Utilisation d'un auxilliaire pour simplifier le code
    Par anyah dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 21/11/2008, 17h31
  4. Réponses: 6
    Dernier message: 14/11/2008, 14h32
  5. Aide pour simplifier un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/01/2008, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo