Objet en VBA ? créer un objet automatiquement

Bonjour,

J'ai besoin de créer une fonction qui crée un objet tout seul. J'ai une idée de ce que je veux, mais je ne sais pas trop comment faire en vba.

monTableau = [{
    category: "-4105",
    quantity: 2,
},{
    category: "3",
    quantity: 4,
},

Est-ce que les objets existent en vba ? Où comment faire quelque chose de similaire.

En fait ma fonction récupère la "category" dans une cellule et la "quantity" dans une autre cellule, elle doit vérifier si la category existe déjà dans mon tableau, si oui, elle doit additionner la quantity avec celle déjà présente dans mon objet. Si non, elle crée un objet dans mon tableau.

J'espère avoir été assez clair.

Hello,

Si tu veux créer un "Objet" sous vba c'est du côté des modules de classe que ça se passe

Bonjour,

Par définition, un objet VBA est l'instance d'une classe, c'est à dire le stockage en mémoire pour un élément de cette classe, de ses propriétés, actions et événements. Exemple : Range("A1") est l'objet VBA représentant l'instance de la classe Range pour la cellule A1.

Votre demande n'est pas relative à un objet VBA, mais à des tableaux dynamiques. Exemple de code :

Private Type tableau
    category As Variant
    quantity As Variant
End Type

Sub remplissage_tableau()
    Dim monTableau As tableau

    monTableau.category = Array()
    monTableau.quantity = Array()

    ReDim Preserve monTableau.category(1)
    monTableau.category(0) = "-4105"
    monTableau.category(1) = "3"

    ReDim Preserve monTableau.quantity(1)
    monTableau.quantity(0) = 2
    monTableau.quantity(1) = 4

End Sub

Je vous remercie thev pour votre réponse.

J'avais trouvé des choses similaires mais je voulais savoir s'il existait des objets comme en js mais ducoup j'ai eu ma réponse merci.

Bonjour,

Vous pouvez créer des objets VBA personnalisés en construisant via un module de classe ,votre propre classe avec les propriétés que vous définissez. Mais cette classe personnelle est toujours relative à un élément possédant un identifiant dans le classeur. L'exemple le plus courant est un contrôle de formulaire identifié par son nom, mais cela pourrait être aussi une personne identifiée par un numéro ou un matricule, ou encore un produit identifié par sa référence ....

Mais cela ne correspond pas à la situation que vous avez décrite.

Bonsoir,

je ne comprend pas tout mais au vu de ceci :
"En fait ma fonction récupère la "category" dans une cellule et la "quantity" dans une autre cellule, elle doit vérifier si la category existe déjà dans mon tableau, si oui, elle doit additionner la quantity avec celle déjà présente dans mon objet. Si non, elle crée un objet dans mon tableau."

Cela me faisait pensé au "dictionnaire" qui sont une paire clé / valeur avec les clé unique, donc si la clé testée existe alors sa valeur = valeur + incrément, sinon on l'ajoute au dictionnaire avec la valeur correspondante, non ?

@ bientôt

LouReeD

Cela me faisait pensé au "dictionnaire" qui sont une paire clé / valeur avec les clé unique, donc si la clé testée existe alors sa valeur =valeur + incrément, sinon on l'ajoute au dictionnaire avec la valeur correspondante, non ?
Tout à fait. C'est la solution la plus simple au niveau du code d'utiliser un objet dictionnaire avec pour clé la valeur de la catégorie et pour item la quantité. Mais on oublie alors le nommage de la clé avec "category" et de l'item avec "quantity". C'est pourquoi, j'ai proposé une autre solution qui me semblait plus proche de la demande initiale.

Bonjour

La subtilité de garder les noms des items ne m'est pas apparu...

Après pour moi ce n'était juste pour info, car tout ce qui touche aux classes j'ai du mal...

@ bientôt

LouReeD

Rechercher des sujets similaires à "objet vba creer automatiquement"