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 :

Création macro calculs de sous-totaux


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Par défaut Création macro calculs de sous-totaux
    Bonjour à tous,

    étant un développeur de macros plus que novice, je fais appel à vos lumières pour m'éclairer sur une petite tâche que je dois effectuer au sein de mon stage.

    Nous avons au départ une feuille Excel représentant un bon de commande, avec une colonne avec les références produits, une 2ème avec les désignations produits, une 3ème avec les quantités, une 4ème avec les prix unitaires, une 5ème avec les prix totaux, et enfin une dernière avec les pays dans lesquels ces produits seront vendus. Par conséquent, certains produits seront déclinés en plusieurs lignes s'ils sont vendus dans plusieurs pays différents (je vous ai mis un aperçu en pièce jointe, j'y ai supprimé la colonne pays).

    L'idée est donc de créer une macro permettant d'ignorer cette notion de pays de vente différents, et donc d'obtenir une seule et unique ligne pour chaque produit. Cela sous-entend donc pour chaque produit, calculs de sous-totaux et de la somme des quantités, et obtenir une seule nouvelle ligne toute fraiche pour chaque produit (et supprimer les lignes de départ).

    Etant extrêmement novice en développement de macros, je ne sais pas du tout si cette tâche est d'une grande difficulté ou non, j'aurai grandement besoin de votre aide, au moins pour avoir une base de départ

    Je vous remercie grandement d'avance.

    Très bonne journée.
    Images attachées Images attachées  

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Tu peux aussi faire un tableau croisé dynamique ou utiliser des formules, plutôt que de faire une macro

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Par défaut
    bonjour,

    merci de ta réponse.

    Le problème est qu'il s'agit d'un très grand nombre de fichiers semblables, c'est pourquoi une macro me semble la plus appropriée. C'est en tout cas l'avis de mes supérieurs hiérarchiques et ce qu'ils m'ont demandé de faire...

    Merci.

  4. #4
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Je t'ai écris ça, c'est bien sûr à adapter.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    'Permet d'agreger les lignes
    Public Sub FaireSousTotaux()
     
        Dim colonneCle As Integer
        Dim colonnesAddition() As Integer
        Dim rg As Range
        Dim i As Integer, j As Integer
        Dim nbRows As Integer
        Dim dic As Dictionary
        Dim cle As String
        Dim oldVal As Double
     
        colonneCle = 1 'L'identifiant unique du produit
        colonnesAddition = Array(4, 6) 'Les colonnes pour lesquelles il faut faire des totaux
     
        Set rg = Selection 'C'est pour les tests, il faudrait sans doute définir la plage autrement
                            ' je prends ici les données sans la ligne de titres
     
        Set dic = New Dictionary 'La collection qui va contenir la correspondance identifiant ligne
     
        nbRows = rg.Rows.Count
        i = 1
        Do While i <= nbRows
            cle = rg.Cells(i, colonneCle)
     
            'On regarde si le produit existe déjà
            If dic.Exists(cle) Then
                'S'il existe, on ajoute les valeurs et on efface la ligne
                For j = 0 To UBound(colonnesAddition)
                    oldVal = rg.Cells(dic(cle), colonnesAddition(j)).Value
                    oldVal = oldVal + rg.Cells(i, colonnesAddition(j)).Value
                    rg.Cells(dic(cle), colonnesAddition(j)).Value = oldVal
                Next j
     
                rg.Cells(i, 1).EntireRow.Delete
            Else
                'S'il n'existe pas on l'ajoute
                dic.Add cle, i
                i = i + 1
            End If
        Loop
     
    End Sub

Discussions similaires

  1. TCD : "Calculer les sous-totaux des éléments filtrées" grisé
    Par White Clust dans le forum Conception
    Réponses: 2
    Dernier message: 29/06/2012, 10h30
  2. Réponses: 0
    Dernier message: 29/01/2012, 16h43
  3. [DeskI V5-V6] Calculer des sous totaux dans un tableau croisé dynamique
    Par Tancredoc dans le forum Débuter
    Réponses: 17
    Dernier message: 09/06/2010, 14h22
  4. [AC-2002] Comment calculer des sous-totaux dans une requete croisee
    Par babinou dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/08/2009, 09h43
  5. [forms 6i] calculs de sous-totaux
    Par Magnus dans le forum Forms
    Réponses: 4
    Dernier message: 31/03/2006, 10h13

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