De Justin Pham
Chez Alliance Automation
Projet 1 : calendrier
p.6 : Présentation du sujet : VBA sur Excel
p.7 : Intérêt du sujet pour l’entreprise
p.8 : Travaux réalisés
2
Présentation
Alliance Automation
Cette société a été créée en 1992. A l’époque, elle se composa d’une petite
équipe d’informaticiens, spécialisés dans différents domaines. Mais à cause de la
crise informatique vers l’an 2000, les licenciements furent nécessaires. Aujourd’hui,
seul le chef de l’entreprise compose la société. Cela n’a pas que des inconvénients.
Depuis, M. Jean Hunter a installé ses bureaux dans son domicile. Ce qui est très
pratique au niveau du déplacement et de leurs coûts. Sans compter, l’agrément de
travailler chez soi. Inconvénient, il faut bien gérer le temps de travail.
3
Activité industrielle
4
Activité informatique
ALLIANCE Automation est au service des entreprises pour les aider à administrer
et à pérenniser leurs investissements informatiques.
Etude et réalisation de réseau informatique multi plate-forme,
Interconnexion de sites pour utilisation de liaisons réseaux à distance
Administration de serveur et système Windows NT™,
Réalisation de logiciels spécifiques,
Fourniture et installation de PC à usage professionnel
Fourniture et installation de Médiathèque
5
Présentation du 1er sujet :
Calendrier
VBA sur Excel
FLASH Intérim est une société d’intérimaires. Elle se situe sur Bordeaux
centre. Elle constitue pour Alliance Automation un client très important (près de
10%). Le principal travail est la maintenance du système informatique qui repose sur
Cet agenda de « tâches à effectuer » avec référencement sera lié avec les
fichiers GEC. La gérante de cette société, Annie Demay, a besoin d’un nouveau
système de calendrier sur Excel, l’ancien étant insuffisant. Ce calendrier doit pouvoir
gérer les différents événements (rdv, facture, etc.…) de manières simples. Les
évènements sont remplis par l’utilisateur dans la feuille « Criteres » et un code index
évènements peuvent être choisis grâce à une Combo box. C’est simple d’utilisation.
De plus, chaque événement pourra être détaillé dans une feuille Word en y
6
Intérêt du 1er sujet
Pour l’entreprise
Pour Alliance Automation, cette demande fait partie des projets courants. Le
devis représentera à peine plus d’une dizaine d’heures. Etant donné les bonnes
Hunter, le travail m’a été confié sans trop d’impératif de délai. Cela m’a permis
d’évaluer le temps que j’y passe par rapport au temps facturable et constitue une
7
Travaux réalisés
Un classeur utilisateur
Avec cette structure, les données de l’utilisateur ne sont pas dans le même
fichier que le code, ainsi, il est aisé de changer le code sans pour autant touché aux
données.
seulement le classeur « code » pour tous les utilisateurs pour mettre à jour cette
apllication.
La toute première demande du client était de rajouter des boutons pour ouvrir
les sélections (combo Box) et la page Word (ou Excel). L’idée est de créer une barre
de menu, que nous avons décidé de positionner à droite de la feuille Excel, avec les
différents boutons créés par cette occasion. Ce module est appelé à l’ouverture
d’Excel :
8
Call Application.Run("CodeVBA.xls!Cree_Barre_Menu", Ls_NomBarre)
Les images utilisées pour les boutons sont dans une feuille « systeme » qui est
Pour chaque bouton ainsi créé, on affecte une macro. Une pour ouvrir la
à « Décembre » :
• AAListeItemClick
• AAAppelListeCriteresNoms
• AAWorksheetSelectionChange
sélectionnée à la cellule.
s’exécute que si la cellule sélectionnée fait partie des bonnes colonnes, soit les
colonnes « nom » ou soit les colonnes « criteres ». Ainsi, selon la colonne, la liste est
différente. Cette liste est remplie par l’utilisateur dans les feuilles « noms » et
« criteres ».
9
La fonction suivante utilise est utilisée dans les feuilles « Criteres » et
« Nom » :
l’indicateur est sur « faux » c'est-à-dire pas trié. Quand on rajoute un item dans la
liste, l’indicateur change en « faux » et le code index est calculé. Le tri n’a lieu que si
c’est nécessaire. Le tri de la liste est déclenché par la Combo box qui utilise cette
AADisque :
10
• AAFileExist(StaFichier) As Integer : fait un test pour vérifier si le fichier
passé en paramètre existe
AAExcel :
AALIste :
11
• AARemplissageListe(StaFeuille As String, StaListe As String,
StaFeuilItem As String) : cherche les données pour remplir la Combo Box
AAOutils :
Barre_Menu :
Principal :
12
Présentation du sujet :
Automatisation de la réception des mails
VBA sur Outlook
les données (mail, tache, calendrier, contacts) dans un seul fichier .pst. Quand la
quantité de mail est très important (souvent le cas pour une société), ce fichier .pst
est si important que des ralentissements non négligeables ont lieu, ne serait ce que
pour chercher un mail. Le principe pour y remédier est de décomposer le fichier .pst
en plusieurs morceaux. Pour se faire, les mails seront sauvegardés à part sous la
forme de fichier .msg avec référant dans un système GED. Puis, ces mails sont
13
Intérêt du 2ième sujet
Pour l’entreprise
aussi alors un gain de temps. D’autre part, ce système de rapatriement des mails
sera utilisé dans le GED, option demandée par plusieurs clients. L’automatisation de
la réception des mails est parfaitement dans le cadre logiciel de cette société.
Travaux réalisés
mail a un index attribué automatiquement par Outlook. On utilise cette index pour le
sélectionner. Puis, on sauvegarde le mail avec les critères voulus en .msg dans le
répertoire désiré. Et, on supprime le mail d’Outlook. Une boucle assure que tous les
14
2.1. Modules pour Outlook
AADisque :
AAOutil :
• AAReplaceString(ByVal sTarget As String, sSearch As String, sNew As
String) As String : change des éléments d’une chaîne de caractères
AATakeMail :
15
Archivage_Message, Divers et Gest_DirBox ne pas utilisé pour le projet. Ce
sont des modules de test. Le programme n’est pas encore finalisé, mais les outils
(briques) sont à évalués.
expérimentés.
Des clients sont venus pour trouver une solution pour un accès à distance de
Automation est l’utilisation d’un Virtual Private Network (VPN). L’explication donnée
Après, remonter le tout. Et enfin, les tests de bon fondtionnement. Cela m’a permis
de comprendre que les micro-contrôleurs étaient en fait des petites ordinateurs avec
un programme spécialisé.
16
Planning du stage
Mai
23: récupération du four chez Fast American Pizza pour rénovation + visite des
25: VBA Excel + repas avec client + mise en place d’un serveur connexion à distance
avec client
30: VBA Excel : listfillrange + bouton dans le menu + récupération des données à
PC) + problème de disque dur non reconnu par Windows mais seulement par le bios,
Juin
1: raccourci Excel + VBA Excel : sélection cellule
17
2: VBA Excel : tri liste + date (calendrier) + repas avec client (Flash Intérim)
15: VBA Excel + 2ème four à pizza pour Fast American Pizza
17: VBA Excel + repas avec client (Flash Intérim) + Flash Intérim : maintenance
20: Début du projet 2 : importation des message de gmail vers Outlook express
23: VBA Outlook : item, problème sur chaîne de caractères, folderpath, numérotation
nom/sujet/date
AASynchroCourrier32
18
29: mise à jour Outlook pour sauvegarde + suppression mail
Juillet
1: VBA Excel: protection du code source avec mot de passe + ramener et
4: rapport de stage, Courrier, repas, chercher unité centrale chez Flash Intérim
5: rapport de stage, quelques bugs dans Calendrier + Word : RFP avec « Insert »
19
Planification des travaux
restants à réaliser
automatiser le tout sans ouvrir Outlook. Après cela, je travaillerai sur un logiciel
20
Intérêt du stage
Ce que j’appelle « propre » est la structure du code source. Je n’ai utilisé que
le VBA mais je pense que cela s’applique aussi pour d’autres langages. La
déclaration des variables est la base d’un programme. Décomposer son code en
plusieurs fonctions ou procédures est la clef d’un code simple et lisible. De plus, les
fonctions ainsi faites peuvent être réutilisé dans d’autres programme en changeant,
par exemple, les paramètres. C’est ce que l’on appelle ici « construire une maison
avec des briques ». Une règle à mémoriser en automatisation ou en programmation
serai : décomposer un problème compliqué en problèmes simples.
21
Lors de mon stage, j’ai assisté à plusieurs repas avec soit des clients soit des
amis de mon maître de stage. Ce fut extrêmement instructif du point de vue de la
carrière que j’envisageai. Cette tache est donnée, de plus en plus, aux autres pays
comme l’Inde. Il faut rajouter que les éditeurs de code et l’aide fournie avec sont de
plus en plus accessible au grand public. Ça tue les programmeurs pas les analystes.
En bref, pour pouvoir réussir dans ce domaine, il faut soit avoir beaucoup de chance
et donc avoir un poste « tranquille », soit être extrêmement compétent sur tout point
de vue surtout le côté technique.
22