• Aucun résultat trouvé

Visual Basic et Excel

N/A
N/A
Protected

Academic year: 2022

Partager "Visual Basic et Excel"

Copied!
2
0
0

Texte intégral

(1)

IFT 1975 / H05 Page 1 Excel et VB.

Visual Basic et Excel

(Résumé)

Le concept OLE (Object Linking and Embedded) existe depuis 1990 et a été implanté par diverses technologies. Il consiste à permettre à un logiciel X tournant sous Windows d'accéder à la librairie d'objets d'un autre logiciel Y et d'incorporer ces objets à son application. Par exemple, en Word, on peut insérer un lien vers une feuille Excel en afficher une partie du contenu dans un cadre placé sur une page. Lors de l'affichage ou de l'impression de cette page, le contenu du cadre proviendra directement du fichier Excel. De plus, si par la suite le fichier Excel est modifié, l'ouverture subséquente du document Word incorporera automatiquement les nouvelles données.

En Visual Basic, ce concept était supporté par la technologie «OLE 2» dans la version VB5 du logiciel par la technologie COM pour la version VB6 et par le FrameWork NET pour la version VBNET. Pour le programmeur, cela représente la possibilité, à l'intérieur d'une application, d'utiliser tout logiciel compatible (dont entre autres la suite Office) comme sous- programme et d'utiliser ainsi les objets qui y sont développés. Par exemple, si on doit créer une table de simulation sur un ensemble de données, ce qui demanderait des heures de programmation très serrée, on peut tout simplement ouvrir une feuille Excel en arrière-plan (c'est-à-dire dans la mémoire de l'ordinateur) y placer les données à analyser et les formules que Excel offre et récupérer dans une variable tableau VB le contenu de la zone des résultats produits automatiquement.

Dans le cadre du TP4, on utilise la facilité de mise en forme de Excel pour présenter des résultats qui, encore là, demanderait des heures de travail de programmation pour imprimer des rapports. Au lieu de programmer chacune des lignes du rapport, sa couleur de fond ou de texte, les entêtes ou pieds de pages, les graphiques, etc., on fait tout ce travail dans Excel en utilisant l'éditeur du logiciel, puis il n'y a plus qu'à placer par programmation les données dans les bonnes cellules et le travail se fait «tout seul».

Références

Comme VB ne connait pas systématiquement TOUT les objets développés pour TOUS les logiciels présents sur l'ordinateur, il est nécessaire de lui indiquer où trouver les librairies (des fichiers DLL en général) contenant les classes d'objets qui nous intéressent.

La commande «Projet/Ajouter une références» permet de le faire. Comme Excel est un logiciel «pré-NET» on trouvera son inscription (Microsoft Excel xx) dans la liste des objets

«COM» (onglet correspondant). xx représente ici la version du logiciel installé. Cette liste regroupe les librairies qui ont été déclarées à Windows lors de l'installation des différents logiciels et qui se retrouvent pour la plupart dans le dossier «System32» de Windows. Après avoir sélectionné la librairie et avoir validé ce choix, la référence apparaitra dans la fenêtre de l'explorateur de projets sous la rubrique «Références.

Mais plus important, toutes les classes des objets développées pour le logiciel seront utilisables directement : lors de la déclaration d'une variable, ces classes seront intégrées à la liste des types possibles et on pourra y affecter des variables comme

Dim UneVar As Excel.uneclasse

(2)

IFT 1975 / H05 Page 2 Excel et VB.

Fonction CreateObject

Définir une variable objet n'est pas, comme chacun le sait, créer un objet. Dans le cas d'une application, il faut que celle-ci soit intégrée à Windows. VB offre deux fonctions pour lancer une application «externe». La fonction CreateObject va servir pour créer une nouvelle application (document Word, tableur Excel, présentation PowerPoint, etc) alors que GetObject permettra de lancer une application à partir d'un document existant.

' Séquence permettant d'écrire "Bonjour" sur une nouvelle feuille Dim UneApplic As Object 'On définit une variable Objet UneApplic = CreateObject("Excel.Application") 'Objet créé.

Excel est «lancé» en mémoire mais il n'y a pas de classeur ouvert fenêtre vide).

Dim UnClasseur As Excel.WorkBook 'On définit une variable UnClasseur = UneApplic.Add 'Un classeur «neuf» est créé.

Excel peut gérer plusieurs classeurs à la fois. Ici il y aura un seul classeur d'ajouté et la variable «UnClasseur» y fait référence. Un nouveau classeur contient généralement 3 feuilles numérotées de 1 à 3.

Dim UneFeuille As Excel.WorkSheet 'On définit une variable

UneFeuille = UnClasseur.Sheets(1) 'qui «pointe» vers la feuille.

On peut donc dès lors utiliser chacune des cellules de la feuille au moyen de la propriété

«Cells(#ligne, #colonne)» qui définit l'ensemble des cellules.

UneFeuille.Cells(2, 2) = "Bonjour"1) 'Placé dans la cellule B2.

Pour l'instant, la feuille est uniquement en mémoire. On peut dès lors utiliser la feuille à volonté et y utiliser toutes les fonctions et commandes dont elle dispose. Ensuite, on peut par exemple sauvegarder le classeur feuille refermer la feuille et l'application :

UneFeuille.SaveAs("C:\Montest.xls") UneApplic.Quit

Ou encore, on peut rendre visible la feuille et le classeur et laisser l'utilisateur sauvegarder et refermer l'application :

UnClasseur.Application.Visible = True 'ou UneApplic.Visible = True Unefeuille = Nothing

UnClasseur = Nothing

Fonction GetObject

Toutes les commandes précédentes s'appliquent aussi bien si l'on désire ouvrir une application déjà créée. On utilise alors GetObject pour lancer l'application à partir du fichier et tout se passe comme lorsque l'on double-clique sur le fichier : le logiciel correspondant est lancé automatiquement et le fichier est ouvert. Sauf que le tout n'est pas visible à l'utilisateur.

Dim UnClasseur As Excel.WorkBook 'On définit la variable UnClasseur = GetObject("chemin et nom d' nichier")

...

Pour le TP4, une fois le fichier ouvert il s'agit simplement de placer les informations obtenues de la base, ligne par ligne, aux bons endroits. Le reste de la feuille se «emplit de lui-même grâce aux formules qui s'y trouvent déjà.

Références

Documents relatifs

Plusieurs fermes principales à entrait subdivisent les charpentes en travées : deux sur la nef et sur chaque croisillon du transept, trois sur le chœur.. Charpente de la

En dépit de l'emploi très précoce du système des pannes, cette charpente présente des archaïsmes très marqués comme la faible pente de la toiture, l'emploi d'assemblages à mi-bois

CAEI experiments were performed on a 400 kN Schenck com- pression device at a 0.01 mm/min imposed speed ( Fig. 7 ) and the tests were done on damaged specimens (from edge impact

Ces études ont été reprises par Ezcurra et Rapún (2006) puis développées dans le cadre de l’Union européenne et conduisent aux conclusions qu’une augmentation des

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

The cheating opportunities a player can exploit to help him achieve his goal (i.e, kill other players’ avatars and avoid being killed in a typical deathmatch scenario) are to: