> Tous les forums > Forum Bureautique
 Code VBA pour coller image du presse-papier ?Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
ferrand
  Posté le 11/05/2010 @ 20:08 
Aller en bas de la page 
Astucien

Bonsoir à tous,

Une petite question, qui correspond en fait à l'utilisation de l'appareil photo dans Excel en programmation VBA.

Lorsqu'on sélectionne une plage de cellules et qu'on clique sur l'appareil photo, la plage est copiée sous forme d'image dans le presse-papier. On clique ensuite à un autre emplacement ou sur une autre feuille, l'image est collée.

plage.CopyPicture est le code qui permet de réaliser la copie. Ne parvenant pas à écrire un code qui effectue le collage, j'ai donc enregistré une macro de ce type d'opération. La ligne de code correspondant au collage est :

feuille.Pictures.Paste

L'utilisation de cette syntaxe déclenche elle aussi une erreur 1004. Si quelqu'un peut m'expliquer comment effectuer ce collage en VBA... Merci à tous.

[NB: j'ai adopté une solution de contournement pour ce que je recherchais mais j'aimerais bien comprendre.]

Publicité
Marmotte18
 Posté le 12/05/2010 à 06:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour ferrand,

Je ne sais pas où se trouve ton "appareil photo".

Dans l'aide VBA, on y trouve entre autres :

Cet exemple montre comment copier dans le Presse-papiers une image d'écran des cellules A1 à D4 contenues dans la feuille Sheet1, puis coller l'image en mode point ainsi obtenue à un autre emplacement de la feuille Sheet1.

Worksheets("Sheet1").Range("A1:D4").CopyPicture xlScreen, xlBitmap
Worksheets("Sheet1").Paste _
Destination:=Worksheets("Sheet1").Range("E6")

Je doute que ceci puisse t'aider à quelque chose mais sait-on jamais.



Modifié par Marmotte18 le 12/05/2010 06:20
ferrand
 Posté le 12/05/2010 à 10:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour Marmotte18 et merci pour ta suggestion,

Je doute un peu aussi. Pas de problème pour la première ligne ; la seconde, vu le nombre d'essais que j'ai fait, je serais étonné de ne pas l'avoir essayé, mais soit-on jamais, en effet !

J'ai eu utilisé pourtant ce procédé dans le passé (c'était sous Excel5 et les Userforms n'existaient pas encore) pour afficher des messages à l'écran. J'ai sans doute encore des fichiers de cette époque sur vieilles disquettes (mais à 10000 km de moi!)

Je te tiens au courant de mes essais. Bonne journée.

galopin01
 Posté le 12/05/2010 à 10:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Sorry, je modifie mes propres erreurs !!!

Je n'ai pas trop le temps de travailler ce sujet aujourd'hui, mais tu devrais pouvoir t'en tirer avec quelque chose comme :

Bien sur il est supposé que la forme existe déjà...

La forme étant un objet "image" tirée de la Boite d'outils Dessin

ActiveSheet.Shapes("Image 15").DrawingObject.Formula = "Feuil2!$A$1:$H$10"

ou :

ActiveSheet.Shapes("Image 16").OLEFormat.Object.Formula = "Feuil2!$C$1:$J$12"

Ces deux syntaxes marchent très bien sous 2003...

Sinon si la Forme n'existe pas encore c'est plus compliqué évidemment il faut passer par une création d'image bidon et récupérer son nom...

A+



Modifié par galopin01 le 12/05/2010 11:27
ferrand
 Posté le 12/05/2010 à 12:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Galopin, merci de tes suggestions, cela me servira par ailleurs (et ça recoupait partiellement certains de mes essais) ... Quant aux erreurs ? Pas eu le temps de les voir...

L'objet créé par la méthode CopyPicture ne semble pas répondre aux manipulations invoquant les collections Shapes ou OLEObjects. Je n'ai pu le faire réagir qu'à la collection Pictures (à moins que ma syntaxe n'ait pas été correcte pour les autres collections, je ferais des essais ailleurs, sur mon classeur j'ai failli détruire des boutons au passage...)

Marmotte18, merci et bravo à toi . J'aurais quasiment juré avoir déjà essayé la syntaxe que tu proposais, et pourtant ! Elle fonctionne ! Il m'a fallu tâtonner encore un peu pour affecter l'objet à une variable (VBA refusait l'affectation directe à la création et me plantait même d'autres procédures tant que la ligne de code était présente). J'ai obtenu l'affectation en me référant à la collection Pictures et donc pu détruire aisément l'objet après l'avoir créé.

Merci de votre collaboration. Je mets donc le sujet en résolu.

A une prochaine...

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
75,99 €Boîtier Fractal Design Define Mini C à 75,99 €
Valable jusqu'au 10 Mai

RueDuCommerce propose actuellement l'excellent boîter moyen tour Fractal Design Define Mini C à 75,99 € alors qu'on le trouve ailleurs à plus de 99 €. Le boitier PC Define Mini C est une plateforme conçue pour délivrer la l'une des meilleures performances de refroidissement et de silence.


> Voir l'offre
89,99 €Caméra de sécurité connectée Blink Outdoor à 89,99 €
Valable jusqu'au 07 Mai

Amazon fait une belle promotion sur sa caméra de sécurité connectée Blink Outdoor qui passe à 89,99 € livrée gratuitement au lieu de 120 € habituellement. Gardez l'esprit tranquille avec cette caméra polyvalente sans fil pour l'extérieur, dotée d'une autonomie de 2 ans (piles au lithium fournies), d’un système audio bidirectionnel, de la détection de mouvements personnalisable, de la vision nocturne infrarouge et de l’enregistrement en direct en Full HD 1080p dans le cloud (via un abonnement) ou en local (en branchant directement un périphérique de stockage USB sur la base de synchronisation fournie).

Cette caméra est accompagnée d'un module de synchronisation (avec votre réseau WiFi) et fonctionne directement. Notez que les lots de plusieurs caméras sont également en promotion : 2 caméras à 164,99 € (82,49 € par caméra), 3 caméras à 224,99 € (74,99 € / caméra) et 4 caméras à 284,99 € (71,25 € / caméra).


> Voir l'offre
22,94 €Hub Aukey 7 Ports USB 3.0 dont 3 ports de recharge à 22,94 € avec le code YJJME74X
Valable jusqu'au 08 Mai

Amazon fait une offre éclair sur le Hub Aukey qui dispose de 7 Ports USB 3.0 dont 3 ports de recharge à 22,94 € grâce au code promo YJJME74X. Avec lui, vous pourrez brancher jusqu'à 4 périphériques USB 3.0 sur votre ordinateurs. 3 ports supplémentaires délivrant 2,4A vous permettront de recharger rapidement vos appareils mobiles.


> Voir l'offre

Sujets relatifs
Effacer définitivement le contenu du presse papier
raccourci clavier pour insertion image scanner word 2013
Copier & Coller une image dans Word
meme code pour toutes les feuilles du classeur
mémoriser une MsgBox dans le presse-papier
Macro pour "ombrer" une image
Rond noir pour un copier/coller
comment coller une image dans le corps d'un messag
impossible de fixer le presse papier
Créer un code imputbox ou autre pour décompter
Plus de sujets relatifs à Code VBA pour coller image du presse-papier ?
 > Tous les forums > Forum Bureautique