Optimiser une routine

Résolu
pepe3945 Messages postés 5 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 7 octobre 2006 - 6 oct. 2006 à 22:29
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 - 7 oct. 2006 à 14:51
Bonjour à tous
J'ai une partie d'un code que je souhaiterai optimiser...
J'ai une centaine d'images que je dois charger au démarrage de mon appli (VBA associé à AUTOCAD)
ex:

image101.Picture=Asspoutre.imaglist1.listimage(1).picture
image102.Picture=Asspoutre.imaglist1.listimage(1).picture
image111.Picture=Asspoutre.imaglist1.listimage(1).picture
image112.Picture=Asspoutre.imaglist1.listimage(1).picture
image113.Picture=Asspoutre.imaglist1.listimage(1).picture
image121.Picture=Asspoutre.imaglist1.listimage(1).picture
image122.Picture=Asspoutre.imaglist1.listimage(1).picture
image123.Picture=Asspoutre.imaglist1.listimage(1).picture
etc..
je voudrai pouvoir faire une boucle dans laquelle je joue sur des variables X (10,11,12) et Y(1,2,3) et concaténer le tout sous la forme

variable="image"&X&Y

et ainsi l'utiliser de cette manière

variable.Picture=Asspoutre.imaglist1.listimage(1).picture

D'une centaine de lignes de code, j'en arriverai à une dizaine

Merci de m'aider.; cette solution m'aiderai énormément à d'autres endroit de mon programme

6 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
7 oct. 2006 à 14:30
Essaie comme ceci


Public sub Peigne15N

dim x as single

dim y as single


On error goto Erreur


for x = 10 to 22 step 1

      for y = 1 to 3 step 1

               
asspoutre.Controls("IN15_" & x & y).picture
=  _

                                                   
asspoutre.imagelist1.listimages(1).picture
      next

next


exit sub

Erreur:

Msgbox err.number & vbcrlf & err.description

' éventuellement resume next selon le numéro d'erreur

end sub

MPi
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 oct. 2006 à 23:52
Ça pourrait être quelque chose comme ceci


    Dim I As Integer

    Dim Ctl As Control

   

    For I = 1 To NombreImages

        For Each Ctl In Controls

            If Ctl.Name = "image" & I Then

               
Ctl.Picture = Asspoutre.imaglist1.listimage(1).picture

            End If

        Next

    Next

Reste le "1" à gérer pour l'index des images du ImageList

MPi
0
pepe3945 Messages postés 5 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 7 octobre 2006
7 oct. 2006 à 10:06
En fait je n'arrive pas indiquer l'image que je veux controler à l'aide de son nom

Public sub Peigne15N
dim ref_image as control
dim x as single
dim y as single

for x = 10 to 22 step 1
      for y = 1 to 3 step 1
            ref_image.name = "asspoutre.IN15_" & x & y
                  if ref_image.exists then
                        ref_image.picture = asspoutre.imagelist1.listimages(1).picture
                  endif
      next
next
endsub
0
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
7 oct. 2006 à 14:48
Salut, déjà il faut ke tu index ton objet image :
au lieu de
image101.Picture=Asspoutre.imaglist1.listimage(1).picture
image102.Picture=Asspoutre.imaglist1.listimage(1).picture
etc
(avec index)
image(101).Picture=Asspoutre.imaglist1.listimage(1).picture
image(102).Picture=Asspoutre.imaglist1.listimage(1).picture

apres  :
Sub ChargeImage(XNumero as integer,YNumero as integer)
Dim Indice as integer 
   Indice = XNumero & YNumero
   image(Indice).Picture=Asspoutre.imaglist1.listimage(1).picture
end sub

donc pour l'appel :
Call ChargeImage(X & Y)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
7 oct. 2006 à 14:50
ptite correction
pour l'appel
Call CharImage(X,Y)
0
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
7 oct. 2006 à 14:51
J'abuse!!!
Call ChargeImage(X,Y)

Voila : )
0
Rejoignez-nous