vendredi 6 janvier 2012

Manipulation des objets Excel dans VBA - TD VBA Objet Excel 2007 Exercice Corrigé VBA EXCEL 2007

Classeur : NOTEELEVE.XLSX

1) Ouvrez un nouveau classeur et enregistrez le sous le nom NOTEELEVE.XLSX
2) Nommez la feuille Feuil1 en « Notes »
3) Ouvrez l’éditeur de VBA, insérez un nouveau module
4) Créez une procédure VBA nommé TitreColonne dont l’objectif est d’obtenir ceci :




Les titres de colonnes sont en gras

1) On veut maintenant générer des notes aléatoires (fonction Rnd) comprises entre 1 et 20. L’utilisateur est invité à saisir un nombre d’élèves compris entre 1 et 30. Le programme doit par ailleurs contrôler le nombre saisi par l’utilisateur.

L’algorithme est le suivant :

VARIABLES :
Classeur : Objet Classeur
Feuille : Objet Feuille
NbNotes : Entier
i,j : Entier
PROCEDURE GénérerNotes()
Classeur<-Classeur actif
Feuille<-Feuille « Notes »
NbNotes<-0
Effacer Plage de cellules B2 :I31
TANT QUE NbNotes <1 OU NbNotes>30
SAISIR(« Combien de notes voulez vous ? saisissez un nombre entre 1 et 30 »,NbNotes)
FIN TANT QUE
POUR I :=1 JUSQU'A NbNotes
POUR J :=2 TO 9
Cellule(i,j) <- ENT(RND*20)
FIN POUR
FIN POUR
FIN PROCEDURE


Activité :

a) Créez en VBA la procédure correspondant à cet algorithme.

b) Dans la cellule A1 de la feuille Notes, créez un bouton de commande et affectez-lui la macro « GénérerNotes ». Tester la macro en saisissant successivement différentes valeurs (par exemple 0, 20 ou 40)
-------------------------------------------------------------------------------------------------------
Correction
-------------------------------------------------------------------------------------------------------

Lancez MS Excel 2007 puis Nommer la feuille 1 puis lancer Visual Basic pour créer les procédures :



Insérer ces deux procédures :

Procédure pour insérer l'entête du tableau :

Public Sub TitreColonne()
Dim Classeur As Workbook
Dim Feuille As Worksheet
Set Classeur = Application.ActiveWorkbook
Set Feuille = Classeur.Sheets("Notes")
For i = 1 To 8
Feuille.Range(Cells(1, i + 1), Cells(1, i + 1)).Value = "Note " & CStr(i)
Next
Feuille.Range("B1:I1").Font.Bold = True
End Sub

Procédure pour Générer les notes :

Public Sub GénérerNotes()
Dim Classeur As Workbook
Dim Feuille As Worksheet
Dim NbNotes As Integer
Dim i, j As Integer
Set Classeur = Application.ActiveWorkbook
Set Feuille = Classeur.Sheets("Notes")
NbNotes = 0
Feuille.Range("B2:B32").Clear
While NbNotes < 1 Or NbNotes > 31
NbNotes = InputBox("Combien de notes voulez vous ? saisissez un nombre entre 1 et 30")
Wend
For i = 1 To NbNotes
For j = 2 To 9
Feuille.Cells(i + 1, j) = Int(Rnd * 20)
Next j
Next i
End Sub

a) Dans la cellule A1 de la feuille Notes, créez un bouton de commande et affectez-lui la macro « GénérerNotes ». Tester la macro en saisissant successivement différentes valeurs (par exemple 0, 20 ou 40)




Résultat Final après click sur les deux boutons

0 commentaires:

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP