Bonjours les gens! :lol:
Ma question porte sur l'Objet OLE "image Bitmap"!:?
Est-il possible d'initialiser cet objet ? c'est à dire, lui mettre une image Bmp par defaut ?
merci d'avance pour votre aide!!;)
Version imprimable
Bonjours les gens! :lol:
Ma question porte sur l'Objet OLE "image Bitmap"!:?
Est-il possible d'initialiser cet objet ? c'est à dire, lui mettre une image Bmp par defaut ?
merci d'avance pour votre aide!!;)
De mémoire :
L'objet OLE image bmp va garder en mémoire son image à la fermeture du classeur et la retrouver à la prochaine ouverture
Quand tu es sur l'objet ouvert : regarde bien la boite d'outils : tu y trouveras un onglet edition
Si tu ouvres une image existante (depuis un outil de visualisation d'images externe, que tu copies (mets en mémoire) tout ou partie de cette image et qu'en revenant dans Excel, tu fais Edition===>>Coller, le tour est joué, pardi...
(Je ne te réponds là, une fois de plus, que de mémoire , en "aveugle", mais ce devrait être celà...)
j'ai du mal à te suivre (ne m'en veux pas! :roll: )
Bon quand j'insere l'objet "image Bitmap" il est vierge! j'aimerai quand l'utilisateur ouvre la feuille de dialogue (dialogue microsoft excel 5.0) l'objet doit pouvoir etre préalablement charger selon les choix que l'utilisateur aura fait en amont!
Exemple: il sélection sur une Userform dans une Combobox le choix du fond de l'image appelé 'truf' , ensuite il valide, la feuille de dialogue microsoft ... s'ouvre avec l'objet 'image Bitmap' non vierge mais avec le font choisi c'est à dire le font 'truf'!! ;) (vous avez compris tous ce charabia? :lol:)
Donc dans cette situation es possible de le faire?
Mais (si ma mémoire est bonne)....
Ta "boite de choix de fichier" est déjà toute faite... (onglet Fichier de l'objet OLE Image Bitmap ...)
Si ma mémoire ne me fait pas défaut, donc, où est le problème ?
re tous le monde
j'aimerai savoir comment peut-on initiliser un objet ole image bitmap avec les image en format bmp?
Comment peut on enregistrer l'image de ce meme objet en forma 'bmp' ?
Merci beaucoup ;)
1) En donnant par exemple à ton objet OLE le nom du chemin complet de ton fichier image...
2) en utilisant Fichier ==> Sauvegarder de ton objet OLE, entre autres choses également possibles !
Mais je suis étonné : y a-t-il quelqu'un connaissant le traitement des images sous VBA (j'ai cru comprendre que oui, quand même). Ils ont là l'occasion de dire "présent"...;)
Etes-vous certains de parler de la même chose ?
Je ne le crois pas...
revenons donc au point principal :
gootsu a écrit :
Cet objet n'a rien à voir avec un contrôle image ou une image classique insérée sur la feuille...;)Citation:
Ma question porte sur l'Objet OLE "image Bitmap"!
Des messages ont dû etre effacé entre temps, parce que je comprend pas ta question!! ;)Citation:
Envoyé par jmfmarques
pour ton point n°1, je pense que c'est bon!
Mais le point n°2, je ne voi pas "Fichier ==> Sauvegarder de ton objet OLE"!
Quand je clic sur mon objet OLE il m'ouvre "paint", en suite en fermant "paint", de retour dans Excel, les modifications réalisées apparaissent sur le dessin, et c'est en cliquant sur le bouton "enregistrer" de ma BdD que je veux qu'il enregistre le nouveau dessin! Et je ne voix pas comment faire!:cry:
Merci JmFmarques
Ton objet OLE devrait normalement être assorti des onglets de Paint, parmi lesquels les onglets habituels Fichier, ouvrir, sauvegarder, etc...
Si tel n'est pas le cas, choisis un objet OLE plus complet (tu en as d'autres) pointant également vers Paint.
Si tu t'acharnes un peu, tu y parviendras, gootsu.
Je te confesse que je n'ai jamais autant regretté de ne pas être possesseur de VBA. J'aurais vraiment aimé faire ce bout de chemin avec toi, car il m'intéresse gandement.
Je vais essayer en aveugle encore une fois :
En cliquant sur ton image, tu devrais avoir 2 options : ouvrir et modifier
L'option modifier ne te conduit pas à la présence de l'onglet fichier mais l'option ouvrir y conduit
Une autre piste : créer un userform dédié, userform avec une propriété Picture.
Essaye ensuite d'utiliser l'onglet Edition ===>> sélectionner tout ====>>> copier. L'image de ton objet OLE sera ainsi mise dans le presse papier.
Que faire ensuite ? Dire par exemple que la propriété Picture de ton autre userform est égale à ce qui se trouve dans ton presse-papier, ce qui devrait ressembler (à vérifier sous VBA) à UserFormmachin.picture = Clipboard.Getdata
Si maintenant tu veux également sauvegarder sur ton document l'image, tu peux également la mettre sur une autre feuille d'excel, comme simple image (toujours en utilisant le presse-papier). Elle sera là lors de la prochaine ouverture et tu pourras faire l'inverse : la mettre, elle, dans le presse-papier et coller le contenu du presse-papier dans ton objet OLE.
Je suis sur qu'il existe plus simple et plus direct sous VBA, mais une autre fois, ne peut agir (sans VBA) qu'en infirme...
Si tu ne reçois pas d'azutre aide des pros de VBA, tente alors de trouver le chemin vers lequel je te guide comme je peux, en aveugle hélàs...
Ami gootsu,
Une autre idée :
Quand tu crées ton objet OLE, tu devrais normalement pouvoir choisir d'ouvrir un fichier image de ton choix, puis de lier ton objet OLE à ce fichier.
Si tu as (et je pense que oui s'agissant d'un objet OLE) cette option là, utilise-la donc. Les modifications apportées seront enregistrées dans le ficher et retrouvées depuis ce ficheir à l'utilsation suivante.
Essaye et mets-y tout ton coeur.
Essaie ça
Maintenant, pour sélectionner l'image dans un répertoire... Tu dis si tu as besoin ;)Code:
1
2
3
4
5
6
7
8
9 Sub RemplacerLimage() Dim NomDeLimage NomDeLimage = D:\clipart\Animaux\Goupil.gif For Each Limage In ActiveDocument.Shapes Limage.ShapeRange.Delete 'On efface l'ancienne image Next Selection.InlineShapes.AddOLEObject ClassType:="MSPhotoEd.3", FileName:= _ NomDeLimage, LinkToFile:=False End Sub
Merci mais ça fonctionne pas! :roll:
parce que ma version d'excel ne reconnait pas :
je tiens à rappeler que je suis sur une "boite de dialogue microsoft excel 5.0" et que je souhaiterais, dans un object OLE ("paint.picture") ou autrement dit une "image bitmap", afficher une image de mon choix et l'enregistrer aprés modification!Code:ActiveDocument.Shapes
Enfin bon !
Aidé Moi :cry:
Justement mon code ne fonctionne pas!Citation:
Envoyé par jmfmarques
pour vous éclairer voici mon code :
ça ne marche pas!:(Code:
1
2
3
4
5
6 DialogSheets("Contrôle").Activate 'Ma BdD Microsoft Excel 5.0 'j'ajoute l'objet OLE initialisé avec le dessin désiré! ActiveSheet.OLEObjects.Add(ClassType:="Paint.picture", _ Filename:="C:\Documents and Settings\gootsu\Mes documents\Mes images\test.bmp", _ Link:=False, DisplayAsIcon:=False).Select Selection.Name = MonImage
voila ou j'en suis!:lol:Citation:
erreur d'exécution '1004':
impossible de lire la propriété Add de la classe OLEObjects
quand j'enlève la ligne en rouge il m'insert l'objet mais il n'y as pas le dessin par defaut!Code:
1
2
3
4
5
6 DialogSheets("Contrôle").Activate 'Ma BdD Microsoft Excel 5.0 'j'ajoute l'objet OLE initialisé avec le dessin désiré! ActiveSheet.OLEObjects.Add(ClassType:="Paint.picture", _ Filename:="C:\Documents and Settings\gootsu\Mes documents\Mes images\test.bmp", _ Link:=False, DisplayAsIcon:=False).Select Selection.Name = MonImage
je sais qu'il faut soit le classtype soit filename il ne prend en compte que l'un des deux mais alors pourquoi quand j'enlève juste la ligne bleu cela ne marche pas?
As-tu essayé d'enregistrer la macro en faisant ce que tu veux ? Je pense que oui... Alors mets le code tel qu'il est créé ;)
quand j'enregistre une macro il ne m'insert que l'objet mais il n'y a pas de moyen pour lui mettre d'image par defaut! (le dessin par defaut n'est jamais le meme selon le choix de l'utilisateur) ;)Citation:
Envoyé par ouskel'n'or
j'ai essayé d'effecutuer quelque recherche sur paint ... mais à priori MSPaint ne serai pas une apllication OLE Automation.. et donc on ne peu pas la piloter en OLE..?
Bonjour Bbil;Citation:
et donc on ne peu pas la piloter en OLE..?
Il ne s'agit pas de la piloter en OLE mais de la mettre en objet OLE et de s'en servir directement, comme on pourrait se servir directement de Word en objet OLE, ....
Insère donc un objet OLE (celà ne se fait pas dynamiquement mais directement) et tu comprendras de quoi il s'agit .
Je suis vraiment désespéré ....
Obtenu en enregistrant la macro (VBA 97)
Ça ne règle pas le problème avec Excel 5, mais j'attends toujours le code, gootsu ;)Code:
1
2
3 Selection.InlineShapes.AddOLEObject ClassType:="Paint.Picture", FileName:= _ "D:\clipart\windows\Versaille - Statue.bmp", LinkToFile:=False, _ DisplayAsIcon:=False
Il est possible que ce ne soit qu'une histoire de changement de syntaxe entre
Pour certaines méthodes, le type de l'argument est ignoré. Peut-être en est-il ainsi sur Excel5.Code:
1
2
3
4
5 ActiveSheet.OLEObjects.Add "Paint.picture", "C:\Documents and _ Settings\gootsu\Mes documents\Mes images\test.bmp", False, False 'ou bien ActiveSheet.OLEObjects.Add ("Paint.picture", "C:\Documents and _ Settings\gootsu\Mes documents\Mes images\test.bmp", False, False)
Si tu peux tester ça... ;)
Autre problème sur Excel 5 : Es-tu certain qu'il supporte les noms de répertoires ou de fichiers contenant des espaces, les noms de répertoires ou de fichiers comportant + de Huit caractères ?
Fais le test en mettant ton code y compris ta ligne rouge ;)
non ni l'une ni l'autre! :?Citation:
Il est possible que ce ne soit qu'une histoire de changement de syntaxe entre
Code :
ActiveSheet.OLEObjects.Add "Paint.picture", "C:\Documents and _
Settings\gootsu\Mes documents\Mes images\test.bmp", False, False
'ou bien
ActiveSheet.OLEObjects.Add ("Paint.picture", "C:\Documents and _
Settings\gootsu\Mes documents\Mes images\test.bmp", False, False)
Pour certaines méthodes, le type de l'argument est ignoré. Peut-être en est-il ainsi sur Excel5.
Si tu peux tester ça...
pas bête! je vais y jeter un coup d'oeil!! ;)Citation:
Envoyé par ouskel'n'or
le problème c'est que dans l'aide ils me disent :
Citation:
ClassType Argument de type Variant facultatif. Vous devez spécifier soit l'argument ClassType, soit l'argument FileName. Chaîne qui contient l'identificateur de programmation pour que l'objet soit créé. Si l'argument ClassType est spécifié, les arguments FileName et Link sont ignorés.
FileName Argument de type Variant facultatif. Vous devez spécifier soit l'argument ClassType, soit l'argument FileName. Chaîne qui indique le fichier à utiliser pour créer l'objet OLE.
Alors quant à choisir, ignore l'argument "ClassType:=" et mets le chemin et le nom du fichier. Mais je si ça ne fonctionne pas, essaie en ignorant le type de l'argument ( Filename:= ) et sépare tes arguments par une virgule, avec ou sans paranthèses
A TOUT HASARD ! N'ayant pas Excel 5, nous ne pouvons que supputer ;)
Compte tenu du fait que ClassType est facultatif, je pense que la syntaxe est bien
Filename:=NomDuFichier
Par contre, les parenthèses ???
ce qu'il me fait : voir image jointeCode:
1
2
3 DialogSheets("Contrôle").Activate ActiveSheet.OLEObjects.Add Filename:="P:\CKxx.bmp", _ Link:=False, DisplayAsIcon:=False
quand je lance l'image au lieu d'ouvrir paint il m'ouvre ce gestionnaire (voir pff2)
ça! sa fonctionne! le problème c'est que c'est une page vierge et j'aurai aimé qu'elle ne le soit pas!! ;)Code:
1
2
3 DialogSheets("Contrôle").Activate ActiveSheet.OLEObjects.Add ClassType:="Paint.picture", Link:=False, _ DisplayAsIcon:=False
Bon j'ai essayé l'idée à l'aveugle ( :mouarf: ...) et encore une fois c'est une bonne idée..Citation:
Envoyé par jmfmarques
pour le test ...
au préalable prépare avec MSPaint une image bipMap...
Rajoute une "boite de dialogue microsoft Excel 5" avec un clic droit sur les onglets excel du bas...
puis dans cette boite tu insere l'objet Image en gardant le lien au fichier , menu Insertion /Objet / Onglet creer 0 partir du fichier en prenant bien soin de cocher la case Lier au fichier..
tiens en passant la même chose par le code d'insertion dans la boite de dialogue
ensuite crée une procédure (dans un module..)Code:
1
2
3
4 sheets("Dialogue1").OLEObjects.Add(Filename:= _ "D:\Donnees\monImage.bmp", Link:=True, _ DisplayAsIcon:=False).Select
affecte cette macro à ton objet OLE image..Code:
1
2
3 Sub MacroEdition() Selection.Verb End Sub
et voila ... si tu exécute la boite de dialogue .. lorsque tu clique sur l'image.. MSPaint s'ouvre... tu peu faire tes modificaitons ... puis à la sortie de MSPaint .. tu sauve.. et ton fichier image est mis à jour..
;)
Désolé mais sans Excel5...
As-tu accès à la collection d'objet ShapeRange ?
c'est pas excel5 ousk' .. c'est une boite de dialogue Excel 5 .. rajoute une feuille à ton classeur mais au lieu de choisir feuille de calcul sélectionne "boite de dialogue Excel 5.."Citation:
Envoyé par ouskel'n'or
Ok, merci bbil. En fait, comme j'avais le code sous Word, j'étais resté sous word. Je verrai ça avec Excel mais... plus tard.
Bon app
bbil:
Je te jure que c'est ce que j'ai fait depuis le début et ça na marche pas!
quoi que je crois que la seul chose que j'ai pas faite c'est de mettre link à true avec filename!!
attend je vais faire comme ça! parce que je viens d'y arriver mais pas toute à fait de cette manière!
c'est à dire :
j'ai mis l'extention de l'image par defaut que je souhaite à (*.dib)
ensuite j'ai tapez le code suivant :
et j'ai ajouter la macro :Code:
1
2
3 DialogSheets("Contrôle").Activate ActiveSheet.OLEObjects.Add Filename:="P:\gootsu.dib", Link:=False, _ DisplayAsIcon:=False
et le tour et jouer comme ça, sa marche! ;)Code:Selection.Verb verb:=xlOpen
mais je prefèrerais au format Bitmap donc je vais tester ton link:=true et :resolu:
bbil ;) tu va me prendre pour un fou! :lol:
mais chez moi ça ouvre "Nero photoSnap viewer"
et avant d'etre lancer il me met un message d'erreur?
peut etre que c'est une histoire de "logiciel par defaut" :?
Bonne app
j'ai effectivement "nero viewer" pour les images bmp!
j'ai changer et j'ai mis "paint" maintenant il m'ouvre paint mais toujours le message d'erreur!
je n'ai plus le message d'erreur mais il me reste un problème dans la methode de bbil, contrairement à la mienne, dans l'object OLE il y a un logo et non le dessin!! de plus je veux enegistrer le dessin obtenu dans excel et non dans paint et dans les configurations actuel il me demande d'enregistrer quand je ferme paint!
Voila ma triste vie (lol) :lol:
A plus, je reste à votre écoute!;)
Désolé,J'ai pas (vba97) :cry:Citation:
Envoyé par bbil
Comment as tu coller ton objet ole...
tu n'as pas coché l'icone afficher sous forme d'icone... le code correspondant est :
;)Code:
1
2DisplayAsIcon:=False
....................................;)Citation:
Envoyé par gootsu
je t'assure que non! displayicone est bien a false!!
heu !! enfin je crois :roll:
ouvre les 8O :mouarf:Citation:
Envoyé par gootsu