Trier et totaliser par N° de compte (EXCEL)

Résolu
andremo Messages postés 15 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Sous EXCEL 2003, j'ai un fichier de compta avec en feuille 1 "le journal" et les champs suivants: dates, trimestre, type, montants, libellé, montants,N° de compte, N° d'activité.
Les N° de compte sont précedés des caractéres "P-" pour les recettes (Ex: P-75601) ou "D-" pour les depenses (Ex: D-40601).
En feuille 2 je souhaite trier les enregistrements de recettes, les regrouper et effectuer le total par N° de compte.
En feuille 3 je souhaite trier les enregistrements de dépenses, les regrouper et effectuer le total par N° de compte.
Le tri et le total par N° de compte doit s'effectuer automatiquement aprés: ajout, suppression ou modification d'un enregistrement sur le journal de la feuille 1.
Pouvez vous m'aider à realiser ces modifications.
Merci d'avance.
A. M.
Configuration: Windows XP
Excel 2003

Firefox 1.5.0.12

7 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Le tri et le total par N° de compte doit s'effectuer automatiquement aprés: ajout, suppression

    il faut travailler avec une macro VBA évenementielle et pour t'aider,
    ce serais bien que tu nous mettes un petit bout de fichier sans données confidentielles.

    tu peux mettre un fichier test ici : https://www.cjoint.com/
    et donner le code lien fourni dans ce sujet.
    0
  2. andremo Messages postés 15 Statut Membre
     
    Bonjour gbinforme,

    J'ai mis le fichier souhaité sur Cjoint.https://www.cjoint.com/?gvl2T3oRAR

    Le fichier est composé de 3 feuilles:

    La 1ére comporte le journal
    La 2éme comporte les dépenses par N° de Compte (réaliser manuellement)
    La 3éme comporte les recettes par N° de Compte ( réalisé manuellement)

    Ce que je souhaite obtenir: Que les 2éme et 3éme feuilles se mettent à jour automatquement en fonction des modifications de saisie dans la feuille Journal.

    Merci de ton aide

    A. M.
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonsoir.

    Je viens de récupérer ton fichier et je penses que cela doit être possible de faire cela.

    Il me faut un peu de temps libre et je te mets le résultat.

    à bientôt.
    0
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonsoir

    Voilà ce que tu voulais est réalisé et disponible ici : https://www.cjoint.com/?gwashr2a4O

    En fait, tu peux saisir autant d'écritures que tu veux dans le journal,
    et c'est lorsque tu vas dans la feuille dépenses ou recettes qu'elle est mise à jour.

    Pour cela, lors de l'activation de la feuille, on appelle une macro avec le paramètre
    correspondant soit aux recettes soit aux dépenses.

    La macro se trouve dans le module1 :

    Option Explicit
    Public c As Integer 'colonne du N° de compte
    Public i As Integer 'indice écriture
    Public j As Integer 'indice colonne
    Public l As Integer 'ligne compte
    Public k As Integer 'colonne compte
    Public Const cpt = "N° Compte" 'libellé colonne N° compte
    Public Const czi = "Journal"   'libellé feuille de saisie journal
    Public Const rec = "P-"        'début libellé compte recettes
    Public Const dep = "D-"        'début libellé compte dépenses
    Public Const mnt = "Montants"  'libellé colonne montants
    Public Const tit = 2           'ligne titre
    
    Public Sub cre_feuille(sel As String)
    ' initialisation feuille
        Cells(tit, 1).RemoveSubtotal
    ' recherche de la dernière ligne
        j = 0
        For i = 1 To Cells(tit, 1).End(xlToRight).Column
            If Cells(65536, i).End(xlUp).Row > j Then
                j = Cells(65536, i).End(xlUp).Row
            End If
        Next i
        Cells(tit + 1, 1).Resize(j, Cells(tit, 1).End(xlToRight).Column).ClearContents
    ' recherche de la colonne du N° de compte
        For i = 1 To Sheets(czi).Cells(tit, 1).End(xlToRight).Column
            If Sheets(czi).Cells(tit, i).Value = cpt Then c = i
        Next i
    ' recherche des écritures
        l = tit
        For i = 4 To Sheets(czi).Cells(65536, 1).End(xlUp).Row
            If Left(Sheets(czi).Cells(i, c).Value, 2) = sel Then
                l = l + 1
                For k = 1 To Sheets(czi).Cells(tit, 1).End(xlToRight).Column
                    For j = 1 To Cells(tit, 1).End(xlToRight).Column
                        If Sheets(czi).Cells(tit, k).Value = _
                            Cells(tit, j).Value Then
                            Cells(l, j).Value = Sheets(czi).Cells(i, k).Value
                            Exit For
                        End If
                    Next j
                Next k
            End If
        Next i
    ' recherche de la colonne du N° de compte
        For i = 1 To Cells(tit, 1).End(xlToRight).Column
            If Cells(tit, i).Value = cpt Then c = i
        Next i
    ' recherche de la colonne Montants
        For i = 1 To Cells(tit, 1).End(xlToRight).Column
            If Cells(tit, i).Value = mnt Then j = i
        Next i
    ' tri des écritures
        Cells(tit, 1).Resize(l, Cells(tit, 1).End(xlToRight).Column).Sort _
            Key1:=Cells(tit + 1, c), Order1:=xlAscending, Header:=xlYes, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
        Cells(tit, 1).Subtotal GroupBy:=c, Function:=xlSum, TotalList:=Array(j), _
            Replace:=True, PageBreaks:=False, SummaryBelowData:=True
    End Sub
    


    Il suffit de la copier dans ton classeur de travail, et de rajouter la macro évenementielle
    dans les feuilles correspondantes :

    Private Sub Worksheet_Activate()
         Call cre_feuille(rec)
    End Sub
    


    ou

    Private Sub Worksheet_Activate()
        Call cre_feuille(dep)
    End Sub
    


    Tiens nous au courant du résultat de tes tests
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Andremo
     
    Merci gbinforme,
    j'ai bien reçu le dossier, mais quand je veux l'ouvrir j'ai le message suivant qui s'affiche:"Les macros de ce classeur sont désactivées car le niveau de sécurité est élevé et elles n'ont pas été signées numériquement au moyen d'un certificat approuvé. ........."
    Est un probléme de Config. au niveau de mon PC ??
    Si oui que faire ??
    Je suis absent jusqu'a lundi
    Merci pour toute ton aide.
    A. M.
    0
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    le niveau de sécurité est élevé

    Effectivement pour utiliser les macros, il faut autoriser la procédure.

    Pour cela, faire le menu Outils/macro/sécurité et cocher :

    - soit sécurité moyen : un message s'affiche à l'ouverture pour demander l'autorisation.

    - soit sécurité faible : pas de message mais toutes les macros sont autorisées.

    bon test
    0
    1. Andremo
       
      Merci gbinforme,

      Tu as fait un excellent travail.

      Le progamme foctionne bien.

      Tous mes remerciements.

      A. M.
      0
  8. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Merci, c'est agréable de recevoir un message sympathique !
    0