> 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
69,99 €Webcam Logitech HD Pro C920 Refresh à 69,99 €
Valable jusqu'au 03 Août

Cdiscount propose actuellement la webcam Logitech HD Pro C920 Refresh à 69,99 € alors qu'on la trouve ailleurs à partir de 90 €. La livraison est gratuite. Cette webcam avec micro intégré permet de faire des appels vidéos et des enregistrements en Full HD 1080p. La mise au point se fait automatiquement sur 20 paliers. 


> Voir l'offre
184,99 €Imprimante 3D Creality Ender 3 v2 à 184,99 € (stock Europe) avec le code TPCROS
Valable jusqu'au 03 Août

TomTop fait une belle promotion sur la toute dernière imprimante 3D Creality Ender 3 v2 à 184,99 € avec le code TPCROS On la trouve ailleurs autour de 180 €. L'imprimante est expédiée depuis un stock Europe (en Allemagne). Elle sera donc rapide et vous êtes sûr de ne pas avoir de douane. 

La Creality Ender 3 v2 est l'une des machines les plus populaires actuellement sur le marché. Et pour cause. Elle dispose d'un volume d’impression de 220 x 220 x 250 mm, est équipée d'un plateau chauffant inspiré du BuildTak, d'un nouvel écran LCD 4.3 pouces et offre des fonctionnalités pratiques comme la reprise de l'impression après une coupure de courant ou le conduit pour le filament étroit. L'imprimante 3D est facile à assembler et le calibrage est aisé grâce aux gros boutons. 


> Voir l'offre
28,04 €Support écran PC / TV pivotant sur pied (26 à 55 pouces, max 45 kg) à 28,04 €
Valable jusqu'au 03 Août

Amazon propose actuellement le support écran PC / TV pivotant sur pied Bontec à 28,04 € seulement grâce à un coupon de réduction à activer sur la page du produit. Ce support est adapté aux écrans plats de 26 à 55 pouces LED, LCD et PLASMA à compatibilité VESA de 100x100 jusqu'à 400x400.  Il supporte jusqu'à 45Kg, est régable en hauteur et cache les câbles disgracieux à l'arrière. Vous pouvez le mettre par exemple sur un meuble pour surélever votre TV ou votre PC (et mettre une enceinte dessous ?) sans avoir besoin de percer le mur.


> 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