laurent950
XLDnaute Barbatruc
Bonsoir le forum,
J'ai un soucis avec un module de classe je comprend pas pourquoi je ne peux pas reprendre
la même variable du module de classe avec "Get" et "Let" soit : TabMusique (Plantage !)
  
pour extraire utilisé se tableau dans le module standard :
je suis obligé de passé par un : "Get" avec TabMusique
----------------------- et par un : "Let" avec TabMusique2
Si vous avez une réponse ? un grand merci car je cherche mais ne trouve pas de réponse.
Fichier excel joint au message :
"Module de classe constructeur tableau2.xlsm"
Code et message (Image) platage
Ci-dessous le code qui fonctionne.
Dans un module standard « Module1 » je crée cette procédure :
	
	
	
	
	
		
Dans le module de classe « Musique » je crée cette procédure :
	
	
	
	
	
		
Laurent
	
		
			
		
		
	
				
			J'ai un soucis avec un module de classe je comprend pas pourquoi je ne peux pas reprendre
la même variable du module de classe avec "Get" et "Let" soit : TabMusique (Plantage !)
pour extraire utilisé se tableau dans le module standard :
je suis obligé de passé par un : "Get" avec TabMusique
----------------------- et par un : "Let" avec TabMusique2
Si vous avez une réponse ? un grand merci car je cherche mais ne trouve pas de réponse.
Fichier excel joint au message :
"Module de classe constructeur tableau2.xlsm"
Code et message (Image) platage
Ci-dessous le code qui fonctionne.
Dans un module standard « Module1 » je crée cette procédure :
		VB:
	
	
	Sub Example()
    Dim ObjetTab As New Musique
    pRows = 5 ' Ligne (5)
    pCols = 3  ' Colonne (3)
    ' Avec Let
    ObjetTab.TabMusique(pRows) = pCols
    ' Avec Get
    Dim TabMus() As Variant
    TabMus = ObjetTab.TabMusique2
   ' Si j'utilise ObjetTab.TabMusique avec Get cela ne fonctionne pas ? je suis obligler de passé
   ' par ObjetTab.TabMusique2 pour arriver à récupérer ce tableau stocké dans le module de classe
   ' car si non j'ai le message d'erreur est lorsque l'on tape ObjetTab. (Il n'y a rien de mentionné 
   ' avec  la procédure écrite dans le module de classe : Property Get TabMusique() donc je suis 
   ' obligé de l'écrire différemment j'ai choisie Property Get TabMusique2()... Mais j'aurais pu 
   ' l'appeler  Property Get TOTO()
   ' Je ne comprend pas cette nuance
   
    ' exemple : remplire ce tableau (Crée est dimensionné par le module de classe)
    For i = LBound(TabMus, 2) To UBound(TabMus, 2)
        For j = LBound(TabMus, 1) To UBound(TabMus, 1)
            Cells(j, i) = "Ligne" & j & " / " & "Colonne" & i
        Next j
    Next i
End Sub
	Dans le module de classe « Musique » je crée cette procédure :
		VB:
	
	
	Option Base 1
Private mTabMusique() As Variant
Property Let TabMusique(Rows, Cols)
    ReDim mTabMusique(Rows, Cols)
End Property
' Copie du message d'erreur dans le fichier excel avec : Property Get TabMusique()
' je comprend pas pourquoi ? ca devrait fonctionné ou je passe à côté de quelque chose ?
Property Get TabMusique2()                ' Ici fonctionne correctement !
    TabMusique2 = mTabMusique
End Property
	Laurent
Pièces jointes
			
				Dernière édition: