Correction TD89 (CouleurDlg) Private Sub Bok_Click() Dim

Transcription

Correction TD89 (CouleurDlg) Private Sub Bok_Click() Dim
Correction TD8­9 (CouleurDlg) Private Sub Bok_Click() Dim nbMedailles As Integer Dim NomCouleur As String Dim i As Integer Dim j As Integer i = 0 If Bor.Value Then i = 2 NomCouleur = "Or" ElseIf Bargent.Value Then i = 3 NomCouleur = "Argent" ElseIf Bbronze.Value Then i = 4 NomCouleur = "Bronze" Else i = 0 End If If i <> 0 Then nbMedailles = 0 For j = 72 To 92 Step 4 nbMedailles = nbMedailles + Cells(41, i).Value i = i + 4 Next j MsgBox ("Le nombre de médailles obtenues dans la catégorie " & NomCouleur & " est égal à " & nbMedailles) End If End Sub Private Sub Bannuler_Click() Hide End Sub (Feuille 1) Private Sub CommandButton1_Click() Dim nom As String Dim indice_ligne As Integer Dim drapeau_trouvé As Boolean Dim plage_résultat As Range Set plage_résultat = Range("JOrésultats") nom = InputBox("Nom de nation :", "Saisie") drapeau_trouvé = False For indice_ligne = 1 To plage_résultat.Rows.Count If plage_résultat.Cells(indice_ligne, 1).Value = nom Then MsgBox (nom & " : " & plage_résultat.Cells(indice_ligne, plage_résultat.Columns.Count).Value & " médailles") drapeau_trouvé = True End If Next indice_ligne If Not drapeau_trouvé Then MsgBox ("Erreur ! Nation inconnue.") End If End Sub Private Sub CommandButton2_Click() CouleurDlg.Show End Sub Private Sub CommandButton3_Click() Multicrit.Show End Sub (Feuille 2) Private Sub OK_Click() ' Déclarations Dim i As Integer, n As Integer, décalage As Integer Dim couleur As String ' Positionnement sur la bonne ligne (la bonne nation) i = 13 While Cells(i, 1).Value <> Nation.Text And i < 41 i = i + 1 Wend ' Calcul du nombre de médailles n = 0 If Bor.Value Then couleur = "or" décalage = 0 ElseIf Bargent.Value Then couleur = "argent" décalage = 1 ElseIf Bbronze.Value Then couleur = "bronze" décalage = 2 End If If Case72.Value Then n = n + Cells(i, 2 + décalage) End If If Case76.Value Then n = n + Cells(i, 6 + décalage) End If If Case80.Value Then n = n + Cells(i, 10 + décalage) End If If Case84.Value Then n = n + Cells(i, 14 + décalage) End If If Case88.Value Then n = n + Cells(i, 18 + décalage) End If If Case92.Value Then n = n + Cells(i, 22 + décalage) End If ' Affichage du résultat MsgBox ("Nombre de médaille en " & couleur & " pour " & Nation.Text & " : " & n) End Sub Private Sub Worksheet_Activate() Dim i As Integer Nation.Clear For i = 13 To 41 Nation.AddItem (Cells(i, 1).Value) Next i Nation.SelText = "Toutes" End Sub (multicrit) Private Sub OK_Click() ' Déclarations Dim i As Integer, n As Integer, décalage As Integer Dim couleur As String ' Positionnement sur la bonne ligne (la bonne nation) i = 13 While Cells(i, 1).Value <> Nation.Text And i < 41 i = i + 1 Wend ' Calcul du nombre de médailles n = 0 If Bor.Value Then couleur = "or" décalage = 0 End If If Bargent.Value Then couleur = "argent" décalage = 1 End If If Bbronze.Value Then couleur = "bronze" décalage = 2 End If If Case72.Value Then n = n + Cells(i, 2 + décalage) End If If Case76.Value Then n = n + Cells(i, 6 + décalage) End If If Case80.Value Then n = n + Cells(i, 10 + décalage) End If If Case84.Value Then n = n + Cells(i, 14 + décalage) End If If Case88.Value Then n = n + Cells(i, 18 + décalage) End If If Case92.Value Then n = n + Cells(i, 22 + décalage) End If ' Affichage du résultat MsgBox ("Nombre de médaille en " & couleur & " pour " & Nation.Text & " : " & Str(n)) End Sub Private Sub UserForm_Activate() Dim i As Integer Nation.Clear For i = 13 To 41 Nation.AddItem (Cells(i, 1).Value) Next i Nation.SelText = "Toutes" End Sub