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 :

Mise à jour de feuilles excel par macro


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut Mise à jour de feuilles excel par macro
    Bonjour,


    Je souhaiterais trouver le moyen de garder une trace des modifications surune colonne de mon fichier excel au cours du temps.

    En gros, j'ai un fichier client contenant mes contacts et je voudrais gérer un historique de ce qui a été fait.
    Pour cela, j'ai tout d'abord pensé créer des liens vers des fichiers word (1 pour chaque client) et y inscrire la date ainsi que l'état d'avancé des échanges, mais l'utilisation en serait trop fastidieuse.

    Ma deuxième idée fut de créer une nouvelle feuille pour chaque semaine pour pouvoir parcourir plus rapidement le document. Le problème dans ce cas est que chaque client n'étant pas toujours contacté aux mêmes intervals, je vais me retrouver avec des cellules vides partout et finalement un document beaucoup plus volumineux qu'utile.


    L'idéal (oui je rève certainement, mais autant commencer par là pour arriver à quelquechose de réaliste) serait donc d'avoir une colonne "historique" dans laquelle je rentrerais ce qui a été fait à la date X, avec un bouton "stocker" qui me permette d'envoyer cette "mise à jour" sur une autre feuille (dans l'idéal ça serait même une autre feuille d'un autre classeur excel appelé "historique") portant le nom du client (par chance je n'ai pas plus d'un 50 aine de clients pour le moment) et listant les différentes actions en fonction des dates dans un tableau à 2 colonnes.

    Ce bouton "stocker" devrait idéalement ne stocker que les nouvelles modifications, et ne rien ajouter si le contenu de la colonne "date" de la feuille "Fichier client" est identique à la derniere cellule de la colonne "date" de la feuille du client.


    Je n'ai pas la sensation d'avoir été clair, alors je joint un fichier excel servant d'exemple.

    Merci d'avance pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre actif Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Points : 212
    Points
    212
    Par défaut
    Hello,

    Je viens de regarder ton fichier, ton idée est assez intéréssante et tout à fait réalisable!
    En fait si j'ai bien compris tu souhaite créer une base de gestion client qui te permettrai d'avoir un historique de ce qui a été fait mais aussi de pouvoir voir ce que tu as à faire à la date du jour!

    Rien de plus simple, n'essaie pas de passer par une gestion trop complexe de tes clients! Ajoute toutes les lignes dans une même feuille, tu triera par la suite via un filtre et cela sera d'autant plus pratique d'avoir tout au même endroit! Le seul hic pourrait être lorsque ta base historique est trop pleine à ce moment la tu devra probablement la vider sur un autre fichier. (A toi de voir si tu souhaite le faire par mois ou par client ou d'une autre maniere)

    Deplus tu pourra ajouter une macro qui via la date du jour, et le filtre de ta feuille Client récupéré tous les clients que tu dois contacter à la date du jour.
    Tu n'aura qu'a modifier ces lignes et au moment de les valider elle s'ajouteront à la suite de ta base client.

    J'espère que cela t'aidera un peu dans tous les cas tu peux compter sur moi si c'est ce que tu recherches, j'ai déjà réaliser une application plus ou moins similaire pour mon ancienne boite!

    Je te souhaite une bonne programmation

    Tchuss
    Drost

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Salut et merci pour ta réponse.


    Si j'ai bien compris, ton idée consisterait à ajouter une nouvelle ligne pour chaque nouvelle action sur un client ?

    Ainsi, si je contact 3 fois la societe 1 dans la semaine, j'aurai 3 lignes similaires excepté pour la date de contact et le contenu de l'entretiens.

    Ensuite pour y voir plus clair j'utilise un filtre automatique sur le nom de la société par exemple et je ressors tout l'historique de ce qui a été fait.


    Cette idée est tentante car c'est assez simple à mettre en place et ça me parait somme toute assez fonctionnel, mais cela me pose un problème malgré tout. En fait, ce fichier client n'en est pas réellement un, il doit aussi servir de recapitulatif de l'activité commerciale et d'aperçu de facturation.

    En fait c'est un document partagé avec les différents responsables administratifs qui devrait leur permettre de savoir en un coup d'oeil (et donc sans que ça soit trop étalé sur plusieurs lignes) ou j'en suis au niveau commercial (car c'est moi qui gère ce coté là) et ou en sont les prestations ,ce qu'il reste à facturer etc... J'ai peur qu'un grand nombre de lignes et la necessité d'appliquer des filtres rende ce document moins accessible.

    De plus, ils sont assez portés sur la paperasse et ressentent souvent le besoin d'imprimer les documents informatique, et de ce point de vue là ... je ne peux pas leur donner un tableau avec plus d'une cinqantaine de lignes et des filtres.


    Je te remercie pour ton idée, et je pense bien que je passerai à ce système des que j'aurai un peu plus de "liberté"

  4. #4
    Membre actif Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Points : 212
    Points
    212
    Par défaut
    Re^^

    Via le fichier que tu as joint, j'ai un peu de mal à voir quel type de récapitulatif de l'activité et de facturation que tu souhaites mettre en place?


    Drost

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Re


    Oui c'est normal j'ai volontairement simplifié le fichier pour que ça ne soit pas trop rébarbatif pour celui qui veut m'aider et essaye de l'ouvrir.

    En gros il y a juste des colonnes en plus qui présentent le nom du projet en cours, la date de fin prévu, l'état de la facturation, etc. ..

    Le fichier récapitulatif doit donc impérativement présenter une seule et unique ligne par client.

  6. #6
    Membre actif Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Points : 212
    Points
    212
    Par défaut
    Peut etre peut tu faire cela sur une autre feuille du fichier qui recupera en fonction d'un critére choisi ( nom du projet ou client) les infos de la derniere ligne et mettra en forme toutes les informations necessaires sur une feuille que tes supérieures pourront imprimer?

    Tu n'aura qu'a partir des dernieres et remonter jusqu'a la premiere trouver qui sera donc la plus recente!

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    C'est exactement ce que j'étais en train de me dire :p

    Je vais tenter un bidouillage à l'aide de la fonction RECHERCHEV ,on verra bien ce que ça donne.


    Je te tiens au courant ... mais pas forcément aujourd'hui, merci !

  8. #8
    Membre actif Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Points : 212
    Points
    212
    Par défaut
    As ta place j'éviterai une formule recherchev parce que tu saura obliger de la faire sur l'ensemble de tes lignes, cela risque de ramer et de nne pas forcement recuperer la derniere version...

    une macro saurait plus rapide et plus sur^^ mais ca c'est à toi de voir!

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Bonjour,


    Après plusieurs tentatives je ne parviens pas à faire ce que je veux.


    Je pense donc, si tu peux toujours m'aider à le faire, passer par un système de macro qui me permettra de "stocker" me données dans une seule feuille.

    En gros je souhaite avoir un fichier client avec une feuille "En cours" sur laquelle je modifierai les données au cours du temps, avec un bouton qui permettra d'envoyer les lignes modifiées dans la feuillle historique, les une à la suite des autres avec pour seul critère de ne pas faire de doublon. J'utiliserai ensuite un filtre automatique pour faire apparaitre l'historique par client.


    Le recapitulatif total comprennant la facturation et les autres info sera fait sur un autre classeur et en prennant des données dans d'autres feuilles, mais je mettrai ça en place lorsque le fichier client sera opérationnel.


    Je joins un exemple de fichier client tel que je souhaiterais l'utiliser.


    Pour le code .. j'ai de grosses lacunes en VBA étant donné que je n'ai essayé d'y toucher que depuis quelques jours, et je n'arrive pas à tester la présence de ma ligne dans une feuille. voici le code que j'utilise pour copier une ligne en fin de tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub stocker()
     
        Sheets("En cours").Select
        Range("A2:K2").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Historique.").Select
        [A65536].Select
        Selection.End(xlUp)(2).Select
        ActiveSheet.Paste
     
    End Sub
    Le problème c'est qu'il me colle la ligne quoi qu'il arrive, je voudrais rajouter un bout de code disant "si la ligne sélectionnée n'est pas présente dans la feuille "Historique.", alors ActiveSheet.Paste

    Deuxième problème je me vois mal créer un "paragraphe" de code pour chaque ligne. N'existe t'il pas un moyen de réaliser la même action ligne par ligne dans une plage donnée ?

    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre régulier Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 77
    Points
    77
    Par défaut
    Bonjour,


    ta requete n'a pas l'air compliquée.
    a mon avi le meilleur moyen est d'avoir un fichier '"historique" avec comme onglet le nom de tes clients.
    quand tu décides de mettre a jour l'historique, ta macro ouvre le fichier "historique" selectionne l'onglet correspondant au client, selectionne la derniere ligne remplie, et ajoute la date et la modif que tu as fait.

    Si ce que je te propose te plait, tu me dis

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Salut, merci pour ta réponse


    En fait oui c'est tout à fait ce que je recherche ,mais ça ne me semble pas si simple à réaliser que ça (encor une fois je suis bidon en VBA donc mon avis ne vaut pas grand chose ^^)

    La ou ça pourrait coincer c'est dans la gestion des onglets de l'historique,puisqu'à l'heure actuelle je ne connais pas le nom de tous mes clients étant donné que je suis en prospection permanente.

    J'imagine que le plus simple serait un système permettant de "ranger" les données dans les onglets correspondant au nom de la societe indiqué dans la première colonne du tableau du fichier client (feuille "En cours").

    Je créerai donc moi même chaque nouvel onglet correspondant à un nouveau client en prennant soin de mettre un nom identique à celui du tableau fichier client.


    Si tu te sens capable de coder ce genre de chose ... ça m'intéresse fortement


    J'attend de tes nouvelles

  12. #12
    Membre régulier Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 77
    Points
    77
    Par défaut
    tu débutes en VBA c'est normal que tu ai un peu de mal, j'ai commencer a programmer VBA il y a un peu plus d'un mois, je te dis pas le nombre de discussion que j'ai ouvert... Maintenant je t'aide

    J'ai juste une question, sur ta feuille, as tu un endroit bien précis ou il y a le nom de ton client?
    comment récuperes tu la modification?

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Oui il y a un endroit pour récupérer le nom du client, si tu regarde sur le fichier que j'ai joint sur l'un de mes posts précédents (fichier client 2008.xls), sur la feuille nommée "En cours" il y a dans les 2 premières colonnes du tableau la nom de la société et son code.

    Le plus simple serait de gérer ça par code, nos codes clients sont à 3 lettres et les onglets seraient donc plus lisibles que si je met des noms de client à rallonge.

    Je ne suis pas sûr de comprendre ta 2 eme question par contre

  14. #14
    Membre régulier Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 77
    Points
    77
    Par défaut
    si tu mets a jour ton historique c'est que tu as fait une modification de ton fichier "en cours".
    Et cette fameuse modification tu la sauvegardes? si oui ou et comment?

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    En fait c'est l'historique qui sert à sauvegarder les modifications.

    Le fichier en cours me donne un aperçu de ce que j'ai à faire avec chacun de mes clients, et l'historique comprend chacune des modifications qui ont été faites de manière à ce que je puisse me faire un rappel des échanges avec un client lorsque je ne l'ai pas contacté depuis longtemps.

    Donc si j'ai bien compris ta question, l'historique devrait se met à jour directement depuis la feuille "En cours".

    Je rajoute juste un truc qui m'a semblé pouvoir répondre à la question : les modifications je les fait directement sur le fichier "en cours", je change la date et le commentaire correspondant, puis je lance ma amcro qui ouvrira l'historique, verifiera la présence (ou non) de chacune des lignes de mon fichier "En cours", puis implémentera les lignes qui ne sont pas encore présentes dans l'historique.


    J'espère ne pas être tombé à coté ...

  16. #16
    Membre régulier Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 77
    Points
    77
    Par défaut
    tu nous avais dit que dans ton fichier "historique", tu avais 2 colonnes, date et modification.
    Comment completes tu la colonne "modification"? userform? a la main? le contenu de ce que tu mets vient il d'une cellule du fichier "En cours"?

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Quel boulet ...

    Depuis hier je m'acharne à réactualiser la page sans comprendre pourquoi je n'ai pas de réponse alors que le sujet a juste pris un page de plus ...

    Bref !

    Toutes les données qui sont entrées dans mon fichier le sont à titre d'exemple, j'ai en effet tout récupéré manuellement pour donner un aperçu du résultat final souhaité.

    Pour ce qui est des 2 colonnes, j'ai un peu changé les choses depuis mais là n'est pas le problème, car je suppose que si on peut récupérr 2 colonne il sera facile d'en prendre 3.

    Au niveau du code je bloque toujours sur la partie me permettant de "tester" si ma ligne (complète et pas seulement une cellule) existe ou pas dans la feuille ou je désire la coller.

    En gros voici ce que je souhaterai (avec a gauche le code que j'ai essayé et qui ne marche pas et a droite ce que je voudrais coder):

    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
    Dim u           ' pour une variable u (j'ignore quel As il faut utiliser alors je n'en ai pas mis)
    Dim MaLigne             ' Pour une variable Maligne
    Dim n
    Dim MonAutreLigne
     
    For u = 1 To 1000          ' pour tous les u de 1 à 1000
     
    MaLigne = "B" & u      ' Pour une cellule B + le chiffre 1 à 1000 variable (B1, B2, B3, ...., Bn)
     
    For Each MaLigne In Sheets("En cours").Range("A1:A1000")   ' Pour chaque Ligne de ma feuille En cours entre 1 et 1000
     
    ActiveCell.EntireRows.Select   ' Selectionne la ligne complète
     
    Sheets ("Historique.").Select         ' Se positionner sur la feuille Historique. 
     
    For n = 1 To 50    ' Pour tous les n de 1 à 50
     
    MonAutreLigne = "b" & n      ' Pour une cellule B + Le chiffre variable n
     
    If MaLigne = MonAutreLigne       ' Si ma ligne existe déjà sur une ligne de la feuille Historique.
     
    Sheets("En cours").Range("B" & n).Select  
        ActiveCell.EntireRow.Select            ' Selectionne la ligne complete de la cellule B testée sur la feuille "En cours"
     
    Application.CutCopyMode = False
        Selection.Copy
        Sheets("Historique.").Select
        [A65536].Select
        Selection.End(xlUp)(2).Select
        ActiveSheet.Paste
     
    End If
    Next
    Next
     
    End Sub
    Le reste je le commente pas, je pense que les lecteurs comprendront tout seul vu que j'ai réussi à le faire ^^.

    Je sais que je m'embrouille avec les For et les Next ainsi qu'avec les déclaraions de variables, mais aucune de mes recherches n'a abouti .

    J'espère que ce code pourra etre mis au propre.

  18. #18
    Membre régulier Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 77
    Points
    77
    Par défaut
    pas compris!
    tu remplis manuellement ton fichier historique?

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Pour le moment oui, et le but est que j'arrive à créer une macro me permettant d'automatiser le tout.

  20. #20
    Membre régulier Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 77
    Points
    77
    Par défaut
    Et si on remplissait ta colonne "modification" par un userform?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2013] Suppression d' image sur feuille excel par macro
    Par GROBIN dans le forum Excel
    Réponses: 3
    Dernier message: 16/11/2013, 23h07
  2. [Toutes versions] Impression d'une feuille Excel par macro --> Ne pas utiliser l'imprimante par défaut
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/05/2012, 13h41
  3. mise à jour automatique tableau excel par macro
    Par fredo49 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/04/2011, 11h37
  4. Dupliquer une feuille excel par macro
    Par eleve36 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/02/2007, 23h01
  5. mise en page feuille excel par transfert d'Access
    Par pascal913 dans le forum Access
    Réponses: 6
    Dernier message: 12/07/2006, 14h31

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