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 
   
 

Article plus récent Article plus ancien

One Response to “Manipulation des objets Excel dans VBA - TD VBA Objet Excel 2007 Exercice Corrigé VBA EXCEL 2007”

  1. Il y a une erreur dans la solution.
    Ce n'est pas :
    Feuille.Range("B2:B32").Clear
    Mais
    Feuille.Range("B2:I32").Clear

    RépondreSupprimer