Création automatique d'instances de classe

Bonjour,

J'ai créé un outil en VBA qui à l'aide d'un bouton va récupérer un onglet d'un fichier Excel et le colle dans mon fichier dans un onglet "Data".
Dans cet onglet "Data", une ligne correspond à une vidéo. On a plusieurs colonnes dont une qui informe du format de la vidéo. Les macros que j'ai codé opèrent certains traitements sur le fichier, qui ne sont pas intéressants pour la résolution de mon problème, donc je ne m'étend pas.

En outre j'ai créé un module de classe "Vidéo" et je souhaite créer autant d'instances de la classe vidéo qu'il n'y a de type de format dans mon onglet "Data".
Seulement voilà, en fonction du fichier que je vais chercher, le nom et le nombre de formats différents ne seront jamais les mêmes. Je peux par exemple avoir :

- fichier 1, formats de vidéo présents : "chien_65s", "chat_98s"
- fichier 2, formats de vidéo présents : "perroquet_34s", "lion_72s", "loup_86s", "zoo_250s"

J'aimerais que un format vidéo du fichier = un objet Vidéo

Je suis capable d'afficher une liste contenant les formats (uniques) présents dans le fichier. Je voulais faire une boucle sur cette liste pour pouvoir créer et instancier mes objets, mais je bloque...

Je sais que mon code ne peut pas fonctionner, car on ne déclare pas ses variables dans une boucle, et une variable ne peut pas tout faire. C'est justement mon problème, je vous mets le code pour que vous puissiez avoir l'idée du code que je veux écrire :

Sub Classe_Vidéo()

    'Là où se trouvent les données
    Worksheets("Data").Activate

    Dim RngCell As Range
    Dim dernLigne As Integer

        'Pour boucler jusqu'à la dernière ligne de ma liste
        dernLigne = Range("A" & Rows.Count).End(xlUp).Row

    Dim nom_Objet As String
    Dim i As Integer

'Les noms de mes objets seront oVideo_1, oVideo_2, etc
    nom_Objet = "oVideo_"
    i = 1

    ' Dans la colonne x se trouve la liste de mes formats présents dans la fichier
    For Each RngCell In Range("X2:X" & dernLigne).Cells
        nom_Objet = nom_Objet & i

        Dim nom_Objet As cls_video
        Set nom_Objet = New cls_video

        nom_Objet.sNom_video = RngCell.Value
        nom_Objet.sCpt_video = 0
        nom_Objet.sMax_video = 0

        i = i + 1
    Next RngCell

End sub

Si quelqu'un a déjà eu ce cas de figure, je suis preneuse !

Merci d'avance :)

Hello,

ça me parait compliqué ce que tu cherches à faire par rapport à ton besoin

mais soit :

' dans le module de classe nommé "clsvideo"
Public FormatVideo As String

'Dans un module standard
Dim Video(1 To 2) As New clsvideo
dim i as byte

Video(1).FormatVideo = "Format1"
Video(2).FormatVideo = "Format2"

for i = 1 to 2
  debug.print Video(i).FormatVideo
next i
Rechercher des sujets similaires à "creation automatique instances classe"