EXCEL / VBA
Shared by: HC120915015024
-
Stats
- views:
- 2
- posted:
- 9/14/2012
- language:
- Unknown
- pages:
- 11
Document Sample


EXCEL / VBA
TP 8 : parcours de liste
et cas pratique
La boucle Do … Loop
Une généralisation de la boucle FOR.
On boucle, et on indique juste la condition
d’arrêt.
Do Do
(Instructions) (Instructions)
Loop Until (condition) Loop While (condition)
Répète les instructions jusqu’à ce que (tant
que) la condition est vrai
Parcours de liste
Une variable est utilisée pour indiquer la
ligne de travail. On descend jusqu’à arriver
à la fin de la liste / à la ligne désirée, on
peut réaliser un traitement sur toutes (ou
certaines) lignes parcourues.
Ex :
- mettre en gras tous les noms d’une liste
Exemple : feuille étudiants.xls
A B C D
1 Code Nom Prénom Note
2 2001002 Ernjaz Maude 10
3 2001003 Faimal Emma 12
4 2001004 Faire Michel 14
5 2001005 Hornot-Toby Tobbie 8
6 2001006 Huilda Rachid 13
7 2001007 Illiait Thérèse 12
8 2001008 Iboura Habib 11
9 2001009 Imal Anne 7
Parcourir toute la liste
Sub parcours()
y=2 Ligne de départ
Do
(traitement sur la ligne ‘y’)
On passe à la ligne
y=y+1 suivante
Loop until cells(y,1) = “”
On s’arrête lorsqu’on
(après la parcours de liste, y arrive sur une ligne
“pointe” vers la première ligne vide
blanche)
End sub
Parcours de liste : ajouter en fin de liste
Sub parcours()
y=1
Do
y=y+1
Loop until cells(y,1) = “”
‘on est à la fin, on peut ajouter un étudiant
Cells(y,1) = “20012003”
cells(y,2) = “Dupont”
cells(y,3) = “Jean”
cells(y,4) = “10”
End sub
Parcours de liste : mettre en rouge les
noms des mauvais étudiants
Sub mise_en_rouge()
y=1
Do
if (cells(y,4) < 10) then
cells(y,2).font.colorIndex = 3
end if
y=y+1
Loop until cells(y,1) = “”
End sub
Parcours de liste : retrouver code
étudiant à partir de son nom
Sub code()
nom = inputbox(“Quel nom ?”)
y=1
Do
y=y+1
Loop until (cells(y,2) = nom)
‘on a trouvé le nom, on affiche le code
msgbox Cells(y,1)
End sub
Recherche, sans dépasser
Sub code()
nom = inputbox(“Quel nom ?”)
y=1
Do
y=y+1
Loop until (cells(y,2) = nom) or (cells(y,1) = “”)
if (cells(y,1) = “”) then
msgbox “Erreur !”
else
msgbox Cells(y,1)
end if
End sub
Copier les bonnes notes
Sub code()
y1 = 1
Y2 = 1
Do
if (cells(y,4) > 12) then
sheets(“bonnes notes”).cells(y2,1) = cells(y1,1)
y2 = y2 +1
end if
y1 = y1 + 1
Loop until (cells(y1,1) = “”)
End sub
Exercice
TP 8
Get documents about "