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 :

calculer cumul puis fusionner des cellules avec des valeurs [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Par défaut calculer cumul puis fusionner des cellules avec des valeurs
    Bonjour ou rebonjour,

    voilà , j'ai un tableau à 2 colonne (col A et col B) , dans la première il y a le nom du mois et dans la deuxième des valeurs correspondant à un stock.Je souhaite réaliser une macro qui parcours la colonne A et dès qu'on passe au mois suivant , elle calcule le cumul des valeurs de stock (col B) , puis fusionne la cellule; et puis on passe au mois suivant et ainsi de suite.
    Voici le code pour fusionner les cellules de la colonne B, mais avant celà je souhaite d'abord calculer le cumul de toutes les valeurs (et je n'y arrive pas), puis apres fusionner et afficher le cumul pour le mois correspondant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim DerLig As Long
        Application.DisplayAlerts = False
        Lig1 = 1 'Commencer à la ligne 1 à adapter
        With Sheets("Feuil3") 'nom de la feuille à adapter
            DerLig = .Range("A65536").End(xlUp).Row
            m = .Cells(Lig1, 1): p = Lig1
            For lig = Lig1 To DerLig + 1
                If .Cells(lig, 1) <> m Then
            .Range(.Cells(p, 2), .Cells(lig - 1, 2)).Merge
    Quelqu'un peut il m'éclairer si possible ?

    Merci d'avance

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    c'est l'une des fonctionnalités intégrées d'Excel: sous.total (sans ou avec vba)

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Par défaut
    oui , j'entends bien, mais ce tableau est le résultat d'une macro qui traite un autre fichier.xls que je reçois mensuellement.Ce que je souhaiterais c'est que le sous-total se fasse automatiquement sur ce tableau à chaque fois que j'ai des données supplémentaires (ou mis à jours).Donc ça m'arrangerai d'intégrer un code vba ds ma macro qui fasse le cumul , puis fusionne les cellules (et n'affiche que la valeur du cumul du mois ).

    Merci

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Enregistreur de macro
    et regarde ce qu'il donne pour le sous.total

  5. #5
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour le fil le forum si tu tiens vraiment a passer par une macro!!!!!
    mois en colonne E
    occurences de fois en colonne F
    somme en colonne G
    a 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
    Sub es()
     Dim c, d, x As Variant, M As Object
    Application.ScreenUpdating = False
    Set M = CreateObject("Scripting.Dictionary")
    For Each c In Range("A2", [a65000].End(xlUp))
    M(c.Value) = IIf(M.exists(c.Value), M(c.Value) + 1, 1)
    Next c
    [e2].Resize(M.Count, 1) = Application.Transpose(M.keys)
    [f2].Resize(M.Count, 1) = Application.Transpose(M.items)
    [e1] = "mois": [f1] = "nb... mois": [g1] = "somme par mois"
    For Each c In Range("e2", [e65000].End(xlUp))
    For Each d In Range("a1", [a65000].End(xlUp))
    If c = d Then x = x + d.Offset(0, 1).Value
    Next d
    Range("g65536").End(xlUp)(2) = x
    x = 0
     Next c
    End Sub

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Par défaut
    je crois que j'ai mal formulé ma problèmatique.Je vous joins un fichier excel illustrant mon soucis.Je souhaite faire le cumul des valeurs dans la colonne "C" en fonction du nom du mois (colonne "A") , puis afficher les valeurs de cumul dans le tableau de la feuille 2; et celà sans modifier le tableau de la feuille 1.

    Merci
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/03/2010, 11h49
  2. Réponses: 3
    Dernier message: 09/10/2009, 18h05
  3. Supprimer des colonnes avec des cellules fusionnées
    Par alain74 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/03/2008, 11h07
  4. mettre des n° dans des cellules avec VBA
    Par naitgo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/11/2007, 20h48
  5. Réponses: 4
    Dernier message: 29/08/2007, 16h01

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