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 :

Macro VBA sous total Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 7
    Par défaut Macro VBA sous total Excel
    Bonjour à tous,

    Je travaille sous excel 2010, je voudrai automatisé via une macro VBA la fonction sous total.

    J'ai sur ma feuille excel un compte de résultat comptable, compte 6 et compte 7 en ligne et les mois de l'année en colonne, et je voudrai appliqué un sous total à chaque changement de nature comptable sur l'ensemble de mon tableau (TOTAL 60: sous total, TOTAL 61: sous total).

    Je travaille sur différentes feuilles, chaque feuille représentant une activité particulière; mes tableaux ont tous une taille différente. Par exemple, le Total 60 se trouve en ligne 14 pour une activité et en ligne 21 pour une autre.

    Je suis novice en terme de macro .

    Merci d'avance de votre aide!!

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonsoir
    Pour établir un état de résultat ou n'importe quel autres calcul je procède de la façon suivante :
    Ma base de travail c'est toujours la balance comptable des charges et des produit, pour moi ma balance est structuré de la façon suivante :
    N° Compte / Libellé compte / Mouvement débit / Mvt Crédit / solde débit / solde crédit et j'ajoute autres colonne pour Solde (solde débit - solde crédit)
    Puis je déclare mon tableau et je fais les regroupements comme suit :
    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
     
    sub comptabilite
    dim Sh as worksheets
    Set Sh = sheets ("TONBALANCE")
    Tablo = Sh.Range("A2", "G" & Sh.Range("G" & Sh.Rows.Count).End(xlUp).Row)
     
     
    'CHIFFRESAFFAIRES 701/702/703/705 ici un exemple comment je calcul le Chiffre d'affaire
    For i = LBound(Tablo, 1) To UBound(Tablo, 1)
        If Tablo(i, 1) Like "701*****" Or Tablo(i, 1) Like "702*****" Or Tablo(i, 1) Like "703*****" Or Tablo(i, 1) Like "705*****" Then
            REVENU = REVENU + Tablo(i, 7)
        End If
    Next i
    Sheets("RESULTATA").Range("C7") = REVENU 'ici la feuille qui recevra ton calcul
    End sub
    Bonne continuation

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 7
    Par défaut
    Bonjour,

    Merci de votre réponse, mais mon tableau est issu d'une extraction via sage et je ne peux pas modifier le format.

    Les cellules "Total 60" etc sont des champs non calculés.


    J'aimerai simplement appliqué un sous total sur les colonnes de D à S dès que "Total 60", "Total 61", "Total 62" etc... apparaît (en colonne B sur mon fichier pour toutes les feuilles) le tout en conservant mon formatage.

    Merci d'avance

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour et bienvenue sur le forum!
    la fonction SOUS.TOTAL existe sur Excel. Lorsqu'une fonction existe comme ça sur Excel, on peut directement l'utiliser en VBA grâce à la syntaxe WorksheetFunction.nom_de_la_fonction.
    Attention : VBA est en anglais, donc il faut trouver le nom de la fonction en ANGLAIS et on utilisera "," comme sépérateur d'argument et pas ";" comme sur Excel.
    Dans ton cas, tu peux utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorksheetFunction.Subtotal(109, Sheets("nom de la feuille").Range("D1:D10"))
    En adaptant les arguments.

    https://msdn.microsoft.com/en-us/lib.../ff840579.aspx

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 7
    Par défaut
    Re,

    Le problème c'est que la fonction sous total m'insère une ligne et j'aimerai que la macro ne m'en rajoute aucune.
    Je te met le fichier en pj pour que tu comprennes.

    Merci de ta réactivité
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Hmmm... je ne comprends pas bien comment la fonction sous totale peut insérer une ligne....
    Dans ton fichier tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorksheetFunction.Subtotal(109, Sheets("nom de la feuille").Range("D1:D10"))
    tel quel dans un module. Je pense que tu n'as pas bien compris comment écrire du code VBA. Renseigne-toi sur la façon d'écrire du code, mais voici quelques explications:

    Il faut que tu créés une méthode que tu lanceras quand tu en auras besoin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub nom_de_la_methode
        'code
    End Sub
    Dans cette méthode, tu va mettre le code qui t'intéresses. Par exemple, tu veux que dans la cellule D11 apparaisse le sous total des cellules D1 à D10, tu écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub monSousTotal()
        Sheets("maFeuille").Range("D11").Value = Application.WorksheetFunction.Subtotal(109, Sheets("maFeuil").Range("D1:D10"))
    End Sub
    A gauche de "=", tu mets la cellule dans laquelle tu aimerais voir apparître le sous total et à droite tu mets le calcul pour le sous total.
    Sheets("maFeuil") indique que tu veux travailler dans la feuille nommée maFeuil. Range te permets de travailler dans une cellule.

    Pourquoi veux-tu passer par une macro? Ne peux-tu pas écrire seulement une formule dans ton fichier?

Discussions similaires

  1. [XL-2010] Macro VBA copie tableau Excel sous Powerpoint
    Par shakapouet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/04/2012, 09h47
  2. [XL-2007] Macro vba sous excel, un rien compliqué
    Par colapsus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/06/2011, 15h25
  3. macro VBA sous Excel
    Par _debutant dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/01/2009, 17h44
  4. Sous total Excel
    Par ali92 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/04/2008, 09h46
  5. Lenteurs de macros VBA sous Excel 2007 vs Excel 2003
    Par nicotab dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/11/2007, 18h47

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