Bureautique
Excel-VBA et Access
Dominante
Économie et Gestion d’Entreprise AgroParisTech
Année 2008-2009
Liliana IBANESCU et Laurent ORSEAU
UFR Informatique
05/01/2009 Access 2
Le cours
3 TDs x 2h = 6h Access (LI)
3 TDs x 2h = 6h Excel-VBA (LO)
Présence obligatoire
Évaluation: exercices à envoyer à la fin de
chaque partie
Objectifs
Prise en main d'Excel
Utilisation avancée d'Excel par
Visual Basic Applications
05/01/2009 Access 4
Plan du cours – partie Excel
1.
Rappels sur les bases d'Excel
1.
Fonctions, listes, filtres, …
2.
Rappels sur VBA
1.
Enregistreur de macros
2.
Programmation de macros
3.
VBA+
1.
Exercices avancés
Excel
Couteau Suisse de la bureautique
Importation de données
Formats externes
Traitement des données
Fonctions
Présentation des données
Graphiques, listes, tableaux, …
05/01/2009 Access 6
Excel
Une bonne connaissance d'Excel
gain de productivité parfois
énorme !
Liens Excel
Site du cours
www.agroparistech.fr/Spe-EGE-Bureautique.html
Donnés sur le site du cours :
Bases Excel
www.agroparistech.fr/mmip/mc/agro/excel.html
Compléments Excel
www.agroparistech.fr/mmip/mc/agro/excelsyntheses.html
VBA
www.agroparistech.fr/UV-Le-Tableur-Excel-la.html
Google !
Exemple
"excel 2000 filtre élaboré"
05/01/2009 Access 8
Excel : Cours 1
1.
Bases Excel
1.
Poly MC
2.
Filtre élaboré
1.
TP Excel-long
3.
Tableaux croisés dynamiques
1.
Poly MC
Filtre Elaboré
Télécharger le fichier TP Excel-long sur le site du cours
Copier les étiquettes de colonne en dessous de la liste de données
Remplir des critères
ET sur une même ligne
Duplication d'étiquette possible
OU entre les lignes
* remplace toute suite de caractères
? remplace une seul caractère
05/01/2009 Access 10
Exemple
Exemple
Numéro de commande 10332 ET "Pâtes et céréales" OU Prix>20 ET Prix < 100
Exercice :
Boissons ET Prix < 200 OU Manchester
OU Boston
Filtre élaboré avec calcul
Sous une étiquette différente, mettre un critère calculé :
Références à la première ligne de la liste de donnée
Références relatives automatiques
ensuite
05/01/2009 Access 12
Exemple
Exemple :
Catégorie : tous "Produits …"
ET Prix < Quantité
Exercice :
Numéro de commande impair
ET Prix > 100
ET Manchester
Exercice 2:
Nom produit : taille < 12 caractères
Autres fonctions utiles
Aujourd'hui()
date du jour
Somme, Moyenne, …
RechercheV
Ex : recherche le nom d'un personne à
partir de son N° de sécu dans une liste
05/01/2009 Access 14
VBA : Enregistrement de Macros
Outils\Macros\...
Affichage\Barre d'Outils\Visual Basic
Exemple :
Le curseur est sur "la cellule courante"
Enregistrement :
1. Se placer sur une autre cellule
2. Cliquer sur enregistrer
3. Ecrire "Bonjour !"
4. Arrêter l'enregistrement
Exécution :
5. Se placer sur une autre cellule
6. Exécuter la macro
flèche verte, ou Outils\Macros\Macros… ou Alt-F8
Relatif ou absolu ?
Recommencer l'enregistrement
2b) Cliquer sur "Référence relative"
Exécuter à nouveau :
Se placer sur une autre cellule
Exécuter la macro
Enregistrement de Macros
cf. Exercices-macros.xls
05/01/2009 Access 16
Objets courants :
ActiveCell
La cellule courante
Selection
La plage de cellules courantes
Range
Une plage de cellules
FormulaR1C1
Contenu de la cellule
"Value" similaire
Objet inconnu ?
Placez-vous dessus et cliquez sur F1 !
Essayez sur FormulaR1C1
Visual Basic : Collections
Application
Excel
ou Word si on est dans Word
peut toujours être omis
Workbooks
Les classeurs ouverts
Workbooks("Classeur1.xls")
contient les feuilles
Worksheets
les feuilles du classeur
Worksheets("Feuille1")
05/01/2009 Access 18
Exercices
Faire une macro qui
écrit n fois bonjour de A1 à An,
où n est le nombre indiqué dans la case B1
Faire une macro qui
crée une série en colonne de n éléments
à partir de deux cellules courantes disposées l'une au dessous de l'autre
curseur positionné au départ sur la première
où n est donné dans la cellule de droite
puis qui écrit la date du jour à la place de n
Visual Basic
Sans utiliser l'enregistreur de Macros
Exemple
Créer une nouvelle macro qui écrit "L'heure du crime" en V13.
Exercice
En créer une autre qui calcule la somme des deux cellules du dessus et qui l'affecte à la cellule du dessous
Recalculé seulement au lancement de la macro
Ce n'est pas une "formule" !
05/01/2009 Access 20
Evénements
Dans VBA
Ouvir le document approprié
This Workbook
Feuille1, …
Module,
…
Dans les deux onglets au dessus du document, choisir l'évènement
Ajout automatique d'une Sub
La compléter
Tester dans Excel
Exercices
1.
Lorsque la sélection change,
mettre la couleur de fond de la sélection en vert.
2.
Lorsque la "feuille2" est activée, afficher le message "Bonjour toi !"
Utiliser MsgBox
05/01/2009 Access 22
Contrôles Graphiques
Affichage/Barre d'Outils/Boite à outils contrôles
Ou clic sur Marteau-clef dans la barre d'outils VBA
2 modes
Création
Exécution
Possèdent des évènements
Boutons
Ajouter un bouton
Double-cliquer dessus
Edition de l'action à effectuer lors
Controles : exercices
Faire un bouton qui change le format de la sélection en
Si la valeur de la cellule est un nombre :
Gras
Souligné
Fond jaune
Utiliser :
If … Then
… EndIf
Sinon laisser tel quel
05/01/2009 Access 24
VBA : Programmation
Variables
Fonctions/procédures
Conditions If Then Else End If
Boucles For, While, …
Tableaux…
voir poly
Intégration Web
ActiveWorkbook.FollowHyperlink(Url)
Envoie une requête GET à travers le navigateur
Exemple d’URL:
« http://www.google.com »
05/01/2009 Access 26
Méthode GET, requête HTTP
Exemple d’URL:
http://www.google.com/search?q=hot+dog
Protocoles : http, https, ftp, …
Paramètres : dépendent de la page web
Exemple :
Bouton de recherche Google
protocole serveur page paramètres X=a&Y=b&…
TextToURL (simple)
Function Url_Encode(ByVal ValIn As String) As String Dim ValOut As String
Dim I As Long
Dim AscVal As Integer Dim MidVal As String * 1 ValOut = ""
For I = 1 To Len(ValIn)
MidVal = Mid$(ValIn, I, 1) AscVal = Asc(MidVal)
Select Case AscVal Case 32
ValOut = ValOut & "%20"
Case 42, 45, 46, 48 To 57, 64 To 90, 97 To 122 ValOut = ValOut & MidVal
Case Else
ValOut = ValOut & "%" & Hex$(AscVal) End Select
Next I
Url_Encode = ValOut End Function
05/01/2009 Access 28
Protocole mailto
mailto:[email protected]?subject=Ohé&body=ca va ?
Paramètres : subject, body, cc, bcc
Encoder aussi le texte avec TextToUrl :
%20 : espace (pas toujours nécessaire)
%0d%0a : retour chariot
…
protocole adresse email paramètres
Exercice Noté
Une liste
NOM, PRENOM, Code Postal, Ville, Rue, N°
Ex1 :
Un bouton
Ecrit un mail à la personne de la ligne sélectionnée
Sujet : « Ca fait un bail ! »
Corps : « On s’fait une bouffe ? »
Ex2 :
Recherche l’adresse de la personne dans Google Maps
A m'envoyer en l'état A LA FIN DE LA SEANCE
Avec le nom du binome !
05/01/2009 Access 30
… la ligne sélectionnée
Sheet1.Cells(5, 3)
Active la cellule L5C3 de la feuille
« Sheet1 »
ActiveCell.Row (ou .Column)
numéro de ligne de la cellule active
Exercice RATP: Bonus
Pour l’adresse de la ligne sélectionnée, envoyer une requête vers la RATP pour connaître le trajet jusqu’à Censier-
Daubenton
www.ratp.fr
Indice :
pour connaître le format de l’URL et des
paramètres, faire un premier essai à la main sur le site
puis copier l’adresse créée
certains paramètres affichés ne sont pas nécessaires !