> 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
38,00 €Alimentation EVGA de 600W (80Plus) à 38 €
Valable jusqu'au 18 Juin

Amazon fait une promotion sur l'alimentation EVGA 600 W1 - 600W qui passe à 38 € livrée alors qu'on la trouve ailleurs autour de 50 €. Cette alimentation de qualité délivre 600W et est certifiée 80Plus. Garantie de 3 ans.


> Voir l'offre
10,99 €Clé USB 3.0 Sandisk Ultra 64 Go à 10,99 €
Valable jusqu'au 19 Juin

Amazon propose la clé USB Sandisk Ultra d'une capacité de 64 Go qui passe à 10,99 €. Cette clé USB 3.0 est compatible USB 2.0 et offre de bons débits d'environ 100 Mo/s en lecture et en écriture. Le connecteur est rétractable pour éviter qu'il prenne la poussière.


> Voir l'offre
49,90 €Routeur TP-Link Archer AX10 WiFi 6 à 49,90 €
Valable jusqu'au 18 Juin

Amazon fait une promotion sur le routeur TP-Link Archer AX10 WiFi 6 qui passe à 49,90 € au lieu de 80 €. La livraison est gratuite. L’Archer AX10 de TP-Link embarque la technologie WiFi 6 (802.11ax) qui permet de passer à la vitesse supérieure (1.5 Gbps) tout en étant rétro-compatible avec les normes WiFi 802.11a/b/g/n/ac. Doté de 4 antennes Wi-Fi et capable de prendre en charge la technologie 1024 QAM et les canaux 160 MHz, l'Archer AX10 est aussi pourvu d'une prise WAN 1 GbE et de 4 ports Ethernet Gigabit. Les nombreux appareils connectés peuvent ainsi bénéficier de la meilleure connexion possible en toute fluidité.


> 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