6
devoir_VB_excel.doc Devoir d'informatique Terminale STG GSI - VB Excel Durée : 1h 1/ Compléter ci-dessous le programme VBA permettant de déclarer les variables A, B, C, D respectivement en entier, réel, chaine, booléen Sub declaration() End sub 2/ Soit les deux propositions suivantes : A="Je suis blonde" B="J'ai les yeux bleus" Compléter la table de vérité : A B A AND B A OR B <> A VRAI VRAI VRAI FAUX FAUX VRAI FAUX FAUX Rmq : <> A équivaut à Not A (différent de A) 3/ Soit le programme VBA suivant : Sub affectation() Dim a as single, b as single, c as single a=2 b=7 c=1 a=a+1 b=b+2 c=(a+2)*(b+3) End sub Quel est le contenu de a, b, c après exécution de ce programme ? 4/ Affichons des boîtes de dialogue a/ Donner l'instruction VBA permettant d'afficher la boîte de dialogue suivante : http://www.thierry-barry.fr 1 © th.barry 2011

Devoir VB Excel

Embed Size (px)

Citation preview

Page 1: Devoir VB Excel

devoir_VB_excel.doc

Devoir d'informatiqueTerminale STG GSI - VB Excel

Durée : 1h

1/ Compléter ci-dessous le programme VBA permettant de déclarer les variables A, B, C, D respectivement en entier, réel, chaine, booléen

Sub declaration()

End sub

2/ Soit les deux propositions suivantes :A="Je suis blonde"B="J'ai les yeux bleus"Compléter la table de vérité :

A B A AND B A OR B <> AVRAI VRAIVRAI FAUXFAUX VRAIFAUX FAUX

Rmq : <> A équivaut à Not A (différent de A)

3/ Soit le programme VBA suivant :Sub affectation()Dim a as single, b as single, c as singlea=2b=7c=1a=a+1b=b+2c=(a+2)*(b+3)End subQuel est le contenu de a, b, c après exécution de ce programme ?

4/ Affichons des boîtes de dialogue

a/ Donner l'instruction VBA permettant d'afficher la boîte de dialogue suivante :

http://www.thierry-barry.fr 1 © th.barry 2011

Page 2: Devoir VB Excel

devoir_VB_excel.docb/ Que faut-il simplement modifier dans votre instruction précédente pour obtenir la boite de dialogue suivante :

5/ L'opération d'affectation

RMQ : "Avant" signifie qu'il faut donner le contenu de la variable juste avant que l'instruction soit exécutée ; "Après" signifie qu'il faut donner le contenu de la variable juste après que l'instruction ait été exécutée.

6/ erreurs dans des lignes d'un programmeSoit le programme VBA suivant (par commodité, les lignes ont été numérotées)1 Sub affectation2()2 Dim nb1 As Integer, nb2 As Integer, nb3 As Single, bool1 As Boolean, ch1 As String, ch2 3 As String4 nb1 = InputBox(nb1)5 nb3 = nb2 + 16 nb2 = nb17 nb1 = 458 nb2 = 67.59 nb3 = nb1 * 0.210 nb1 = nb311 ch1 = "maison"12 ch2 = bool113 ch2 = ch114 ch1 = "olé"15 ch2 = ch116 End Sub

http://www.thierry-barry.fr 2 © th.barry 2011

Page 3: Devoir VB Excel

devoir_VB_excel.docQuatre lignes de ce programmes comportent une erreur ; repérez où se trouvent ces erreurs en indiquant le numéro de la ligne et expliquez en une phrase en quoi consiste l'erreur.

Numéro de la ligne

Explication de l'erreur

7/ Soit le programme VBA suivant : Sub C21Exo5() Dim nom As String Dim prenom As String Dim nb1 As Single Dim nb2 As Single Dim resultat as single nom = InputBox("Saisir votre nom", "SAISIE", "nom ?") prenom = InputBox("Saisir votre prénom", "SAISIE", "prénom ?") nb1 = InputBox("Saisir le premier nombre", "Opération", 0) nb2 = InputBox("Saisir le deuxième nombre", "Opération", 0) resultat=nb1+nb2 MsgBox "… End Suba/ Expliquez le rôle de la partie de l'instruction InputBox indiquée par la flècheb/ Rédigez intégralement l'instruction Msgbox afin d'obtenir la boîte de dialogue suivante après avoir saisi les nombres 7 et 31 :

8 Soit le programme VBA suivant :Sub casseTete()Dim a As Single, b As Singlea = 4b = 9a = b + ab = a - ba = a - bMsgBox "Contenu de la variable a : " & aMsgBox "Contenu de la variable b : " & bEnd Sub

a/ Quel est le contenu des variables a et b à la fin du programme ?b/ A votre avis, que fait ce programme ?

http://www.thierry-barry.fr 3 © th.barry 2011

Page 4: Devoir VB Excel

devoir_VB_excel.doc9 les structures alternatives

La scène se passe dans la petite boulangerie du village de Guérande près de Castillon. M. Pain, le boulanger, est en grande discussion avec M. Plat, restaurateur, au sujet de l’objet insolite qui a pris place depuis ce matin sur le comptoir.

M. Plat : vous aussi, vous vous mettez à l’informatique ?M. Pain : eh oui, qui n’avance pas recule...M. Plat : et vous arrivez à vous débrouiller ?M. Pain : bien sur .... regardez ...

Monsieur Pain se lance dans une brillante démonstration de l’objet insolite.... Ici, l’ordinateur me demande le prix du produit que le client achète. Pour vous, des

baguettes, donc je tape 0,60 €.M. Plat : d’accordM. Pain : ensuite, l’ordinateur me demande le nombre de produits.. Vous en prenez combien ce matin ?M. Plat : 26M. Pain : je tape donc 26 et voilà, vous me devez 14 euros et 82 cents.M. Plat : votre ordinateur m’a bien fait ma remise de 5% ?M. Pain : Bien évidemment, il indique le montant sans remise et le montant avec la remise. Il vous a accordé 5% car le nombre de baguette est supérieur à 10.M. Plat s’acquitte de son dû, en regardant avec une certaine stupéfaction l’écran de l’ordinateur.

Compléter le programme en VBA qui permet au boulanger de calculer le prix à payer par M. Plat.

Sub pain()Dim PU, PB, PN, remise As singleDim QTE As integerPU = InputBox("prix du pain : ")QTE = InputBox("quantité achetée : ")PB = QTE * PU

remise = PB - PNremise = round(remise, 2)MsgBox ("NB de pain acheté : " & QTE & vbCr & "montant brut : " & PB & " €" & vbCr & "remise accordée : " & remise & " € " & vbCr & "montant net : " & PN & " €")End Sub

http://www.thierry-barry.fr 4 © th.barry 2011

Structure alternative à compléter

Page 5: Devoir VB Excel

devoir_VB_excel.doc

CorrigéVB Excel

1/ Compléter ci-dessous le programme VBA permettant de déclarer les variables A, B, C, D respectivement en entier, réel, chaine, booléenDim A as integer, B as single, C as string, D as boolean

2/ Soit les deux propositions suivantes :A="Je suis blonde"B="J'ai les yeux bleus"Compléter la table de vérité :

A B A AND B A OR B <> AVRAI VRAI VRAI VRAI FAUXVRAI FAUX FAUX VRAI FAUXFAUX VRAI FAUX VRAI VRAIFAUX FAUX FAUX FAUX VRAI

3/ Soit le programme VBA suivant :Quel est le contenu de a, b, c après exécution de ce programme ?A=3 B=9 C=60

4/ Affichons des boîtes de dialoguea/ Donner l'instruction VBA permettant d'afficher la boîte de dialogue suivante :MsgBox "Mettons nous au travail !", vbOKOnly + vbexclamation, "Invitation"b/ Que faut-il simplement modifier dans votre instruction précédente pour obtenir la boite de dialogue suivante :Il suffit de remplacer "vbexclamation" par "vbinformation"

5/ L'opération d'affectationInstructions A B C

1 0 3 0 0 0 02 3 3 0 9 0 03 3 3 0 9 0 124 3 4 0 9 0 125 4 4 9 13 12 126 4 4 13 13 12 297 4 4 13 13 29 -295

6/ erreurs dans des lignes d'un programme

Numéro de la ligne

Explication de l'erreur

5 Incorrect car on ne connait pas le contenu de nb2 (on dit que la variable n'a pas été initialisée)

8 Incorrect car on ne peut pas affecter un réel à nb2 qui a été défini comme entier

10 Incorrect car on peut ranger un entier dans un réel mais pas l'inverse

12 On ne peut pas affecter à ch2 qui est une chaine, un booléen

http://www.thierry-barry.fr 5 © th.barry 2011

Page 6: Devoir VB Excel

devoir_VB_excel.doc7/ Soit le programme VBA suivant : a/ Expliquez le rôle de la partie de l'instruction InputBox indiquée par la flècheCette partie de l'instruction permet de placer dans la zone de saisie, la valeur "nom ?"

b/ Rédigez intégralement l'instruction Msgbox afin d'obtenir la boîte de dialogue suivante après avoir saisi les nombres 7 et 31 :MsgBox "Bonjour " & prenom & " " & nom & ", " & vbCr & "le résultat est de : " & resultat, vbInformation, "Résultat"

8/ Soit le programme VBA suivant :a/ Quel est le contenu des variables a et b à la fin du programme ?a=9 b=4b/ A votre avis, que fait ce programme ?Ce programme échange le contenu des variables a et b

9 les structures alternatives

If QTE > 10 ThenPN = PB * 0.95Else: PN = PBEnd If

http://www.thierry-barry.fr 6 © th.barry 2011