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 :

fonction Average dans un tableau ou on rajoute des colonnes


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Points : 20
    Points
    20
    Par défaut fonction Average dans un tableau ou on rajoute des colonnes
    bonjour à tous

    je debute VBA

    Voila g un tableau excel a la fin duquel g 2 colonne ; 1 colonne somme et 1 colonne moyenne
    G une petite macro qui me rajoute dans ce tableau chaque semaine 1 nouvelle colonne de données. Cequi décale automatiquement mes colonnes moyenne et somme situées a la fin de mon tableau.

    Mon Pb c est que j arrive pas a faire que mes formules englobent la nouvelle colonne. Elles continuent de calculer somme et moyenne sur 6 semaine quand je vient de rajouter une 7 ème semaine par exemple.

    Lors de l enregistrement à la main de macro, g pourtant utilisé Ctrl + Shift + fleche gauche pour bien lui dire de prendre toute la ligne !!

    Voila le code qu il a retenu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ActiveCell.Offset(1, 1).Range("A1").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-8]:RC[-1])"
        ActiveCell.Offset(0, 1).Range("A1").Select
        ActiveCell.FormulaR1C1 = "=SUM(RC[-9]:RC[-2])"
        ActiveCell.Offset(0, -1).Range("A1").Select
        Range(Selection, Selection.End(xlToRight)).Select
        Selection.Copy
        ActiveCell.Range("A1:B4").Select
        ActiveSheet.Paste
    L objectif serait d avoir un truc du style
    Average(RC[-1]:End(xlToLeft)), evidemment ca marche pas
    Sachant en plus qu il faudrait que mon End(xlToLeft) s arrete une cellule avant la fin de mon tableau histoire de pas prendre la légende

    Comment faire
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip PB.zip (16,4 Ko, 86 affichages)

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    tu peux remplacer les formules de somme et de moyenne ainsi:

    En L14 tu saisies
    =MOYENNE(INDIRECT("D14:"&ADRESSE(LIGNE();COLONNE()-1)))

    En M14 tu saisies
    =SOMME(INDIRECT("D14:"&ADRESSE(LIGNE();COLONNE()-2)))

    et tu adaptes pour les lignes suivantes ...
    en L15
    =MOYENNE(INDIRECT("D15:"&ADRESSE(LIGNE();COLONNE()-1)))
    en M15
    =SOMME(INDIRECT("D15:"&ADRESSE(LIGNE();COLONNE()-2)))
    ...etc...

    Désormais le calcul continue à s'effectuer meme si tu insères une colonne à la suite


    Nota:
    lors de la construction de tableaux, il est toujours préférable de positionner les calculs tout en haut ou sur la gauche afin d'éviter ce type de désagrément


    michel

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Points : 20
    Points
    20
    Par défaut



    C parfait !

    THx Michel

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    J en profite pour te demander si c possible de mettre a jour le graph qui represente le tableau.
    Ma macro ne prend pas en compte la nouvelle colonne dans ces données sources et me refait le graph d avant l insertion de la colonne supplémentaire.

    tu me diras certainement que c pas tres compliqué de dérouler á la main la plage de donnée qui apparait qd je clique sur le graph, mais bon...
    je me renseigne, et tu m a l R d etre la bonne personne !
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip PB.zip (17,0 Ko, 74 affichages)

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    tu peux tester cette procedure pour modifier la plage source du graphique


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub modification_SourceGraphique()
        Dim x As Integer
        Dim Plage As Range
        Dim Ws As Worksheet
     
        Set Ws = Sheets("Tabelle1")
     
        x = Ws.Range("B14").End(xlToRight).Column - 2
        Set Plage = _
            Ws.Range(Ws.Cells(14, 2).Address, Ws.Cells(16, x).Address)
     
        Ws.ChartObjects(1).Chart.SetSourceData Source:=Plage, _
                    PlotBy:=xlRows
    End Sub


    michel

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2015, 16h41
  2. fonction RECHERCHEV dans un tableau trié qui fait des siennes
    Par christophertux dans le forum Conception
    Réponses: 2
    Dernier message: 05/10/2010, 11h38
  3. [PHP 5.2] utilisation de la fonction in_array dans un tableau multidimensionnel
    Par megaloplex dans le forum Langage
    Réponses: 1
    Dernier message: 23/08/2010, 13h59
  4. Resultat de calcul d'une fonction PHP dans un tableau
    Par voyageurdumonde dans le forum Langage
    Réponses: 6
    Dernier message: 17/08/2010, 00h30
  5. Appeler des fonctions listées dans un tableau
    Par MarieNum dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 01/01/2009, 17h31

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