Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2011, 10h49   #1
Invité de passage
 
Homme
Étudiant
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut colorier les pixels d'une image d'un userform

bonjours a tous!
je suis débutant en vba et ignore encore de nombreuse fonction.
j'utilise excel pour faire un calcul en élément fini sur la section d'une poutre composé de deux matériaux.
je voudrai afficher cette section en dessinant dans une image.
a savoir ma section compte 80 * 200 éléments et je voudrait que un élément soit un carré de 3*3 pixels.
je voudrais donc colorier ces carrés sois en jaune, sois en bleu selon le matériau de l'élément.
mais j'ai eu beau chercher je n'ai pas trouvé de fonction permettant de colorier les pixels d'une image.
connaissez vous un moyen de le faire?
je sait pas si je suis très clair
merci de votre attention
landeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 17h58   #2
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Il faut à mon avis passer par les API windows pour faire ce que tu souhaites, mais avant de te lancer dans cette aventure, il serait bien d'avoir plus de détail, comme par exemple le but final de cette affichage.

Si par exemple tu souhaites juste afficher ta structure dans le UserForm, pourquoi ne pas utiliser des Labels que tu générerais dynamiquement. Tu les place et les dimensionne ensuite comme tu le souhaites sur ton userform.
Essai de nous mettre une image représentant le rendu final que tu souhaiterais obtenir.

Si toutefois tu souhaites avoir plus de renseignement sur les classes graphique liées aux API, je te conseil de regarder du côté des tutoriels d'Arkham46 en particulier sur les classes GDI.

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2011, 18h38   #3
Invité de passage
 
Homme
Étudiant
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
salut Qwaz!

merci de ta réponse.
les tutoriels que tu me conseil on l'air de correspondre a ce que je veux faire même si ça me demandera un peu de temps pour les comprendre.

je suppose donc qu'il n'existe pas de fonction "pinceau" ou d'attribut color des pixels comme j'en est croisé sur lasarus (bin non ça serai trop simple )

ton idée d'utilisé des labels ma l'air bonne, bien que quelque peu bourrine ça fait quand même 16000 label a crée!
il faut donc que je les crée dynamiquement en contrôlant leur taille, leur place, leur nom et leur couleur que je pourrai ensuite modifier a ma guise grâce au nom qui fera référence a leur position.

j'ai plus qu'a chercher comment crée ces labels automatiquement, si tu vois comment faire ça je suis preneur.

je ne croie pas qu'une image t'aidera, je ne suis pas moi même sur du rendu final, tant que j'ai 16000 petites cases que je peut colorier ca me va!

landeur
landeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 19h05   #4
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

16000 .... laisse tomber les labels, je en pense pas que ce soit une bonne idée. (j'avais pas intégré le 80*200...)

Pour la coloration de pixel, il existe setpixel, qui te permet de modifier la couleur d'un pixel. Lazarus c'est du pascal, il y a une fonction identique.
J'ai fait (heu non, j'ai un programme en cours de développement) sur Delphi qui me permet de tracer des flèches et des cercles (en gros, vraiment en gros ).

Si je devais faire quelque chose de similaire sur VBA, je pense que j'utiliserais les modules de classes. Je ferais une classes contenant les propriétés liées aux objets que je manipule, ainsi que la position de mon objet sur mon UserForm.
En faisant ainsi, a chaque mise à jour de ton UserForm, tu redessines les objets contenus dans ta collection de type TaclassePerso. Au final tu aurais une collection contenant 16000 items.
Cerise sur le gâteau, cette méthode te permet également d'enregistrer toutes ses infos dans un fichier hiérarchie, je dirais au format xml par exemple.

[Edit]
Sinon une autre piste serait peut-être d'utiliser les graphique Excel, après tout ils sont là pour afficher des points (carrés) leur taille est sans doute paramétrable.
[/Edit]

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2011, 22h07   #5
Invité de passage
 
Homme
Étudiant
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
merci de tes conseils, je vais réfléchir a tout ça et continuer a chercher.
je tien au jut de mes avancées.

[edit]
je ne trouve pas de tuto sur setpixel pourrais tu m'en indiquer un ou juste me montrer le code pour changer la couleur d'un pixel
[/edit]

bonne soirée

landeur
landeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 05h44   #6
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Tu trouveras des info dans les doc de la GDI d'arkham46.

Tu as également le DrawRectangle présenté dans ce document avec dans ce document ci, les paramètres de DrawRectangle, notamment la couleur de remplissage du rectangle.

Si tu reprends l'idée de la création d'une Classe, il te "suffit" alors dans le corps de ta Classe d'intégrer une fonction Draw, qui tracera le carré représenté par les infos contenus dans l'instance de la Classe. Ainsi chaque instance sera chargé de tracé le carré qu'elle représente lorsque tu lui en fera la demande via sa méthode Draw .

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 21h55   #7
Invité de passage
 
Homme
Étudiant
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
salut!

posté a 5h44 tu t’arrête jamais qwaz
vais essayer de me plonger dans les tuto et autres joyeuseté des que j'aurais le temp.

bonne soirée

landeur
landeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h09.


 
 
 
 
Partenaires

Hébergement Web