Académique Documents
Professionnel Documents
Culture Documents
Pour mettre en pratique l'utilisation des tableaux, vous allez réaliser par étapes la macro qui a servi
d'exemple pour démontrer la rapidité des tableaux ...
Voici le point de départ de l'exercice (la base de données a été réduite à 1000 lignes) :
Le fichier : tableaux_exercice.xls
Objectif de l'exercice : la procédure devra parcourir la base de données en boucle et comptabiliser pour chaque année et chaque n° de client le nombre de "OUI"
ou "NON" (selon le choix de l'utilisateur) et entrer ce décompte dans la cellule correspondante.
Complétez la macro suivante pour enregistrer la base de données de la feuille "BD" dans un tableau :
Sub mettre_a_jour()
Dim derniere_ligne As Integer
End Sub
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Une solution :
Sub mettre_a_jour()
Dim derniere_ligne As Integer
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Une solution :
Sub mettre_a_jour()
Dim derniere_ligne As Integer, valeur_recherchee As String, ligne_insertion As Integer, valeur_oui_non As String, taille As Integer
ligne_insertion = 0
La fonction NB.SI (Countif) a été utilisée pour calculer le nombre de OUI ou de NON :
ReDim tab_bd(taille - 1, 1)
Les données sont ensuite enregistrées dans le tableau si la valeur de la 3e colonne correspond au choix de l'utilisateur :
Parcourir chaque cellule du "tableau" de la feuille "RES" à l'aide de 2 boucles (même principe que l'exercice du damier)
Et y ajouter le nombre total d'entrées du tableau correspondant à l'année et au n° de client pour chaque cellule
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Une solution :
'Décomptes de "OUI"/"NON"
For annee = 2011 To 2026
For no_client = 1 To 30
compteur = 0
For i = 0 To UBound(tab_bd)
If Year(tab_bd(i, 0)) = annee And tab_bd(i, 1) = no_client Then
compteur = compteur + 1
End If
Next
Cells(annee - 2009, no_client + 1) = compteur
Next
Next
La solution en détails :
Sub mettre_a_jour()
Dim derniere_ligne As Integer, valeur_recherchee As String, ligne_insertion As Integer, valeur_oui_non As String, taille As Integer, compteur As
Integer
'Suppression du contenu
Range("B2:AE17").ClearContents
ligne_insertion = 0
Et le fichier : tableaux_exercice_complete.xls