Rapport d'analyse - aide à la conception

Rapport d'analyse - aide à la conception - VB/VBA/VBS - Programmation

Marsh Posté le 28-10-2014 à 19:07:18    

Bonjour à tous,
 
J'ai une question d'ordre... disons conceptuel.
 
Je vous explique : j'ai pour objectif d'automatiser la mise à jour d'un rapport d'analyse pour certains de mes clients. J'ai une base que je mettrai à jour chaque mois et contenant les données du mois écoulé. Je souhaiterai trouver un moyen, à partir de cette base, de créer X rapports (X étant le nombre de clients à qui j'enverrai ce rapport). Chacun des rapports contiendrait les données brutes du client dans un premier onglet, ainsi qu'une série de 4 ou 5 onglets détaillant certaines données, ou les présentant sous forme de tableaux et graphiques.
 
Ma question concerne la première partie du travail : extraire les données relatives à chacun des clients et les copier dans le rapport dudit client.
C'est là que je bloque : j'imagine qu'une macro permettrait de faire ce travail, mais cela dépasse un peu mes compétences, je pense.
 
Une fois cette étape réussie, je pense être en mesure de gérer la deuxième partie.
 
Je n'ai pas encore de fichier définitif, j'attends d'évaluer si cela est possible et par quel moyen, avant de me lancer dans la conception du rapport final.
 
En terme de proportions : j'ai pour l'instant une quarantaine de rapports à créer, et la base originale tiendra dans un maximum de 10.000 lignes et de 20 colonnes.
 
Merci d'avance pour vos réponses !

Reply

Marsh Posté le 28-10-2014 à 19:07:18   

Reply

Marsh Posté le 28-10-2014 à 20:52:44    

« extraire les données relatives à chacun des clients et les copier dans le rapport dudit client. »
Un filtre et un copier / coller ne prend que quelques secondes !!!


---------------
Cordialement, Patrice
Reply

Marsh Posté le 29-10-2014 à 10:13:32    

Bonjour
 
Effectivement, la manip est rapide à faire à la main. Cela dit, dans le  
cas où mon nombre de  clients augmenterait de manière significative, j'aimerais préparer le terrain...
 
Et sur le principe, ça m'intéresse vraiment de savoir si cela est possible !
 
Merci !

Reply

Marsh Posté le 29-10-2014 à 10:49:19    

Ca s'appelle du publipostage...
C'est beaucoup plus simple à faire avec Access/Word (la base de données sur Access et le publipostage sur Word grâce aux données d'Access)
Jettes un oeil, tu as toutes les possibilités ici:  http://heureuxoli.developpez.com/o [...] age/#LIV-B


Message édité par serialof83 le 29-10-2014 à 10:57:05
Reply

Marsh Posté le 29-10-2014 à 12:11:23    

Bonjour, et merci pour ta réponse.
 
J'aimerais conserver le format Excel pour mon rapport final, afin de pouvoir traiter les données dans un second temps. C'est possible avec du publipostage ?
Merci

Reply

Marsh Posté le 31-10-2014 à 09:27:14    

La BD est du Excel ? Dans tous les cas, macro VBA.
1) récup des clients
2) pour chaque client, récupérer les données qui le concerne sur la période étudiée
3) créer un nouveau fichier excel et y copier les données (objet range() je pense)
4) sauver le fichier créé et le fermer
5) passer au client suivant
 
Entre la 4) et 5), tu pourrais même automatiser l'envoi par mail du rapport au client. Si t'as outlook, là encore, le VBA pourra t'aider. Sinon,  ça pourra être un peu plus compliqué.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 31-10-2014 à 10:31:28    

Hello et merci pour ta réponse.
 
C'était la solution que j'avais en tête. Il me semblait juste un peu compliqué de le mettre en oeuvre mais je vais tenter le coup !
 
Est-ce que c'est possible de copier les données dans un fichier déjà existant ? De manière à pouvoir mettre automatiquement à jour les calculs du rapport final.
 
Malheureusement je n'ai pas Outlook, j'ai la folle chance de travailler sur Lotus... on fera avec !
 
Merci encore.

Reply

Marsh Posté le 31-10-2014 à 10:54:56    

T'as du bol, pour Lotus Note, j'ai un script qui permet de l'utiliser pour envoyer un mail :

Code :
  1. 'On envoie une notification mail : Lotus doit être lancé pour que ça marche !
  2. 'ouvre une session mail Lotus Notes et configure le mail à envoyer
  3. Set oSession = CreateObject("Notes.NotesSession" )
  4. Set oDB = oSession.GetDatabase("", "" )
  5. Call oDB.OpenMail
  6. Set oDoc = oDB.CreateDocument
  7. Call oDoc.ReplaceItemValue("SendTo", "toto@test.fr" ) 'regler ici le nom du destinataire
  8. Call oDoc.ReplaceItemValue("Subject", "Sujet du mail!" )
  9. 'Le corps du mail
  10. Set oRichTextItem = oDoc.CreateRichTextItem("Body" )
  11. sMsg = "Ici, on met le contenu du mail" & vbCrLf & vbCrLf
  12. Call oRichTextItem.AppendText(sMsg)
  13. 'envoi
  14. oDoc.SaveMessageOnSend = True
  15. Call oDoc.Send(False)
  16. Set oSession = Nothing


 
T'auras plus qu'à chercher comment ajouter un fichier joint au mail ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 31-10-2014 à 11:50:17    

Ouah, la classe!
 
Merci de ton aide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed