marg55
XLDnaute Nouveau
Bonjour, 
Je souhaite dans la réalisation de mon programme, récupérer un variable que je créer dans un module de classe dans un autre module de classe, bien que j'ai beaucoup lu sur le sujet, je ne trouve pas de solution.
Vous pouvez vous en douter, ma variable est déclaré en Public dans le module principe.
Ceci est une sous procédure de mon premier module de classe dans lequel j'utilise la variable "rec" pour la première fois,
	
	
	
	
	
		
Je la déclare de la sorte dans la procédure principale :
	
	
	
	
	
		
Ici, j'ai ma deuxième classe, dans laquelle je souhaiterai réutiliser le rec, le fait de l'avoir re-déclarer, fait qu'elle est vide, comme si c'était une variable nouvelle.
	
	
	
	
	
		
Comme je vous le disais, la variable est déclarée public dans le module initiale.
Je suis preneuse si quelqu'un à une solution que je n'ai pas capter !
Merci,
Margot.
	
		
			
		
		
	
				
			Je souhaite dans la réalisation de mon programme, récupérer un variable que je créer dans un module de classe dans un autre module de classe, bien que j'ai beaucoup lu sur le sujet, je ne trouve pas de solution.
Vous pouvez vous en douter, ma variable est déclaré en Public dans le module principe.
Ceci est une sous procédure de mon premier module de classe dans lequel j'utilise la variable "rec" pour la première fois,
		VB:
	
	
	Sub NomObj(i As Integer, rec As String, IDobjet As String, ComboBox As MSForms.ComboBox)
    
    Dim type_controle As String
    Set ComboBox = Initialisation.Controls("ComboBox1")
    'Associser à chaque choix de la ComboBox une lettre
    Select Case ComboBox
        Case "Controle mecanique"
            type_controle = "A"
        Case "Controle electrique"
            type_controle = "B"
    End Select
    
    'ne garder la chaine rec qu'a partir du 6ème élement
    rec = Mid(rec, 6)
    
    'regrouper les différents éléments du nom pour créer l'identifiant au complet
    IDobjet = type_controle & "0" & rec & Format((i - 4), "000")
        
End SubJe la déclare de la sorte dans la procédure principale :
		Code:
	
	
	NomObj i, (Cells(4, captionID.Column)), IDobjet, ComboBoxIci, j'ai ma deuxième classe, dans laquelle je souhaiterai réutiliser le rec, le fait de l'avoir re-déclarer, fait qu'elle est vide, comme si c'était une variable nouvelle.
		Code:
	
	
	Option Explicit
Public WithEvents Bouton As MSForms.CommandButton
Sub Bouton_Click()
      
    Dim ComboBox As Control
    Dim i As Integer
    Dim letter As String
    Dim ctrl As Control
    Dim lettredutest As Control
    Dim X As String
    Dim rec As String
    
    Dim Multipage As MSForms.Multipage
    
    For Each ctrl In Initialisation.Controls
        If TypeOf ctrl Is MSForms.Multipage Then
            Dim page As MSForms.page
            For Each page In ctrl.Pages
                Dim pageCtrl As Control
                For Each pageCtrl In page.Controls
                    If TypeOf pageCtrl Is MSForms.ComboBox Then
                        X = Left(pageCtrl.Name, 1)
                    End If
                Next pageCtrl
            Next page
        End If
    Next ctrl
    
   ' For Each ctrl In Initialisation.Controls
   '     If TypeOf ctrl Is MSForms.TextBox Or TypeOf ctrl Is MSForms.ComboBox Then
   '        X = Left(ctrl.Name, 1)
   '     End If
   ' Next ctrl
    
    'Sanction en fonction du type de controle (lettre) et de la ligne du test
    For i = 1 To (DerniereLigne - 4)
        If Initialisation.Controls(X & "0" & rec & "00" & i) = "OK" Then
            Initialisation.Controls("L" & X & "000100" & i) = "CORRECT"
        ElseIf Initialisation.Controls(X & "000100" & i) = "NOK" Then
            Initialisation.Controls("L" & X & "000100" & i) = "ERREUR"
        End If
    Next i
End SubComme je vous le disais, la variable est déclarée public dans le module initiale.
Je suis preneuse si quelqu'un à une solution que je n'ai pas capter !
Merci,
Margot.
 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		