- Thème : tableaux dynamiques | Durée : 20 min | Niveau : intermédiaire.
- Macro à écrire :
Alerte.
- Ranger dans un tableau dynamique
produits() le nom des produits dont le stock (colonne B) est inférieur à 10. - Afficher chacun d'eux dans la fenêtre Exécution avec
Debug.Print. - Écrire en
D1 la liste séparée par une virgule et une espace (fonction Join), ou Aucun s'il n'y en a pas.
Sub Alerte()
Dim produits() As String
Dim nb As Long, i As Long
i = 2
Do While Cells(i, 1).Value <> ""
If Cells(i, 2).Value < 10 Then
nb = nb + 1
ReDim Preserve produits(1 To nb)
produits(nb) = Cells(i, 1).Value
End If
i = i + 1
Loop
If nb = 0 Then
Range("D1").Value = "Aucun"
Else
For i = 1 To nb
Debug.Print produits(i)
Next i
Range("D1").Value = Join(produits, ", ")
End If
End Sub
Dim produits() As String déclare un tableau sans taille ; ReDim Preserve l'agrandit en gardant son contenu.- Avant le premier
ReDim, le tableau n'a pas d'élément : UBound(produits) provoquerait l'erreur 9, d'où le compteur nb.