> 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
13,99 €Clé USB Sandisk Ultra 64 Go à double connectique USB 3.1 Type A et C à 13,99 €
Valable jusqu'au 20 Juin

Amazon fait une promotion sur la clé USB Sandisk Ultra 64 Go à double connectique USB 3.1 Type A et C qui passe à 13,99 € alors qu'on la trouve ailleurs à plus de 25 €. Cette clé USB  dispose d'un connecteur réversible USB Type C et d'un connecteur classique de type A. Grâce à elle, transférez en toute simplicité et rapidement (jusqu'à 150 Mo/s) vos fichiers entre vos smartphones, tablettes et ordinateurs. 


> Voir l'offre
18,62 €Switch Gigabit TP-Link 8 ports métal à 18,62 €
Valable jusqu'au 20 Juin

Amazon propose actuellement le switch Gigabit TP-Link TL-SG108 8 ports (10/100/1000) dans un boîtier métal à 18,62 €. On le trouve habituellement autour de 30 €. 


> Voir l'offre
84,25 €Disque Dur externe portable Western Digital My Passport 4 To USB 3.0 à 84,25 € livré
Valable jusqu'au 20 Juin

Amazon Espagne propose actuellement le disque dur externe portable Western Digital My Passport 4 To à 79,33 € (avec la TVA ajustée). Comptez 4,93 € pour la livraison en France, soit un total de 84,25 € livré alors qu'on le trouve ailleurs à partir de 100 €. Ce disque dur possède une connectique USB 3.0 pour des transferts plus rapides. Il est également compatible USB 2.0. Avec ses 4 To, vous serez tranquille pour emporter toutes vos données avec vous. 

Vous pouvez utiliser votre compte Amazon France sur Amazon Espagne et il n'y a pas de douane. Une très bonne affaire.


> 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