GNT sans publicité, site mobile, fonctionnalitées exclusives...

créer collection

Le
Emcy
bonjours,

Dans un tableau excel, j'ai 4 colonnes :
Famille, Description, NomOption, ValeurOption

je veux affecté à famille une description et des options. voici à quoi
ressemble mon tableau :

Famille Description NomOption ValeurOption
Voiture véhicule à 4 roues Couleur rouge
NbrePorte 3
Moto véhicule à 2 roues Couleur verte
cylindrée 125cm3
poids 500Kg

Voici ce que dois faire ma macro :
je crée une collection MaCollectionFamille qui est composé d'element
MonElementFamille
Chaque MonElementFamille est composé d'un attribut Description et d'une
collection Option
Chaque element de la collection Option est composé de deux attributs : Nom
et Valeur

j'ai un message d'erreur lors de la compile sur la ligne :
MaCollectionOption.Add MonOption


Public Type TypeFamille 'type d'une famille
Nom As String
Description As String
Option As Collection
End Type

Public Type TypeOption 'type d'une option
Nom As String
Valeur As String
End Type

Public MaCollectionFamille As Collection

Sub ChargementFamille()

Dim FeuilleFamille As Object 'objet feuille Famille

Dim CelluleFamille As String
Dim CelluleDescription As String
Dim CelluleOption As String
Dim CelluleValeur As String

Dim MonOption As TypeOption
Dim MaFamille As TypeFamille

Dim MonElementFamille As TypeFamille
Dim MaCollectionOption As Collection

Dim MonNbreLigne As Integer
Dim i As Integer
Set FeuilleFamille = Sheets("Famille")

MonNbreLigne = ComptageDeLigne(FeuilleFamille, 3)

Set MaCollectionFamille = New Collection
Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(1, 1).Value
CelluleDescription = FeuilleFamille.Cells(1, 1).Value

MonOption.Nom = FeuilleFamille.Cells(1, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(1, 3).Value
MaCollectionOption.Add MonOption

For i = 2 To MonNbreLigne
If FeuilleFamille.Cells(i, 1).Value <> "" Then 'changement de famille
MonElementFamille.Nom = CelluleFamille
MonElementFamille.Description = CelluleDescription
Set MonElementFamille.Option = MaCollectionOption

MaCollectionFamille.Add MonElementFamille

Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(i, 1).Value
CelluleDescription = FeuilleFamille.Cells(i, 2).Value
Else
MonOption.Nom = FeuilleFamille.Cells(i, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(i, 3).Value
MaCollectionOption.Add MonOption
End If
Next i

End Sub
Lire les 7 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Emcy
Le #3302081
je vois que personne ne me reponds...
... j'isole donc mieux le probleme :

Type TypeToto
a As String
b As Integer
End Type

Sub main()

Dim MaCollection As New Collection
Dim MonElement As TypeToto

MonElement.a = "coucou"
MonElement.b = 4

MaCollection.Add MonElement

End Sub

pourquoi ça ne marche pas ?
comment faire ?

"Emcy"
bonjours,

Dans un tableau excel, j'ai 4 colonnes :
Famille, Description, NomOption, ValeurOption

je veux affecté à famille une description et des options. voici à quoi
ressemble mon tableau :

Famille Description NomOption ValeurOption
Voiture véhicule à 4 roues Couleur rouge
NbrePorte 3
Moto véhicule à 2 roues Couleur verte
cylindrée 125cm3
poids 500Kg

Voici ce que dois faire ma macro :
je crée une collection MaCollectionFamille qui est composé d'element
MonElementFamille
Chaque MonElementFamille est composé d'un attribut Description et d'une
collection Option
Chaque element de la collection Option est composé de deux attributs : Nom
et Valeur

j'ai un message d'erreur lors de la compile sur la ligne :
MaCollectionOption.Add MonOption


Public Type TypeFamille 'type d'une famille
Nom As String
Description As String
Option As Collection
End Type

Public Type TypeOption 'type d'une option
Nom As String
Valeur As String
End Type

Public MaCollectionFamille As Collection

Sub ChargementFamille()

Dim FeuilleFamille As Object 'objet feuille Famille

Dim CelluleFamille As String
Dim CelluleDescription As String
Dim CelluleOption As String
Dim CelluleValeur As String

Dim MonOption As TypeOption
Dim MaFamille As TypeFamille

Dim MonElementFamille As TypeFamille
Dim MaCollectionOption As Collection

Dim MonNbreLigne As Integer
Dim i As Integer
Set FeuilleFamille = Sheets("Famille")

MonNbreLigne = ComptageDeLigne(FeuilleFamille, 3)

Set MaCollectionFamille = New Collection
Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(1, 1).Value
CelluleDescription = FeuilleFamille.Cells(1, 1).Value

MonOption.Nom = FeuilleFamille.Cells(1, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(1, 3).Value
MaCollectionOption.Add MonOption

For i = 2 To MonNbreLigne
If FeuilleFamille.Cells(i, 1).Value <> "" Then 'changement de famille
MonElementFamille.Nom = CelluleFamille
MonElementFamille.Description = CelluleDescription
Set MonElementFamille.Option = MaCollectionOption

MaCollectionFamille.Add MonElementFamille

Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(i, 1).Value
CelluleDescription = FeuilleFamille.Cells(i, 2).Value
Else
MonOption.Nom = FeuilleFamille.Cells(i, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(i, 3).Value
MaCollectionOption.Add MonOption
End If
Next i

End Sub



Clément Marcotte
Le #3301851
Parce que les collections et les types définis par l'utilisateur sont deux
choses diffrentes.

"Emcy" ea%
je vois que personne ne me reponds...
... j'isole donc mieux le probleme :

Type TypeToto
a As String
b As Integer
End Type

Sub main()

Dim MaCollection As New Collection
Dim MonElement As TypeToto

MonElement.a = "coucou"
MonElement.b = 4

MaCollection.Add MonElement

End Sub

pourquoi ça ne marche pas ?
comment faire ?

"Emcy"
bonjours,

Dans un tableau excel, j'ai 4 colonnes :
Famille, Description, NomOption, ValeurOption

je veux affecté à famille une description et des options. voici à quoi
ressemble mon tableau :

Famille Description NomOption ValeurOption
Voiture véhicule à 4 roues Couleur rouge
NbrePorte 3
Moto véhicule à 2 roues Couleur verte
cylindrée 125cm3
poids 500Kg

Voici ce que dois faire ma macro :
je crée une collection MaCollectionFamille qui est composé d'element
MonElementFamille
Chaque MonElementFamille est composé d'un attribut Description et d'une
collection Option
Chaque element de la collection Option est composé de deux attributs :
Nom et Valeur

j'ai un message d'erreur lors de la compile sur la ligne :
MaCollectionOption.Add MonOption


Public Type TypeFamille 'type d'une famille
Nom As String
Description As String
Option As Collection
End Type

Public Type TypeOption 'type d'une option
Nom As String
Valeur As String
End Type

Public MaCollectionFamille As Collection

Sub ChargementFamille()

Dim FeuilleFamille As Object 'objet feuille Famille

Dim CelluleFamille As String
Dim CelluleDescription As String
Dim CelluleOption As String
Dim CelluleValeur As String

Dim MonOption As TypeOption
Dim MaFamille As TypeFamille

Dim MonElementFamille As TypeFamille
Dim MaCollectionOption As Collection

Dim MonNbreLigne As Integer
Dim i As Integer
Set FeuilleFamille = Sheets("Famille")

MonNbreLigne = ComptageDeLigne(FeuilleFamille, 3)

Set MaCollectionFamille = New Collection
Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(1, 1).Value
CelluleDescription = FeuilleFamille.Cells(1, 1).Value

MonOption.Nom = FeuilleFamille.Cells(1, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(1, 3).Value
MaCollectionOption.Add MonOption

For i = 2 To MonNbreLigne
If FeuilleFamille.Cells(i, 1).Value <> "" Then 'changement de famille
MonElementFamille.Nom = CelluleFamille
MonElementFamille.Description = CelluleDescription
Set MonElementFamille.Option = MaCollectionOption

MaCollectionFamille.Add MonElementFamille

Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(i, 1).Value
CelluleDescription = FeuilleFamille.Cells(i, 2).Value
Else
MonOption.Nom = FeuilleFamille.Cells(i, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(i, 3).Value
MaCollectionOption.Add MonOption
End If
Next i

End Sub







Clément Marcotte
Le #3301841
http://cjoint.com/?lwxQnkC7vO

"Emcy" ea%
je vois que personne ne me reponds...
... j'isole donc mieux le probleme :

Type TypeToto
a As String
b As Integer
End Type

Sub main()

Dim MaCollection As New Collection
Dim MonElement As TypeToto

MonElement.a = "coucou"
MonElement.b = 4

MaCollection.Add MonElement

End Sub

pourquoi ça ne marche pas ?
comment faire ?

"Emcy"
bonjours,

Dans un tableau excel, j'ai 4 colonnes :
Famille, Description, NomOption, ValeurOption

je veux affecté à famille une description et des options. voici à quoi
ressemble mon tableau :

Famille Description NomOption ValeurOption
Voiture véhicule à 4 roues Couleur rouge
NbrePorte 3
Moto véhicule à 2 roues Couleur verte
cylindrée 125cm3
poids 500Kg

Voici ce que dois faire ma macro :
je crée une collection MaCollectionFamille qui est composé d'element
MonElementFamille
Chaque MonElementFamille est composé d'un attribut Description et d'une
collection Option
Chaque element de la collection Option est composé de deux attributs :
Nom et Valeur

j'ai un message d'erreur lors de la compile sur la ligne :
MaCollectionOption.Add MonOption


Public Type TypeFamille 'type d'une famille
Nom As String
Description As String
Option As Collection
End Type

Public Type TypeOption 'type d'une option
Nom As String
Valeur As String
End Type

Public MaCollectionFamille As Collection

Sub ChargementFamille()

Dim FeuilleFamille As Object 'objet feuille Famille

Dim CelluleFamille As String
Dim CelluleDescription As String
Dim CelluleOption As String
Dim CelluleValeur As String

Dim MonOption As TypeOption
Dim MaFamille As TypeFamille

Dim MonElementFamille As TypeFamille
Dim MaCollectionOption As Collection

Dim MonNbreLigne As Integer
Dim i As Integer
Set FeuilleFamille = Sheets("Famille")

MonNbreLigne = ComptageDeLigne(FeuilleFamille, 3)

Set MaCollectionFamille = New Collection
Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(1, 1).Value
CelluleDescription = FeuilleFamille.Cells(1, 1).Value

MonOption.Nom = FeuilleFamille.Cells(1, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(1, 3).Value
MaCollectionOption.Add MonOption

For i = 2 To MonNbreLigne
If FeuilleFamille.Cells(i, 1).Value <> "" Then 'changement de famille
MonElementFamille.Nom = CelluleFamille
MonElementFamille.Description = CelluleDescription
Set MonElementFamille.Option = MaCollectionOption

MaCollectionFamille.Add MonElementFamille

Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(i, 1).Value
CelluleDescription = FeuilleFamille.Cells(i, 2).Value
Else
MonOption.Nom = FeuilleFamille.Cells(i, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(i, 3).Value
MaCollectionOption.Add MonOption
End If
Next i

End Sub







Emcy
Le #3301741
merci mais cette solution ne va pas avec mon appli

j'ai des elements (qu'on appelera groupe 1) à regrouper dans un ensemble
(collection)
j'ai d'autres elements (qu'on appelera groupe 2) qui sont constitués d'un
ensemble de propriétés (variables)
le probleme est que je veux que chaque element d'un groupe 1 soient
constitués d'un ensemble de plusieurs elements du groupe 2

comment faire ? relies mon premier post tu comprenderas peut-être un peu
mieux mon probleme ....


"Clément Marcotte" de news: %
http://cjoint.com/?lwxQnkC7vO

"Emcy" ea%
je vois que personne ne me reponds...
... j'isole donc mieux le probleme :

Type TypeToto
a As String
b As Integer
End Type

Sub main()

Dim MaCollection As New Collection
Dim MonElement As TypeToto

MonElement.a = "coucou"
MonElement.b = 4

MaCollection.Add MonElement

End Sub

pourquoi ça ne marche pas ?
comment faire ?

"Emcy"
bonjours,

Dans un tableau excel, j'ai 4 colonnes :
Famille, Description, NomOption, ValeurOption

je veux affecté à famille une description et des options. voici à quoi
ressemble mon tableau :

Famille Description NomOption ValeurOption
Voiture véhicule à 4 roues Couleur rouge
NbrePorte 3
Moto véhicule à 2 roues Couleur verte
cylindrée
125cm3
poids
500Kg

Voici ce que dois faire ma macro :
je crée une collection MaCollectionFamille qui est composé d'element
MonElementFamille
Chaque MonElementFamille est composé d'un attribut Description et d'une
collection Option
Chaque element de la collection Option est composé de deux attributs :
Nom et Valeur

j'ai un message d'erreur lors de la compile sur la ligne :
MaCollectionOption.Add MonOption


Public Type TypeFamille 'type d'une famille
Nom As String
Description As String
Option As Collection
End Type

Public Type TypeOption 'type d'une option
Nom As String
Valeur As String
End Type

Public MaCollectionFamille As Collection

Sub ChargementFamille()

Dim FeuilleFamille As Object 'objet feuille Famille

Dim CelluleFamille As String
Dim CelluleDescription As String
Dim CelluleOption As String
Dim CelluleValeur As String

Dim MonOption As TypeOption
Dim MaFamille As TypeFamille

Dim MonElementFamille As TypeFamille
Dim MaCollectionOption As Collection

Dim MonNbreLigne As Integer
Dim i As Integer
Set FeuilleFamille = Sheets("Famille")

MonNbreLigne = ComptageDeLigne(FeuilleFamille, 3)

Set MaCollectionFamille = New Collection
Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(1, 1).Value
CelluleDescription = FeuilleFamille.Cells(1, 1).Value

MonOption.Nom = FeuilleFamille.Cells(1, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(1, 3).Value
MaCollectionOption.Add MonOption

For i = 2 To MonNbreLigne
If FeuilleFamille.Cells(i, 1).Value <> "" Then 'changement de famille
MonElementFamille.Nom = CelluleFamille
MonElementFamille.Description = CelluleDescription
Set MonElementFamille.Option = MaCollectionOption

MaCollectionFamille.Add MonElementFamille

Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(i, 1).Value
CelluleDescription = FeuilleFamille.Cells(i, 2).Value
Else
MonOption.Nom = FeuilleFamille.Cells(i, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(i, 3).Value
MaCollectionOption.Add MonOption
End If
Next i

End Sub











Clément Marcotte
Le #3301291
Ce que tu veux faire est impossible. Tu ne peux pas utiliser de collection
avec le type défini par l'utilisateur.

Soit que tu te fais des collections sans "TYPE", soit que tu te fais des
tableaux avec des "TYPE" que tu adresses avec les indices de tableaux.





"Emcy"
merci mais cette solution ne va pas avec mon appli

j'ai des elements (qu'on appelera groupe 1) à regrouper dans un ensemble
(collection)
j'ai d'autres elements (qu'on appelera groupe 2) qui sont constitués d'un
ensemble de propriétés (variables)
le probleme est que je veux que chaque element d'un groupe 1 soient
constitués d'un ensemble de plusieurs elements du groupe 2

comment faire ? relies mon premier post tu comprenderas peut-être un peu
mieux mon probleme ....


"Clément Marcotte" de news: %
http://cjoint.com/?lwxQnkC7vO

"Emcy" ea%
je vois que personne ne me reponds...
... j'isole donc mieux le probleme :

Type TypeToto
a As String
b As Integer
End Type

Sub main()

Dim MaCollection As New Collection
Dim MonElement As TypeToto

MonElement.a = "coucou"
MonElement.b = 4

MaCollection.Add MonElement

End Sub

pourquoi ça ne marche pas ?
comment faire ?

"Emcy"
bonjours,

Dans un tableau excel, j'ai 4 colonnes :
Famille, Description, NomOption, ValeurOption

je veux affecté à famille une description et des options. voici à quoi
ressemble mon tableau :

Famille Description NomOption ValeurOption
Voiture véhicule à 4 roues Couleur rouge
NbrePorte 3
Moto véhicule à 2 roues Couleur verte
cylindrée 125cm3
poids 500Kg

Voici ce que dois faire ma macro :
je crée une collection MaCollectionFamille qui est composé d'element
MonElementFamille
Chaque MonElementFamille est composé d'un attribut Description et d'une
collection Option
Chaque element de la collection Option est composé de deux attributs :
Nom et Valeur

j'ai un message d'erreur lors de la compile sur la ligne :
MaCollectionOption.Add MonOption


Public Type TypeFamille 'type d'une famille
Nom As String
Description As String
Option As Collection
End Type

Public Type TypeOption 'type d'une option
Nom As String
Valeur As String
End Type

Public MaCollectionFamille As Collection

Sub ChargementFamille()

Dim FeuilleFamille As Object 'objet feuille Famille

Dim CelluleFamille As String
Dim CelluleDescription As String
Dim CelluleOption As String
Dim CelluleValeur As String

Dim MonOption As TypeOption
Dim MaFamille As TypeFamille

Dim MonElementFamille As TypeFamille
Dim MaCollectionOption As Collection

Dim MonNbreLigne As Integer
Dim i As Integer
Set FeuilleFamille = Sheets("Famille")

MonNbreLigne = ComptageDeLigne(FeuilleFamille, 3)

Set MaCollectionFamille = New Collection
Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(1, 1).Value
CelluleDescription = FeuilleFamille.Cells(1, 1).Value

MonOption.Nom = FeuilleFamille.Cells(1, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(1, 3).Value
MaCollectionOption.Add MonOption

For i = 2 To MonNbreLigne
If FeuilleFamille.Cells(i, 1).Value <> "" Then 'changement de
famille
MonElementFamille.Nom = CelluleFamille
MonElementFamille.Description = CelluleDescription
Set MonElementFamille.Option = MaCollectionOption

MaCollectionFamille.Add MonElementFamille

Set MaCollectionOption = New Collection

CelluleFamille = FeuilleFamille.Cells(i, 1).Value
CelluleDescription = FeuilleFamille.Cells(i, 2).Value
Else
MonOption.Nom = FeuilleFamille.Cells(i, 2).Value
MonOption.Valeur = FeuilleFamille.Cells(i, 3).Value
MaCollectionOption.Add MonOption
End If
Next i

End Sub















Publicité
Suivre les réponses
Poster une réponse
Anonyme