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 :

Gestion de comptes bancaires : boucle pour maj de solde quotidien sur date antérieure


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut Gestion de comptes bancaires : boucle pour maj de solde quotidien sur date antérieure
    Bonjour @ tous,

    Je me permets de revenir vous voir après des mois d'absence pour cause d'activité importante alors j'espère que vous ne m'en voudrez pas de revenir uniquement pour un besoin personnel !

    Je vais essayer de faire court même si cela ne va pas être simple ;-)
    J'utilise un fichier excel pour suivre mes comptes au quotidien ou presque.
    Ce fichier ce décompose en 5 feuilles :
    -> Database : ici sont saisies toutes les lignes de crédit ou débit associées à des personnes et comptes bancaires
    -> Stats : ici l'on retrouve le solde quotidien de chaque compte
    -> Graphes : ici quelques graphes concernant le solde quotidien des comptes
    -> TCD : un tableau croisé dynamique qui cumule les dépenses par catégories
    -> Sources : les zones définissant les sources des autres feuilles ;-)

    Mon problème porte sur la feuille Stats.
    En effet, chaque mois, je modifie la date de la cellule en A2, qui me modifie les valeurs de B2:N2 avec les nouveaux solde à la date donnée et ensuite je copie/colle B2:N2 dans une nouvelle ligne du tableau en dessous .
    Vous trouverez dans le fichier joint l'exemple à faire : mettre 01/01/2010 en A2 puis copier B2:N2 pour le coller en B13:N13.
    Etc...

    Je pense que vous imaginez bien la lourdeur de ça et surtout quand vous voulez vous remettre à jour après quelques modifs, et qu'il faut se remplir 200 lignes, c'est pas forcément "marrant".

    Mais je suis sur que des experts ici vont me concocter un petit truc (macro ou autres) afin que ce tableau soit remplie automatiquement par un simple clic ;-)

    J'ai commencé à réfléchir au sujet et je voyais quelque chose comme la date de début en A1, la date de fin en A2 et ensuite une macro qui reproduirait ce schéma :
    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
    Sub TEST()
     
        Range("A2").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "1/1/2010"
        Range("B2:O2").Select
        Selection.Copy
        Range("B13").Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
     
        Range("A2").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "1/2/2010"
        Range("B2:O2").Select
        Selection.Copy
        Range("B14").Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
     
        Range("A2").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "1/3/2010"
        Range("B2:O2").Select
        Selection.Copy
        Range("B15").Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
    ...
    End Sub
    où la date de début serait en A1 et la date de fin en A2 par exemple.


    Je reste à votre disposition pour toutes questions ;-)
    Si vous voyez des choses qui vous choquent dans ce fichier, n'hésitez pas à me le dire ;-)

    Merci d'avance beaucoup beaucoup beaucoup !!!


    P.S. N'hésitez surtout pas à récupérer ce fichier pour vos besoins personnels ;-)
    P.S. Le fichier se trouve ici, j'ai protégé le fichier : pas de nom d'utilisateur et mot de passe : Jeremie

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Bonjour Jeremie,

    J'ai regardé ta feuille Excel rapidement, trop rapidement sans doute puisque je n'ai pas tout compris.

    Quand je tape 01/01/2010 dans la cellule A2, il ne se passe rien sur les cellules B2:N2, il y a donc un risque que la date et les soldes des comptes ne soient pas synchrones de la même date.

    Ensuite tu écris : puis copier B2:N2 pour le coller en B13:N13 alors que dans le code proposé tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("B2:O2").Select
        Selection.Copy
    en prenant en plus la colonne O !
    Nota quand je fais la manipulation j'ai une injure de référence circulaire !

    Je ne comprends pas pourquoi tu dois faire la manipulation 200 fois.

    Merci de tes réponses, bonne journée

    PPz
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par PPz78 Voir le message
    Bonjour Jeremie,
    Bonjour PPz78

    Citation Envoyé par PPz78 Voir le message
    J'ai regardé ta feuille Excel rapidement, trop rapidement sans doute puisque je n'ai pas tout compris.

    Quand je tape 01/01/2010 dans la cellule A2, il ne se passe rien sur les cellules B2:N2, il y a donc un risque que la date et les soldes des comptes ne soient pas synchrones de la même date.
    C'est étrange car quand je change A2 de mon coté, les valeurs de B2:O2 changent bien...(c'est bien O au lieu de N oups :-)). As-tu regardé la formule ?

    Citation Envoyé par PPz78 Voir le message
    Ensuite tu écris : puis copier B2:N2 pour le coller en B13:N13 alors que dans le code proposé tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("B2:O2").Select
        Selection.Copy
    en prenant en plus la colonne O !
    Il faut bien prendre O, oups !

    Citation Envoyé par PPz78 Voir le message
    Je ne comprends pas pourquoi tu dois faire la manipulation 200 fois.
    Car si je le fais "à la main", c'est à dire sans macro, je rentre 01/01/2010 en A2, je copie B2:O2 que je colle en B13:O13, puis je rentre 02/01/2010 en A2, je copie B2:O2 que je colle en B14:O14, etc...

    L'idée serait donc d'avoir une macro qui me fait cette opération d'une date située en A1 à une date située en A2 par exemple.

    Citation Envoyé par PPz78 Voir le message
    Merci de tes réponses, bonne journée

    PPz
    Bonne journée également,
    Jérémie

    P.S. Fichier crée sous Excel97

  4. #4
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,

    Je constate que quand on modifie la date de fin 30/6/2010 en 30/5/2010
    Les cellules depuis la E2==>O2 se modifie bien puisqu'elles contiennent une formule
    Mais les 3 premières B2, C2, D2 ne contiennent que des nombres pas de formules donc pas de recalcul possible.
    Est-ce normal?
    Cordialement.

    RJ

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Bonjour rjamin,

    Non ce n'est pas normal, en préparant le fichier, j'ai du faire un "boulette".
    B2->D2 contiennent normalement la même formule que E2:O2 donc la plage est bien B2:O2.

    Désolé !

    Une idée pour ma problématique ?

    Merci,
    Jérémie

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Re,

    Voilà après étude et essais je vous propose une solution.
    J'ai du changer votre formule en colonne A pour les dates car l'incrémentation se faisait par jour et non par mois.

    J'ai ajouté un bouton qui réalise la copie de la ligne vers le tableau.

    Bonne continuation.
    Le fichier corrigé :
    http://http://www.cijoint.fr/cjlink....cijKXCo8rf.zip
    Cordialement.

    RJ

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Re rjamin,

    Merci pour votre aide.

    Cependant ce n'est pas vraiment ce que j'attendais...

    J'ai du mal exprimer mon besoin...oups...

    En résumé, j'aurai aimé que via une macro, les actions que j'ai indiqué dans le code de mon tout premier message s'exécute.
    Pour essayer de faire simple, vous avez remarqué que lorsque l'on change la date de A2, les valeurs de B2:O2 changent.

    J'aurai donc aimé que à chaque changement de A2, les valeurs de B2:O2 soient copiés/collés en B13:O13 puis B14:15 puis B15:O15...etc

    Il faudrait réaliser ce copier/coller sur une plage de "Date Début" à "Date Fin" où "Date Début" et "Date Fin" pourraient être 2 dates qui se situent dans 2 cellules données.

    L'incrémentation en colonne A doit bien se faire au jour le jour ;-)

    Je reste à votre entière disposition si jamais je me suis encore mal exprimé ;-)

    Merci d'avance.

  8. #8
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    AAAAAAAAAAAAAH bon!
    Il faut s'y mettre alors car ce n'est pas plus simple.
    Désolé je ne l'avais pas compris comme cela.
    Mais s'il n'y a pas des opérations tous les jours que doit-il se passer?
    Cordialement.

    RJ

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    J'aime la difficulté et que vous releviez ainsi ces défis ;-)
    Si il n'y a pas de phys. Ce n'est pas grave les lignes auront les mêmes valeurs.
    Ce tableau est ensuite la sources de la feuilles Graphes.

    Merci merci merci merci merci :-)

  10. #10
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Re,

    Voyez si c'est ce que vous attendez.

    http://www.cijoint.fr/cjlink.php?fil...cijSbjUgnL.zip

    J'ai conservé le bouton pour exécuter la procédure, on garde mieux le contrôle qu'avec un évènement Change

    A+
    Cordialement.

    RJ

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Merci beaucoup rjamin, c'est exactement cela !!!

    Bonne journée,
    Jérémie

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

Discussions similaires

  1. Gestion de comptes bancaires sous C++
    Par abdeljaouad dans le forum C++
    Réponses: 11
    Dernier message: 22/05/2009, 20h34
  2. [MySQL] Gestion de compte (bancaire par exemple)
    Par jmtrivia dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/04/2009, 23h13
  3. [MCD]Gestion de comptes bancaires
    Par Sandriiine dans le forum Schéma
    Réponses: 10
    Dernier message: 22/05/2008, 14h50
  4. Gestion de comptes bancaires
    Par Franck.H dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 02/11/2007, 09h06
  5. [Modèle Relationnel] Gestion de comptes bancaires.
    Par Elmilouse dans le forum Schéma
    Réponses: 3
    Dernier message: 31/08/2004, 16h08

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