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 :

Optimisation/Simplification Macro Cumul Colonne [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 312
    Billets dans le blog
    15
    Par défaut Optimisation/Simplification Macro Cumul Colonne
    Bonjour,

    J'ai ce macro qui me permet de faire la somme des colonnes Montant1 et Montant2, et une petite mise en forme.

    Je suis preneur pour des idées afin de le rendre plus propre.

    Merci d'avance
    Code vba : 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
    Sub SommeDebCred()
    Dim DernLigne As Long, MaPlage1 As Range, MaPlage2 As Range
     
        DernLigne = Range("A1048576").End(xlUp).Row
        Set MaPlage1 = Range("F5:F" & DernLigne)
        Set MaPlage2 = Range("G5:G" & DernLigne)
        Range("A" & DernLigne + 1).Select
        ActiveCell = "TOTAL"
        ActiveCell.Font.Bold = True
        ActiveCell.HorizontalAlignment = xlCenter
        ActiveCell.Offset(0, 5) = Application.WorksheetFunction.Sum(MaPlage1)
        ActiveCell.Offset(0, 5).Font.Bold = True
        ActiveCell.Offset(0, 5).NumberFormat = "#,##0"
        ActiveCell.Offset(0, 6) = Application.WorksheetFunction.Sum(MaPlage2)
        ActiveCell.Offset(0, 6).Font.Bold = True
        ActiveCell.Offset(0, 6).NumberFormat = "#,##0"
        ActiveSheet.Range("A" & DernLigne + 1, "D" & DernLigne + 1).MergeCells = True 'Fusion de la ligne Total de A à D
     
    End Sub
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Ceci par exemple
    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
    Sub SommeDebCred()
        Dim DerLig As Long, i As Long
        DerLig = Range("A" & Rows.Count).End(xlUp).Row + 1
        With Range("A" & DerLig)
            .Value = "TOTAL"
            .HorizontalAlignment = xlCenter
        End With
        For i = 1 To 2
            With Cells(DerLig, i + 5)
                .Value = Application.WorksheetFunction.Sum(Range(Cells(5, i + 5), Cells(DerLig - 1, i + 5)))
                .NumberFormat = "#,##0"
            End With
        Next i
        Range("A" & DerLig, "G" & DerLig).Font.Bold = True
        Range("A" & DerLig, "D" & DerLig).MergeCells = True  'Fusion de la ligne Total de A à D
     End Sub
    Cdlt

  3. #3
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour Malick,

    Il n'y a pas réellement de nécessité de coder pour ce cas.

    Il te suffit de passer ton tableau en tableaux structurés et d'ajouter, dans les options de ton tableau, la ligne totaux qui peut contenir : une moyenne, somme, médiane, Count,...

    Et ce sans une ligne de code juste un clic sur une check box du bandeaux et le choix du type de calcul dans la ligne total.

    Bien à toi,

    MFoxy

  4. #4
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 312
    Billets dans le blog
    15
    Par défaut
    Bonjour,

    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Ceci par exemple
    Merci ARTURO83, je teste cela et te reviens

    Citation Envoyé par mfoxy Voir le message
    Bonjour Malick,

    Il n'y a pas réellement de nécessité de coder pour ce cas.

    Il te suffit de passer ton tableau en tableaux structurés et d'ajouter, dans les options de ton tableau, la ligne totaux qui peut contenir : une moyenne, somme, médiane, Count,...

    MFoxy
    Merci pour ce retour Je connais l'existence des tableaux structurés et je les utilise avec Power Query aussi. Sauf que pour ce cas, c'est plusieurs feuilles qui sont générées par code, et je dois intégrer la mise en forme et les calculs automatiquement lors de la génération. Ce ce qui justifie le codage.

    encore
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  5. #5
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 312
    Billets dans le blog
    15
    Par défaut
    Salut,

    @ARTURO83, ta proposition fonctionne nickel.

    et bon weekend
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

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

Discussions similaires

  1. Macro suppression colonnes qui bloque
    Par La Zélie dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/08/2009, 22h25
  2. [XL-2003] Optimiser une macro de mise en forme d'un Tableau
    Par mouncefdi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/04/2009, 12h19
  3. macro msgbox + colonne
    Par nono1712 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/03/2009, 15h48
  4. [OpenOffice][Tableur] Macro-transfert macro tri colonne de Excell vers Open
    Par ObjectifSciences dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 26/11/2008, 11h30
  5. Optimiser une macro
    Par PiliSql dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/05/2008, 20h18

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