2017-06-20 1 views
0
Public Function LoadImage() As Object 

    For Each pics In sheetImages.Shapes 
    If (CStr(pics.Name) = CStr(currpartImage)) Then 
     Me.ImagePreview.Picture =PictureFromShape(sheetImages.Shapes(currImage)) 
     Me.ImagePreview.PictureSizeMode = 3 
     currImageRow = sheetImages.Shapes(currpartImage).TopLeftCell.row + 1 
    End If 
    Next 
End Function 

Je suis en train d'avoir un appel formUtilisateur cette fonction de mon module principal et l'ont mis l'ImageBox que la forme ... il fonctionne très bien lorsque cette fonction est en le code userform mais j'essaie d'éviter d'avoir à copier ce code pour toutes mes userforms .... quand je mets cette fonction dans le userform- "moi". & « comme objet » sont supprimésont la fonction d'appel userform du module principal et Populate ImageBox

+0

'Me' n'est valide que dans un module objet (userform/sheet/class) et fait référence à l'instance de l'objet elle-même (dans votre cas, le userform). Si vous souhaitez accéder à un élément spécifique (contrôle, etc.) à partir d'un code dans un module normal, vous devez l'ajouter en tant que paramètre à votre fonction et transmettre l'élément à partir du code appelant. Aussi, il serait plus logique que votre code soit Sub et pas une fonction, car il ne renvoie pas de valeur. –

+0

Comment accéder au contrôle de l'image? Serait-ce quelque chose comme Userform.Controls (ImagePreview) .Picture = .... –

Répondre

0

Ajouter un paramètre à votre routine:

Public Sub LoadImage(imageControl as Object) As Object 
    For Each pics In sheetImages.Shapes 
    If (CStr(pics.Name) = CStr(currpartImage)) Then 
     imageControl .Picture =PictureFromShape(sheetImages.Shapes(currImage)) 
     imageControl .PictureSizeMode = 3 
     currImageRow = sheetImages.Shapes(currpartImage).TopLeftCell.row + 1 
    End If 
    Next 
End Sub 

Appel de votre formulaire:

LoadImage Me.ImagePreview 

Vous devrez également passer d'autres éléments qui sont référencés dans LoadImage mais qui ne sont pas dans la portée en dehors de la forme d'utilisateur.

+0

Merci! Ça marche –