Passage de paramettre dans une Function

Résolu
Signaler
Messages postés
37
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
2 décembre 2010
-
Messages postés
37
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
2 décembre 2010
-
Bonjour a tous

J'ai realisé une petite fonction me permettant de redimentioner une image à l'aide d'un controle Image.
Cette fonction m'est bien utile car j'utilise beaucoup les images dans mon logiciel.
=> 1ere obligation : Pas de fichier OCX ...
=> 2eme obligation : Une fonction Public reutilisable par toutes les feuilles.

La syntaxe de ma function est la suivante :
Public Function RedimentionneImage(NomForm As Form, NomFichierImage As String, LargeurImage As Integer, HauteurImage As Integer)

NomForm correspond a la feuille ou se trouve le controle Image ou je vais afficher l'image.
NomFichierImage contient le chemin complet de l'image ( Ex : "C:\NomLogiciel\image.JPG" )
LargeurImage correspond à la largeur du controle Image ou je vais afficher l'image.
HauteurImage correspond à la hauteur du controle Image ou je vais afficher l'image.

Mon probleme est que je ne sais pas comment faire pour que je puisse passer dans ma Function le nom du controle Image de la feuille
ou je vais y mettre l'image redimentionnée !!!
Exemple : Le controle Image se nome "ImageMateriel"

Ce que je souhaiterais faire c'est utiliser dans ma function la syntaxe suivante :

NomForm.?????.picture=loadpicture(NomFichierImage)
Actuellement je fonctionne avec ceci :
NomForm.ImageMateriel.picture=loadpicture(NomFichierImage)

Ca doit etre possible mais là je seche !!!!!

Pouvez-vous m'aider SVP ?

Merci d'avance

Radsie
( Stephane )
A voir également:

6 réponses

Messages postés
48
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
9 novembre 2009

Salut;Si j’ai bien comprend ta question la solution et de déclarer la fonction comme caPublic Function RedimentionneImage(NomImage As Image, NomFichierImage As String, LargeurImage As Integer, HauteurImage As Integer)<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

Puis tu appelle ton fonction :

RedimentionneImage NomForm.NomImage, NomFichierImage, LargeurImage , HauteurImage
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Si le seul interet de passer la form en paramètre dans ta fonction est d'accèder au controle image, si tu n'utilise pas ta form pour autre chose dans ta fonction, il n'y a aucune utilité à passer la form en paramètre.

Ce qui t'interesse est le controle image sur le lequel tu vas travailler. C'est lui que tu dois passer en paramètre.
Ce qui résoud du coup le problème du nom, puisque tu n'en a plus besoin, tu accède directement au controle par le paramètre.

Et ta fonction devient du coup générique puisqu'elle marchera quelque soit la form et quelque soit le nombres d'images à traiter par form. Il suffira de l'appelée une fois par image.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
As-tu besoin de passer la Form en paramètre ? Te sert-elle à quelque chose dans ta fonction autre que l'accès à l'image.

Si elle ne te sert à rien, modifie ta fonction pour passer plutot directement le controle image à remplir.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
37
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
2 décembre 2010

Bonjour


En effet , je souhaiterais utiliser la même function pour toutes les feuilles de nom programme ou je dois redimentionner


des images dans des contrôles Images !


D'ou l'utilité de passer la Form en paramètre et ce qui me manque absolument c'est de passer le nom du controle image car


le nom du contrôle Image n'est pas forcement le même sur toutes les feuilles d'ou le problème !


 


J'espère que cette explication va suffir , car j'ai vraiment besoin de cette Function !


Merci d'avance de votre aide


Radsie ( Stephane )
Messages postés
37
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
2 décembre 2010

Genial , super Genial !

Ca marche !!! Je te remercie MOUSSAOUIAAZIZ

Je mets tout ca au propre et je vais mettre ma Function sur le Forum !

PS : En plus c'est balo , j'avais deja essayé cette solution , à part que lors de l'appel de ma procedure je ne mettais pas 
       NomForm devant NomImage pour faire NomForm.NomImage et donc ca deconnait !

Bref ! super cool

A bientot et encore merci

Radsie
Messages postés
37
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
2 décembre 2010

Oui , Casy , maintenant que je sais faire appel directement à l'image par NomForm.NomImage en effet
je n'ai plus besoin de passer le parametre NomForm , c'est exact

Merci encore , maintenant j'ai du taf , faut que je finisse ca pour demain ca urge !!!

See you

Radsie