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 :

Calcul de la moyenne d'une activite + insertion des lignes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut Calcul de la moyenne d'une activite + insertion des lignes
    Bonjour,
    sur une base access j'exporte des donnees regroupée par activité sur un fichier excel (7activites)
    mon but c'est d'inserer entre 2 activite distinct une ligne qui permette de somme des champs afin de calculer la moyenne par activites.
    Merci de vos reponse et j'espere que j'etais assez clair.
    merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 560
    Par défaut
    Avec Excel, c'est simple

    Tu tries tes données par activités
    Tu rajoutse des sous totaux en choisissant moyenne sur la zone qui t'interesse et à chaque changement d'activité

    Pas besoin de VBA pour çà

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    les activités sortent deja trié ,donc il me faut inserer une ligne vide qui va me permettra de calculer la somme des champs .
    le soucis c'est que j'exporte , et je veux qu'au moment de l'export je manipule pas le donnees

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 560
    Par défaut
    Essaie le code ci-dessous
    Evidemment, je suppose qu'il n'y apas de titre, que ton activité est en colonne 1 et que ta valeur est en colonne 2 et que tes donnnées sont triés par activité

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Sub traitement()
        Dim i As Integer
        Dim nbreVal, sommeVal As Double
        Dim strAct As String
        i = 1
        nbreVal = 0
        sommeVal = 0
        strAct = Cells(i, 1).Value
        While Trim(Cells(i, 1).Value) <> ""
            If Cells(i, 1).Value <> strAct Then
                Rows(i & ":" & i).Select
                Selection.Insert Shift:=xlDown
                Cells(i, 1).Value = strAct
                Cells(i, 2).Value = sommeVal / nbreVal
                Cells(i, 3).Value = "TOTAL"
                nbreVal = 0
                sommeVal = 0
                strAct = Cells(i + 1, 1).Value
            Else
                nbreVal = nbreVal + 1
                sommeVal = sommeVal + Cells(i, 2).Value
            End If
            i = i + 1
        Wend
        Rows(i & ":" & i).Select
        Selection.Insert Shift:=xlDown
        Cells(i, 1).Value = strAct
        Cells(i, 2).Value = sommeVal / nbreVal
        Cells(i, 3).Value = "TOTAL"
    End Sub

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    merci pour ta reponse

    j'arrive pas a excuté cette ligne , je me demande pq ca bloque ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sommeVal = sommeVal + Cells(i, 4).Value
    [EDIT]
    c'est bon j'ai reussi , en supprimant le titre du champ .
    mais comme pourrais je calculer tt en gardant mon titre
    mais vu que j'ai plusieurs champs a calculé a sommer (7chmps)
    comment pourrais je automatisé tout ca
    je suis un debutant en vb et merci pour ta comprehension

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 560
    Par défaut
    facile

    j'initialise i=1 car je suppose que les données commencent sur la première ligne
    Maintenant, si tes données commencent sur la deuxième ligne, tu fai i=2

    Si c'est sur la ligne 5, tu mets i=5

    Voilà c'est tout... normalement, çà devrait être OK

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/12/2014, 01h54
  2. [Débutant] calcul de la moyenne d'une région
    Par blackmisery dans le forum Images
    Réponses: 22
    Dernier message: 26/08/2013, 11h03
  3. Calcul de la moyenne d'une activite
    Par Chikatilo dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 02/09/2008, 16h01
  4. calcule de la moyenne d'une région
    Par jameshamm dans le forum Images
    Réponses: 1
    Dernier message: 02/03/2008, 16h47
  5. [MySQL 4.0] Calcul de la moyenne d'une somme
    Par Silver76 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 31/05/2007, 13h33

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