Excel 2007 macro pour insert image

Résolu/Fermé
gillesdemev Messages postés 135 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 11 mai 2010 - 24 janv. 2009 à 04:56
Le Pingou Messages postés 12189 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 17 novembre 2024 - 26 janv. 2009 à 17:35
Bonjour,
L'insertion d'image avec une macro dans excel 2007 n'a pas la même réaction que excel 97
Cette macro en excel97 place les 2 images à peu près dans les cellules 16.2 et 16.5 en respectant .activate
En excel 2007 NON que ce soit avec activate ou avec Cells(x, y).Select même problème les images se supperposent toujours au même endroit ligne 5 entre les colonnes A et B


Quelqun a t'il une solution ou explication
Merci
Gilles

Public Sub afficher97()

Worksheets("feuil1").Cells(16, 2).Activate
image = "Caravaggio - GalleryPlayer [320x200].jpg"
ActiveSheet.Pictures.Insert(image).Select

Worksheets("feuil1").Cells(16, 5).Activate
image = "Hopper - GalleryPlayer [320x200].jpg"
ActiveSheet.Pictures.Insert(image).Select

End Sub
A voir également:

10 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
24 janv. 2009 à 09:37
bonjour

Tu peux essayer ainsi :
Public Sub afficher2007()
Dim image
    Worksheets("feuil1").Cells(16, 2).Activate
    image = "Caravaggio - GalleryPlayer [320x200].jpg"
    ActiveSheet.Pictures.Insert(image).Select
    Selection.Top = Cells(16, 2).Top
    Selection.Left = Cells(16, 2).Left

    Worksheets("feuil1").Cells(16, 5).Activate
    image = "Hopper - GalleryPlayer [320x200].jpg"
    ActiveSheet.Pictures.Insert(image).Select
    Selection.Top = Cells(16, 5).Top
    Selection.Left = Cells(16, 5).Left

End Sub
0
gillesdemev Messages postés 135 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 11 mai 2010 23
24 janv. 2009 à 11:40
Merci Gbinforme
J'ai une erreur 1004 (toujours 1004)
Qui me dit impossible de lire la propriété insert de la classe pictures
J'avoue que j'ai un peu de mal avec ces langages modernes.
Il y a peu de temps on me surnommait le dinosaure de l'informatique chez Alcatel. ça veut tout dire
C'est sympa de m'avoir proposé une solution
Gilles
0
Le Pingou Messages postés 12189 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 17 novembre 2024 1 449
24 janv. 2009 à 15:20
Bonjour,
Je pense qu'il faut que la variable "image" contienne l'adresse de l'image à insérer.
La ligne de code devrait-être de cette forme :
image = "D:\Documents and Settings\gillesdemev\ ........ \Caravaggio - GalleryPlayer [320x200]"
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
24 janv. 2009 à 15:56
bonjour Le Pingou,

Soit mettre le chemin complet comme tu l'as précisé, soit être positionné sur le bon répertoire :

cdir "C:\...."

bonjour gillesdemev,

Cette fonction doit donc te parler...

le dinosaure de l'informatique chez Alcatel. ça veut tout dire

C'est tout faux car tu es encore parmi nous et les dinosaures ne sont plus là !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gillesdemev Messages postés 135 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 11 mai 2010 23
24 janv. 2009 à 17:37
Merci à vous 2
L'image est bien trouvée car elle est insérée dans la feuille.
Pour mes essais les pics sont dans le même répertoire que le fichier Excel Alors que dans mon appli elles peuvent être ailleurs et donc dans ma variable j'ai le chemin complet
Le Principal problème c'est qu'elle s'empilent toutes l'une sur l'autre

Pour tout dire mon appli ne sert pas à grand chose
Exemple, je laisse Excel (par des random) choisir dans 'n' colonnes le menu que je vais manger et pour compliquer la chose j'affiche l'image du plat
Exemple colonne A les entrèes, B les viandes ou poisson etc .... c'est la bête qui vérifie le nombre de colonnes utilisées et dans chaque colonne le nombre d'item Tien je pourrais ajouter une colonne pour l'herbe grasse des prairies du jurassique

ça peut marcher aussi pour les vêtements: chausettes, chemises cravates futal ....
Aucun inérêt donc si ce n'est que m'obliger à réfléchir au lieu de m'ingurgiter des programmes télé débiles BEURK j'aime pas la télé
Merci encore à vous
Un dinosaure ravi
Aller j'y retourne

Ps: cdir ! ha que c'est bon
0
gillesdemev Messages postés 135 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 11 mai 2010 23
25 janv. 2009 à 19:14
J'ai une solution efficace.
J'ai viré excel 2007
L'interface est horripilant, si on fait enregistrer une macro ... Dans la Sub on ne retrouve pas toutes les commandes
par exemple justement insérer une image
Cohabitation entre 97 et 2007 ... douteuse
Fichiers .xlsx ? comportement étrange aussi
Bref, je ne voulais pas rester à la traîne mais là ...
Et encore je n'ai pas attaqué Access
Quand même, je garde mon double corps sans revenir au Z80 trop fort le papé !
Merci à vous
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
25 janv. 2009 à 22:00
bonjour

L'interface est horripilant,

Le changement d'habitude est difficile sans doute mais elle est adaptable et présente aussi des avantages.

si on fait enregistrer une macro ... Dans la Sub on ne retrouve pas toutes les commandes

Les commandes sur les objets sont ignorées effectivement mais par contre l'aide est plus structurée.

Cohabitation entre 97 et 2007 ... douteuse

Personnellement, entre 2002 et 2007 même lancés simultanément je n'ai pas de soucis...

Fichiers .xlsx ? comportement étrange aussi

Tu peux "enregistrer sous" puis "format 97-2003" sans problème.

Bref, je ne voulais pas rester à la traîne mais là ...Et encore je n'ai pas attaqué Access

Je ne te parlerai pas d'access car je n'ai que le pack familial.

Quand même, je garde mon double corps sans revenir au Z80 trop fort le papé !

Attention, ta machine ce n'est pas une Gordini il me semble qu'elle a plutôt double cœur ?
0
Le Pingou Messages postés 12189 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 17 novembre 2024 1 449
25 janv. 2009 à 23:05
Bonjour gillesdemev,
Eh bien je mets mon petit grain de sel par rapport à Access.
J'ai passé sans problème mes diverses applications Access de 97 à 2003.
Depuis mi-2008 j'ai le MSO 2007 et j'ai réalisée la même opération de 2003 sur 2007 sans problème.
A l'utilisation et aussi lors de modification d'une application je trouve que c'est très bien.
Il faut un peut de souplesse pour s'adapter comme le dit si bien gbinforme, mais à notre âge c'est un excellent exercice pour nos neurones.
Bonne semaine.

Salutations.
Jean-Pierre
0
gillesdemev Messages postés 135 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 11 mai 2010 23
26 janv. 2009 à 05:06
Gbinforme , Jean-Pierre
Je suis persuadé que vos propos sont plein de vérités et on a du mal (moi en tout cas) à changer d'habitude

Je vais passer ce sujet en résolu pour ne pas le laisser en cours .
Bien qu'il n'y ai pas encore de solution qui soit ressortie de nos échanges, ces considérations pleines de bon sens .

Merci les gars, je remonte 2007 , faut pas faiblir et se laisser abattre

Et chiche que sur mon Gordini, après le double corps (bien vu) je passe au turbo

Bonne semaine à vous
Gilles
0
Le Pingou Messages postés 12189 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 17 novembre 2024 1 449
26 janv. 2009 à 17:35
Bonjour,
En guise de fin, essayez la macro, de gbinforme, donc j'ai modifié les lignes 3 et supprimé la 8.
Ne serait-ce pas la solution !

Public Sub afficher2007()
Dim image
Worksheets("Feuil1").Select
image = "Caravaggio - GalleryPlayer [320x200].jpg"
ActiveSheet.Pictures.Insert(image).Select
Selection.Top = Cells(16, 2).Top
Selection.Left = Cells(16, 2).Left

image = "Hopper - GalleryPlayer [320x200].jpg"
ActiveSheet.Pictures.Insert(image).Select
Selection.Top = Cells(16, 5).Top
Selection.Left = Cells(16, 5).Left
End Sub
0