Résoudre des problèmes complexes à l’aide la programmation informatique

Dans notre quotidien professionnel, nous devons fréquemment réaliser des tâches répétitives avec des desseins plus ou moins complexes. Par exemple, dans le cadre d’un reporting mensuel, collecter les balances d’un groupe de sociétés, les ouvrir, les mettre en forme pour enfin les analyser. Prises isolément, ces tâches ne prennent pas beaucoup de temps mais répétées, elles sont non seulement chronophages mais également sans aucune valeur ajoutée. L’automatisation de ces tâches sera utilement mise en œuvre afin de focaliser le maximum de temps homme sur la phase d’analyse de données, de loin la plus valorisante.

Sub AfficheMatrice()
  Dim détenteur As Integer
  Dim détenu As Integer
 
  classeurAppli.Sheets.Add after:=Worksheets(Worksheets.Count)
  With classeurAppli.Sheets(classeurAppli.Sheets.Count)
    .Cells(1, 1).Value = "Matrice I-M"
    For détenteur = 1 To NbEntités
      For détenu = 1 To NbEntités
        If détenteur = 1 Then
          .Cells(1, détenu + 1).Value = Entités(détenu)
          .Cells(3 + NbEntités, détenu + 1).Value = Entités(détenu)
        End If
        If détenu = 1 Then
          .Cells(détenteur + 1, 1).Value = Entités(détenteur)
          .Cells(détenteur + NbEntités + 3, 1).Value = Entités(détenteur)
        End If
        .Cells(détenteur + 1, détenu + 1).Value = MatriceImoinsDétentions(détenteur, détenu)
      Next détenu
    Next détenteur
    .Cells(3 + NbEntités, 1).Value = "Matrice (I-M)^-1"
    .Range("B" & 4 + NbEntités & ":" & Chr(64 + NbEntités + 1) & NbEntités * 2 + 3).FormulaArray = "=minverse(B2:" & Chr(64 + NbEntités + 1) & NbEntités + 1 & ")"
    'FormulaArray équivaut à Ctrl+Maj+Entrée
    For détenu = 2 To NbEntités
      PourcentagesIntérêt(détenu) = Cells(4 + NbEntités, détenu + 1)
    Next détenu
  End With
End Sub

Continue reading ‘Résoudre des problèmes complexes à l’aide la programmation informatique’ »

Comptes consolidés des sociétés commerciales en norme française (Règlement CRC 99-02)

Les sociétés commerciales soumises à l’obligation d’établir des comptes consolidés en norme française utilisent le référentiel du Règlement CRC 99-02. Ce dernier est toujours en vigueur. La refonte du PCG et l’abrogation du Règlement CRC 99-03 sont sans effet sur la réglementation sur les comptes consolidés.

Logo ANC
Continue reading ‘Comptes consolidés des sociétés commerciales en norme française (Règlement CRC 99-02)’ »

L’ANC met à jour son recueil des normes comptables (PCG)

L’ANC a publié la mise à jour au 1er janvier 2018 du Recueil des normes comptables françaises sur son site. Ce recueil intègre notamment le Règlement ANC 2014-03 relatif au Plan comptable général (PCG). Le PCG se compose désormais de 5 livres, contre 4 dans sa version précédente. Le nouveau livre V correspond à l’intégration des règlements de l’ANC constituant une adaptation du PCG à des secteurs d’activité soumis à des contraintes réglementaires particulières, tels que notamment le secteur du logement social (ANC, règlt 2015-04) et les organismes de gestion collective des droits d’auteurs et droits voisins (ANC, règlt 2017-07).

Logo ANC

La version du recueil au 1er janvier 2018 inclut ainsi les éléments de niveau infra-réglementaire concernant :

Continue reading ‘L’ANC met à jour son recueil des normes comptables (PCG)’ »

Fonction Excel DATEDIF (fonction cachée) : Calculer le nombre de jours, mois ou années entre deux dates

Excel dispose d’une fonction cachée pour calculer le nombre de jours, mois ou années entre deux dates.

Syntaxe : DATEDIF(date_début;date_fin;unité)

date_début : date représentant la première date, ou date de début, de la période. Les dates doivent être entrées sous forme de chaînes de texte placées entre guillemets (par exemple, « 30/01/2001 »), comme numéros de série (par exemple, 36921, qui représente le 30 janvier 2001, si vous utilisez le calendrier depuis 1900) ou sous forme de résultat d’autres formules ou fonctions (par exemple, DATEVAL(“30/01/2001”)).

date_fin : date représentant la dernière date, ou date de fin, de la période.

Remarque : si date_début est postérieure à date_fin, le résultat sera #NOMBRE!.

Continue reading ‘Fonction Excel DATEDIF (fonction cachée) : Calculer le nombre de jours, mois ou années entre deux dates’ »

SGBDR ACCESS : Programmer des requêtes SQL dans des macros VBA

Les requêtes SQL remplissent de nombreuses tâches concourant à l’analyse de données. Ces requêtes peuvent être utilement programmées en VBA. Cette pratique permet à la fois d’automatiser l’exécution successive de plusieurs requêtes et de modifier les requêtes à la volée pour les adapter en fonction des circonstances précises (dates, comptes, entités…).

'Mouvements sur comptes cessions immo
NomReq = "MvtCessImmo"
TexteReq = "SELECT * FROM " & NomTableEcritures & " WHERE LEFT(Compte,3)='675' OR LEFT(Compte,3)='775' ORDER BY Affaire, DateEcriture"
ExéReq

Dans le cadre d’un projet d’analyse d’écritures comptables (mise en œuvre d’un programme de supervision des comptabilités d’un groupe de sociétés), je suis en train de réfléchir à la définition de traitements automatisés à l’aide d’ Access en remplacement d’Excel (ce projet reprend les grandes lignes du programme d’analyse d’écritures M/ATAC programmé en VBA sur Excel). En effet, le volume d’écritures comptables du groupe dépasse allègrement le million de lignes (limite actuelle d’Excel) pour atteindre environ cinq millions de lignes annuelles. Access apparaît donc comme une solution plus adaptée pour traiter de tels volumes de données (sa limite étant pour sa part de 2 Gigaoctets par base de données).

Continue reading ‘SGBDR ACCESS : Programmer des requêtes SQL dans des macros VBA’ »