begin process at 2010 02 10 09:47:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Graphique

 > 

créer ou afficher un point (pixel) sur l'écran ou la feuille


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

créer ou afficher un point (pixel) sur l'écran ou la feuille

dimanche 22 janvier 2006 à 00:57:59 | créer ou afficher un point (pixel) sur l'écran ou la feuille

j5em3110

Bonjour. (sous vba)

Quelqu'un pourrais me dire qu'elle le code qu'il faut écrire pour tout simplement : créer ou afficher un point (pixel) sur l'écran ou la feuille.

Exemple:

sub toto()

worksheet.shape.point(420,250).color = 1

end sub

En vous remerciant par avance , la recherche de cette solution n'a pas été concluante j'usqu'a maintenant.

J5eme3110

dimanche 22 janvier 2006 à 19:18:02 | Re : créer ou afficher un point (pixel) sur l'écran ou la feuille

pcpt

Administrateur CodeS-SourceS
salut,
voici 8 points, mais en VB6.....

Option Explicit 
Private Declare Function SetPixel Lib "gdi32" _ 
            (
ByVal hdc As LongByVal x As LongByVal y As Long, _ 
            
ByVal crColor As LongAs Long 

Private Sub Form_Load() 
    Me.AutoRedraw = 
True 
    Me.BackColor = vbWhite 
    
Call SetPixel(Me.hdc, 100, 100, vbBlue) 
    
Call SetPixel(Me.hdc, 100, 120, vbBlue) 
    
Call SetPixel(Me.hdc, 100, 140, vbBlue) 
    
Call SetPixel(Me.hdc, 100, 160, vbBlue) 

    
Call SetPixel(Me.hdc, 120, 100, vbRed) 
    
Call SetPixel(Me.hdc, 120, 120, vbRed) 
    
Call SetPixel(Me.hdc, 120, 140, vbRed) 
    
Call SetPixel(Me.hdc, 120, 160, vbRed) 
End Sub 
 


Coloration syntaxique automatique [AFCK]
       

çà devrait fonctionner...
@+
PCPT   [AFCK]
lundi 23 janvier 2006 à 00:08:50 | Re : créer ou afficher un point (pixel) sur l'écran ou la feuille

j5em3110

Merci beaucoup. Mais cela ne fonctionne pas

"ME" ne fonctionne pas!

VBA sous (Excel 2003) ne reconnait pas non plus la fonction "SetPixel".

La fonction n'est pas dans library! Est ce cela?
Si oui, est  il possible de télécharger une library?
lundi 23 janvier 2006 à 00:26:08 | Re : créer ou afficher un point (pixel) sur l'écran ou la feuille

pcpt

Administrateur CodeS-SourceS
Me en VB6 correspond à la Form.
essaie en remplaçant par le nom de ta UserForm (sans garantie)
si çà fonctionne dans le princpe, mais que la UserForm ne contient pas de hDC, pose une PictureBox et met le code pour cette Pic.

pour la librairie, gdi32 fait parti de Windows.....
logiquement les API sont utilisables par les macros mais regarde les sources... peut-être y a t'il des spécificités de déclarations...
++

lundi 23 janvier 2006 à 00:55:02 | Re : créer ou afficher un point (pixel) sur l'écran ou la feuille

j5em3110

merci

alors remplacement de "me" par UF1 (userform) ok
AUTOREDRAW ne fonctionne pas avec vba alors remplacer par DRAWBUFFER

exemple: uf1.drawbuffer = 170000 car  uf1.drawbuffer = true ne fonctionne pas car
apparement
erreur d'execution '380' Impossible de définire la propriété de drawbuffer.
 Valeur de propriété non valide.Entrez une valeur entre 16000 et 1048576.

A quoi correspond autoredraw en vb ou pour mon cas drawbuffer en vba ?

Autrement en appelant la fonction "setpixel" fonction pas
"erreur de compilation :argument non facultatif"
Que faut il faire??

Je te remercie pour tes infos bien utile. Je ne suis toujours pas sortie de l'auberge.*

cordialement j5em3110


lundi 23 janvier 2006 à 01:01:55 | Re : créer ou afficher un point (pixel) sur l'écran ou la feuille

pcpt

Administrateur CodeS-SourceS
autoredraw pour VB6 est un booléen.
c'est pour que la fenêtre survolant la Form ne l'efface pas. (exemple, un msgbox qui supprimerait alors ces points)

je ne connais pas VBA, mais une propriétés "DrawBuffer" ne m'inspirerait pas confiance pour ce cas....

argument non facultatif.... tu es certain de la syntaxe? cad la déclaration et les parenthèses?
si pas de parenthèse, pas de Call

bon courage...

lundi 23 janvier 2006 à 01:35:07 | Re : créer ou afficher un point (pixel) sur l'écran ou la feuille

j5em3110

Merci exact pas de call

Mais toujours un probleme (je me rapproche du but merci encore)
**********************************
dans la ligne --> 
SetPixel(UF1.hdc, 100, 100, vbBlue) = 1
"Erreur de comp : Membre de méthode ou de données introuvable" et met en surbrillance
la variable hdc pour me signaler que la est l'erreur
***************************************
SetPixel(UF1, 100, 100, vbBlue) = 1
il me detecte encore une erreure de compilation mais je seche
Je site :
"Un appel de fonction dans la partie gauche de l'affectation doit renvoyer Variant ou Object"
**************************************************
Quand je met hdc tout seul il rale et dit : erreure de compile ça je sais lol
mais aussi "Variable non définit"
**************************************************

Et au cas ou j'arriva à aller jusqu'a la fin de la parenthese pares le = il faut que je mette quoi au juste car j'ai mis 1 mais j'aurais pu mettre 2 car je croyais que je definisais n°d ecouleur.

Merci de bien vouloir essayer de m'aider

coordialement j5em3110
lundi 23 janvier 2006 à 01:46:43 | Re : créer ou afficher un point (pixel) sur l'écran ou la feuille

pcpt

Administrateur CodeS-SourceS
la couleur est le 4 paramètre
si tu veux récupérer une valeur, alors :


MaValeurLong = setpixel(MonDeviceContext, MapositionX, MaPositionY, MaCouleurLong)

cette valeur (MaValeurLong) sera la valeur la plus proche possible de MaCouleurLong.

mais une simple
SetPixel MonDC, x, y, MaCouleurLong
doit suffir....
(pas de parenthèse dans ce cas)

as-tu essayé dans une picturebox? au cas où la propriété hDC n'existe pas.....

toujours est-il que tu ne peux pas attribuer de valeur à une fonction, c'est l'inverse !!!
donc pas de MaFonction = Mavaleur


lundi 23 janvier 2006 à 02:24:05 | Re : créer ou afficher un point (pixel) sur l'écran ou la feuille

j5em3110

Alors j'ai trouver
comment on ecrit le truc mais je ne sais pas quoi en faire pour crée un créer un point ou pixel sur l'ecran ou dans une shape.

j'ai écrit dans le module:

*****************************************************
Option Explicit
Private Declare Function SetPixel Lib "gdi32" _
            (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, _
            ByVal crColor As Long) As Long
            Public MaValeurLong As Long
____________________________________________________________

Private Sub Form_Load()

MaValeurLong = SetPixel(10, 5, 5, 4)
 
end sub

_________________________________________________
Sub
toto()

Call Form_Load

End Sub
*********************************************************

Je recupere dans la variable  MaValeurLong  = -1 je ne sais pourquoi
Mais bon si cela peut m'aidé pour crée un point en coueur 4 je veux bien.


Merci de continuer si tu peux tu m'est d'une grande aide.

cordialement Jonathan 27 ans paris

lundi 23 janvier 2006 à 03:07:51 | Re : créer ou afficher un point (pixel) sur l'écran ou la feuille

pcpt

Administrateur CodeS-SourceS
tu récupères -1 parce que l'API te renvoie une erreur.
le HDC (Handle Device Context) est l'objet sur lequel tu veux dessiner.
donc ta Form ou une PICTURE que tu vas essayer (parce qu'on tourne en boucle là....)

or toi, tu dis à l'API d'aller faire ses points dans "10" qui ne veux rien dire en soit...

donc pose une PictureBox pour essayer, tu lui mets la propriété autoredraw à true (si çà existe en VBA)

et tu essayes par exemple
MaValeurLong = SetPixel(Picture1.hdc, 100, 100, 255)

MaValeurLong  devrait te renvoyer 255 et tu devrait avoir un point rouge... (code de 255)


1 2

Cette discussion est classée dans : créer, afficher, feuille, écran, pixel


Répondre à ce message

Sujets en rapport avec ce message

Afficher une feuille a l'écran [ par Rox74 ] Bonjour a tous,Je suis débutant en vba et il me manque du language vba pour pouvoir résoudre mes problmes donc je fais appel à vos lumières.Voila mon Capture de fenêtre minimisée [ par tdt63 ] Bonjour,Je cherche à réaliser un programme permettant d'enregistrer comme image le contenu d'une fenêtre, et cela sans jamais l'afficher à l'écran. Qu Afficher des infos a partir d'une feuille [ par YVO22 ] Bonjour a tousJ'ai crée une feuille dans laquelle je range des informations sous forme de base de données et ceci a partir d'une userform.J'ai crée un interface de recherche [ par ilhambousfiha ] Bonjour tout le monde,J ai une application qui consiste à créer un interface de recherche pour l utilisateur, je m 'explique:Je posséde une feuille de créer des classeurs excel en fonction des données d'une feuille. [ par sinxay ] Boujour,Je débute avec un peu de mal, mais j'ai déjà trouvé comment rassembler plusieurs classeurs excel indentiques sur une seule feuille.Mais biensu comment afficher une feuille excel [ par mythiac ] bonjour,j'ai un petit problème, tout con pour vous je pense, mais qui est bien présent pour moi:je désire que s'affiche par ma macro un onglet de mon création feuille via filtre - copie colle ligne dans nouvelle feuille suivant valeur d'une cellule d'une feuille référence [ par carom31 ] Bonjour à tous, Ma situation est la suivante: j'ai une feuille de référence avec plusieurs colonnes du type: [b]Référence Authors Year Title Source Problème pour la réalisation d'un macro VB sur excel [ par pierrecouture ] Bonjour, dans le cadre de mon stage de fin d'étude je travaille sur la mise en place d'un process de gestion et j'aurais besoin de créer des macro en Assistant Feuille de données [ par wtor ] Je cherche un assistant pour créer des feuilles de données (Ajout, Modification, Suppression, Recherche), et es que je peut créer un assistant pour cr Programme vba [ par psgman277 ] Bonjour, Voilà mon problème, Je travaille dans la comptabilité, et je souhaiterai créer un programme vba mais je suis débutant et je ne suis pas très


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,763 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales