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 :

Comment structurer mes données pour faire un suivi budgétaire à partir d'un journal


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2017
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Comment structurer mes données pour faire un suivi budgétaire à partir d'un journal
    Cher forum,

    Vu le succès de mon dernier post, j'en profite pour vous présenter une version simplifiée de mon fichier afin d'avoir vos conseils pour savoir si j'ai bien structuré mes données.

    Je pars d'un journal (de banque) dans lequel pour chaque dépense, on précise une ligne budgétaire. Ensuite je voudrais générer un suivi budgétaire pour connaître la réalisation de chaque ligne. Je donne un exemple simplifié dans le fichier (cf onglet "Budget simple") qui est suffisamment simple pour que tout le monde comprenne j'espère.

    Je pourrais évidemment résoudre ce problème avec des formules, malheureusement le vrai fichier est évidemment beaucoup plus compliqué, et surtout les utilisateurs ont tendances à me faire sauter les formules. Je voudrais donc pouvoir générer mon suivi budgétaire avec un simple bouton.

    Dans la version simplifiée de mon fichier (cf onglet "Budget simple"), vous pourrez voir comment je génère le suivi budgétaire automatiquement (j'imagine qu'il y a beaucoup de lourdeurs dans le code).

    Mais évidemment, dans une version plus compliquée (cf onglet "Budget avancé"), ca devient très lourd : j'aimerais pouvoir générer un suivi budgétaire en fonction du client, de l'année, et pleins d'autres variables.

    Ma question est donc la suivante : quelle solution pour structurer mes tableaux facilement. Je pourrais peut-être générer un TCD automatiquement, et ensuite venir y prendre les informations que je veux (suis-je obligé de créer un onglet avec un TCD ou alors puis-je l'avoir intégré dans mon code VBA).
    J'ai découvert les "dictionnaires" qui me paraissent intéressant dans ce contexte....

    J'espère avoir été assez clair dans mes explications, à défaut de ma demande... Sinon n'hésitez pas à me demander de plus amples explications. J'ai tellement le nez dans le guidon que je n'arrive plus à voir si ma problématique est claire ou pas.

    Bonne journée à tous,

    Soguy
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    tasse ton code le plus possible, l’aérer ne le rend pas lisible au contraire!
    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
    Private Sub Générer_Click()
    Dim t_mJournal As Integer, t_mBudget As Integer, i As Integer, j As Integer
    With ActiveSheet
        t_mJournal = .Range("D3").CurrentRegion.Rows.Count - 1
        ReDim mJournal(t_mJournal - 1)
        For i = 0 To t_mJournal - 1 'Boucle pour remplir montant de ??????
            mJournal(i).code = .Range("D4").Offset(i).Value
            mJournal(i).montant = .Range("E4").Offset(i).Value
        Next i
        t_mBudget = .Range("A3").CurrentRegion.Rows.Count - 1
        ReDim mBudget(t_mBudget - 1)
        For i = 0 To t_mBudget - 1 'Boucle pour remplir montant de ??????
            mBudget(i).code = .Range("A4").Offset(i).Value
            mBudget(i).montant = 0
        Next i
        For i = 0 To UBound(mJournal) 'Boucle pour remplir montant de mBudget
            For j = 0 To UBound(mBudget)
                If mBudget(j).code = mJournal(i).code Or mBudget(j).code = Round(mJournal(i).code / 10, 0) Or mBudget(j).code = Round(mJournal(i).code / 100, 0) Then
                    mBudget(j).montant = mBudget(j).montant + mJournal(i).montant
                End If
            Next j
        Next i
        For i = 0 To UBound(mBudget) ' Boucle pour afficher Budget
            .Range("B4").Offset(i).Value = mBudget(i).montant
        Next i
    End With
    Debug.Print Time
    End Sub

  3. #3
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par Soguy46 Voir le message
    ... et surtout les utilisateurs ont tendances à me faire sauter les formules.
    Pour régler ce problème tu peux protéger tes cellules qui contiennent tes formules :

    1°) Sélectionner toutes les cellules [Ctrl]+[A]
    2°) dans Format de cellule - Protection, tu décoches Verrouillé
    3°) tu sélectionnes les cellules à protéger.
    4°) dans Format de cellule - Protection tu coches Verrouillé
    5°) dans Révision-Protégé, tu protège ta feuilles

    Résultat seules les cellules qui sont cochées sont protégées (donc plus de suppression par inadvertance plus ou moins volontaires)

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2017
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    @dysorthographie : OK, je ferai gaffe à l'avenir à être lisible
    @Igloobel : Oui ça fait partie des solutions parfois. Pour ce cas de figure, j'aimerais vraiment le faire en VBA car les modifications sont aussi trop lourdes pour moi. Chaque fois qu'ils ajoutaient un code budget, j'étais obligé de re-modifier toutes les formules, et notamment les sous.total(9;), avec tous les risques d'erreurs dans la sélection des plages, etc...

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/07/2015, 01h21
  2. Réponses: 2
    Dernier message: 02/03/2010, 12h50
  3. Réponses: 1
    Dernier message: 30/11/2009, 22h50
  4. Réponses: 2
    Dernier message: 09/08/2008, 13h30
  5. [LDAP] comment s'y prendre pour faire une recherche complexe
    Par dervish dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/03/2006, 14h56

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