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 :

Aide sur macro (base de données) [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Par défaut Aide sur macro (base de données)
    Bonsoir,

    En tant que trésorier-comptable d'une association je dois remettre à l'issu de 4 jours de manifestation (fête médiévale) un compte-rendu au commissaire aux comptes. En effet cette manifestation va servir de plus de 1500 à 1800 repas sur les 7 repas servis.

    en plus d'une taverne qui déverse des centaines de litre de boisson.

    L'année dernière j'ai eu bien du mal à établir des comptes.

    Je souhaite anticipé et j'ai essayé de construire un outil d'aide mais je bloque dés que j'arrive à l'enregistrement et au passage au client suivant.

    Pour plus de facilité je vous annexe un lien qui vous propose le fichier que j'ai commencé.

    onglet 1 outil de saisie

    onglet 2 paramétrage

    onglet 3 ce qui devrait servir de base de données.

    Voici le lien du fichier : http://cjoint.com/14au/DHeuz7e4ZjR.htm

    merci PAR AVANCE

    @+++

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pour utiliser Excel comme une BD, il faudra avoir le même réflexes (différence entre champs et enregistrement, clés...etc)

    Si utiliser Access est dans ce cas plus simple (2 tables, un formulaire et un ou plusieurs états)

    Pour ton cas particulier, et pour le travail associatif (non lucratif je pense) je me suis amusé à adapter ton fichier avec en plus un code simpliste (à améliorer)

    Une seule modification est de lier tes boutons option à la cellule M16 (clique droit > Format du contrôle)

    J'ai ajouté une feuille nommée BD avec en colonne les types de consommations (champs) et en lignes les données de chaque client (enregistrements)

    La première ligne de A1 à O1 on a les intitulés: N° Client, Repas Adulte, Repas enfant....Gobelet, Total, Modalité de paiement
    La seconde ligne de B2 à M2 on inscrit les prix unitaires de chaque type de consommation (13, 8, 8...0.5)
    En A2 nécessairement on inscrit "PU" (Cette cellule ne doit pas être vide)

    Je ne sais pas ton niveau vba mais je joins mon code. La procédure "Enregistrer" est affectée au bouton "Client Suivant"
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Option Explicit
     
    Sub Effacer()
     
    Feuil1.Range("G6,G8,G10,G14,G16,G19,G21,G23,G26,G28,G30,G34,L21:M22,M16").ClearContents
    End Sub
     
    Sub Enregistrer()
    Dim Plage As Range, c As Range
    Dim NewLig As Long
    Dim i As Integer
     
    If Feuil1.Range("G36") > 0 Then
        If Feuil1.Range("M16") > 0 Then
            With Feuil4                                   'Worksheets("BD")
                NewLig = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
     
                .Cells(NewLig, 1) = Val(.Cells(NewLig - 1, 1)) + 1
                .Cells(NewLig, 1).Resize(, 15).Borders.LineStyle = xlContinuous
     
                i = 2
                Set Plage = Feuil1.Range("G6,G8,G10,G14,G16,G19,G21,G23,G26,G28,G30,G34")
                For Each c In Plage
                    .Cells(NewLig, i) = c
                    i = i + 1
                Next c
                Set Plage = Nothing
     
                With .Cells(NewLig, 14)
                    .Formula = "=SUMPRODUCT(B2:M2,B" & NewLig & ":M" & NewLig & ")"
                    .Value = .Value
                End With
                .Cells(NewLig, 15) = IIf(Feuil1.Range("M16") = 1, "Chèque", "Espèce")
            End With
     
            MsgBox "Enregistrement effectué"
            Effacer
        Else
            MsgBox "Choisir d'abord le type de paiement"
        End If
    Else
        MsgBox "Aucune donnée à enregistrer"
    End If
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Par défaut
    Bonjour,

    Pour répondre a une de tes interrogations, oui l'association est de type "loi 1901" à non lucrative.

    C'est quasiment la 1ère fois que je "touche" du VBA, mais en revanche je maitrise assez Excel. (sauf que je suis à la maison et à l'association sur du 2003).

    J'ai suivi tes indications à la lettre (création de la feuille "BD" puis collage du code) et cela fonctionne parfaitement et cela correspond à mes attentes !

    Donc je te dit un grand MERCI.

    Je vais essayer de faire, à partir de la feuille "BD", un état comptable sur une nouvelle feuille :

    1) Somme en chèques et somme en espèces (avec particularité pour espèces de mettre dans une cellule le fonds de caisses pour le déduire de la recette espèces)
    2) un total par types de conso.

    Si tu as une idée sur ce besoin, je suis preneur !

    Encore MERCI, Pour ton aide et tes explications claires (heureusement que tu as mis le code car j'étais incapable de le créer)

    @+++

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Du moment que tu as ta base de données, un tableau croisé dynamique fera la suite.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Par défaut
    Bonjour,

    OK est encore MERCI.

    @+++

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

Discussions similaires

  1. aide sur une base de données
    Par midasios dans le forum IHM
    Réponses: 9
    Dernier message: 04/11/2008, 15h56
  2. Aide sur les bases de données
    Par weedox dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 24/10/2008, 14h36
  3. Aide pour corriger bases de données relationnelle sur Access
    Par emirov dans le forum Modélisation
    Réponses: 11
    Dernier message: 03/04/2008, 01h07
  4. Aide sur ma base de donnée sport
    Par solaar dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/10/2007, 16h28

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