solde d'un compte avec ms query

Forum consacré aux développements d'applications interfacées avec les logiciels Sage

Modérateurs: Super Modérateur, Modérateurs

Règles du forum
Merci de prendre connaissance des règles d'utilisation du forum

Avant de poster un nouveau message, utilisez la fonction RECHERCHER. Indiquez la VERSION de votre logiciel et toutes informations utiles à la résolution de votre question. Ne rédigez pas vos messages en MAJUSCULES. Soyez courtois et pensez aux formules de POLITESSE d'usage. Les messages à vocation COMMERCIALE ou PUBLICITAIRE seront supprimés.

*** LORSQU'UN SUJET EST RESOLU, SON AUTEUR DOIT EDITER LE 1ER MESSAGE DU SUJET EN HAUT DE PAGE ET COCHER "SUJET RESOLU" ***

solde d'un compte avec ms query

Messagede alphabeta » Mar 26 FĂ©v 2008 19:22

Bonjour,

J'aimerai qu'une ame charitable m'aide pour avoir le solde d'un compte dans excel.
Je peux ramener pas mal d'info avec msquery, mais je n'arrive pas à avoir le solde d'un compte si ce n'est en "bidouillant" de façon non satisfaisante.

Sage compta ligne 100 / V14 + drivers ODBC.

Merci d'avance
alphabeta
Posteur habitué
Posteur habitué
 
Messages: 26
Inscription: Ven 25 Nov 2005 11:45

Messagede Michel » Dim 9 Mar 2008 10:46

Bonjour,
je travaille sous Sage 100 gest co et compta version 10 base propriétaire.
Ci dessous le code qui me permet d'importer une balance générale sous excel avec les totaux debit crédit et les soldes.

Cela répondra peut être à votre question.

il faut d'abord:
-créer un dsn à partir du pilote sage gestion commerciale (ici "BASEGESTCO")
-référencer l'activeX microsoft ADO version ..., dans le fichier excel,
-Déclarer les fonctions TotalMvtSolde, ....
comme suit
Code: Tout sélectionner
Option Explicit
Declare Function TotalMvtSolde Lib "CBODBC32" (ByVal CG_Num As String, ByVal CT_Num As String, ByVal JO_Num As String, ByVal Debut As String, ByVal Fin As String, cumul As Double) As Integer
Declare Function TotalMvtDebit Lib "CBODBC32" (ByVal CG_Num As String, ByVal CT_Num As String, ByVal JO_Num As String, ByVal Debut As String, ByVal Fin As String, cumul As Double) As Integer
Declare Function TotalMvtCredit Lib "CBODBC32" (ByVal CG_Num As String, ByVal CT_Num As String, ByVal JO_Num As String, ByVal Debut As String, ByVal Fin As String, cumul As Double) As Integer

et ensuite travailler sur une liaison ADODB pour extraire les données recherchées,

Code: Tout sélectionner
Sub ImporterBalance(Debut As String, Fin As String)
Dim BASE As New ADODB.Connection
Dim RST_CG As New ADODB.Recordset
Dim RSQL As String
Dim i As Long
Dim Code As Integer
Dim TotalDebit As Double, TotalCredit As Double, solde As Double

BASE.Open "Dsn=BASEGESTCO;Uid=xxx"
RSQL = "SELECT * FROM F_COMPTEG"
RST_CG.Open RSQL, BASE, adOpenForwardOnly, adLockOptimistic
If RST_CG.BOF And RST_CG.EOF Then GoTo Fin
i = 0

Do Until RST_CG.EOF
    Code = TotalMvtDebit(RST_CG("CG_NUM"), "", "", Debut, Fin, TotalDebit)
    Code = TotalMvtCredit(RST_CG("CG_NUM"), "", "", Debut, Fin, TotalCredit)
    If Not (TotalDebit = 0 And TotalCredit = 0) Then
        ActiveCell.Offset(1, 0).Select
        ActiveCell.Offset(0, 0) = RST_CG("CG_NUM")
        ActiveCell.Offset(0, 1) = RST_CG("CG_INTITULE")
        ActiveCell.Offset(0, 2) = TotalDebit
        ActiveCell.Offset(0, 3) = TotalCredit
        Code = TotalMvtSolde(RST_CG("CG_NUM"), "", "", Debut, Fin, solde)
        If solde > 0 Then
            ActiveCell.Offset(0, 4) = solde
        Else
            ActiveCell.Offset(0, 5) = -solde
        End If
        i = i + 1
    End If
    RST_CG.MoveNext
Loop

Fin:
RST_CG.Close
BASE.Close
End Sub

A+
Michel
Posteur néophyte
Posteur néophyte
 
Messages: 7
Inscription: Mer 13 Avr 2005 21:14

Messagede alphabeta » Ven 14 Mar 2008 22:13

Bonsoir,

Merci beaucoup pour cette routine.

Initialement ce n'était pas ce que je recherchais, mais effectivement, je devrais arriver au même résultat.

Je teste.

Encore Merci
alphabeta
Posteur habitué
Posteur habitué
 
Messages: 26
Inscription: Ven 25 Nov 2005 11:45

Re: solde d'un compte avec ms query

Messagede tibofo » Mer 18 Mai 2011 14:52

Bonjour,
J'essaye de reproduire ce code sous Excel 2007 (je ne suis pas un spécialiste du vba sous Excel).
Impossilble de le faire fonctionner. En fait je ne peux pas mémoriser la macro sur un bouton et qd je l'exècute, j'obtiens "argument non facultatif"

Bien sûr ma DSN existe sous le même nom (pointe sur bijou - odbc Sage 16.02).

Est-ce que quelqu'un aurait la gentillesse de me fournir le mĂŞme exemple dans un fichier Excel. Je me demande si, par mauvaise connaissance du vba sous Excel, si je n'oublie pas qq chose ??

Merci si qq peut m'aider
Thibault
tibofo
Contributeur
Contributeur
 
Messages: 83
Inscription: Mar 13 Sep 2005 18:05

Re: solde d'un compte avec ms query

Messagede Michel » Jeu 19 Mai 2011 21:40

Bonjour,

voilĂ  la marche Ă  suivre pour tester le code.

Ouvrir un classeur excel 2007, puis l'éditeur visual basic à partir du menu Developpeur.
Inserer un module et y coller le code suivant :

Code: Tout sélectionner
'***************************************************************************************************************************************
Option Explicit
Declare Function TotalMvtSolde Lib "CBODBC32" (ByVal CG_Num As String, ByVal CT_Num As String, ByVal JO_Num As String, ByVal Debut As String, ByVal Fin As String, cumul As Double) As Integer
Declare Function TotalMvtDebit Lib "CBODBC32" (ByVal CG_Num As String, ByVal CT_Num As String, ByVal JO_Num As String, ByVal Debut As String, ByVal Fin As String, cumul As Double) As Integer
Declare Function TotalMvtCredit Lib "CBODBC32" (ByVal CG_Num As String, ByVal CT_Num As String, ByVal JO_Num As String, ByVal Debut As String, ByVal Fin As String, cumul As Double) As Integer

Sub ImporterBalance(Debut As String, Fin As String)
Dim BASE As New ADODB.Connection
Dim RST_CG As New ADODB.Recordset
Dim RSQL As String
Dim i As Long
Dim Code As Integer
Dim TotalDebit As Double, TotalCredit As Double, solde As Double

BASE.Open "Dsn=BIJOUGC;Uid="
RSQL = "SELECT * FROM F_COMPTEG"
RST_CG.Open RSQL, BASE, adOpenForwardOnly, adLockOptimistic
If RST_CG.BOF And RST_CG.EOF Then GoTo Fin
i = 0

Do Until RST_CG.EOF
Code = TotalMvtDebit(RST_CG("CG_NUM"), "", "", Debut, Fin, TotalDebit)
Code = TotalMvtCredit(RST_CG("CG_NUM"), "", "", Debut, Fin, TotalCredit)
If Not (TotalDebit = 0 And TotalCredit = 0) Then
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(0, 0) = RST_CG("CG_NUM")
ActiveCell.Offset(0, 1) = RST_CG("CG_INTITULE")
ActiveCell.Offset(0, 2) = TotalDebit
ActiveCell.Offset(0, 3) = TotalCredit
Code = TotalMvtSolde(RST_CG("CG_NUM"), "", "", Debut, Fin, solde)
If solde > 0 Then
ActiveCell.Offset(0, 4) = solde
Else
ActiveCell.Offset(0, 5) = -solde
End If
i = i + 1
End If
RST_CG.MoveNext
Loop

Fin:
RST_CG.Close
BASE.Close
End Sub

Sub test()
ImporterBalance "010409", "310310"
End Sub
'**************************************************************************************************************************************

S'assurer que la ligne BASE.Open "Dsn=BIJOUGC;Uid=" pointe bien sur une dsn definie.

Placer ensuite le curseur a l'interieur de la procedure sub Test() et appuyer sur F5.
La balance générale 4 colonnes se copie dans la feuille active du classeur.

J'ai testé ce code avec Excel 2007 et Sage Ligne100 V16.05 base propriétaire et ça Marche!!!

Bon Courage

Michel
Michel
Posteur néophyte
Posteur néophyte
 
Messages: 7
Inscription: Mer 13 Avr 2005 21:14

Re: solde d'un compte avec ms query

Messagede tibofo » Mer 25 Mai 2011 19:48

Merci Michel
ça marche nickel
tibofo
Contributeur
Contributeur
 
Messages: 83
Inscription: Mar 13 Sep 2005 18:05


Retourner vers Développements ODBC, Objets métiers, SQL

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités