resolu : comment ajouter une image

Marti Marti

XLDnaute Occasionnel
Bonjour forum
Bonjour a tous et a toutes
SVP ..
J'ai trop essayer mais sans resultat
Comment svp faire pour que je puisse ajouter une image au diaporama ..ici l'image 4
Merci beaucoup d'avance pour l'aide

REMARQUE : j'ai posté ce sujet dans ce lien mais aucune reponse obtenue
comment ajouter une image : Excel - VBA

Cordialement
MARTI
 

Pièces jointes

  • comment ajouter une image.xls
    121 KB · Affichages: 66
Dernière édition:

job75

XLDnaute Barbatruc
Re : comment ajouter une image

Bonjour Marti Marti, Modeste geedee,

En attendant JB une solution dans le fichier joint.

Il faut préalablement créer l'image ActiveX et la nommer Photo4.

Ensuite fermez l'USF, créez (dans Module1) et lancez (Ctrl+A) cette macro :

Code:
Sub EncapsulerImage()
'Touches Ctrl+A pour lancer la macro
Dim NomImage$, NomPhoto$, s As Shape, fichier$
NomImage = InputBox("Nom de l'image à encapsuler :")
NomPhoto = InputBox("Nom de la photo (ActiveX) :")
Application.ScreenUpdating = False
On Error Resume Next
Set s = f.Shapes(NomImage)
fichier = ThisWorkbook.Path & "\" & s.Name & ".jpg"
s.CopyPicture
With f.ChartObjects.Add(0, 0, s.Width, s.Height).Chart
  .Paste
  .Export fichier, "JPG"
  .Parent.Delete
End With
f.OLEObjects(NomPhoto).Object.Picture = LoadPicture(fichier)
Kill fichier
Unload Userform1
auto_open 'relance le diaporama
End Sub
A+
 

Pièces jointes

  • comment ajouter une image(1).xls
    175.5 KB · Affichages: 57
Dernière édition:

Marti Marti

XLDnaute Occasionnel
Re : comment ajouter une image

Bonsoir job75
Je ne sais pas pourquoi j'ai pas pu ouvrir le fichier du post #3
Merci beaucoup d'avance de m'aider a voir où est le probleme
Amicalement
MARTI
 

Pièces jointes

  • 4.jpg
    4.jpg
    36.5 KB · Affichages: 72
  • 4.jpg
    4.jpg
    36.5 KB · Affichages: 68

job75

XLDnaute Barbatruc
Re : resolu : comment ajouter une image

Bonjour Marti Marti, le forum,

Avec cette solution la nouvelle image ActiveX (Photo4) est créée automatiquement :

Code:
Sub EncapsulerImage()
'Sélectionner l'image à encapsuler
'Touches Ctrl+A pour lancer la macro
If TypeName(Selection) = "Range" Then Exit Sub
Dim o As Object, fichier$
Set f = Sheets("Photos")
Application.ScreenUpdating = False
Set o = Selection
fichier = ThisWorkbook.Path & "\" & o.Name & ".jpg"
o.CopyPicture
With f.ChartObjects.Add(0, 0, o.Width, o.Height).Chart
  .Paste
  .Export fichier, "JPG"
  .Parent.Delete
End With
For Each o In f.OLEObjects
  If o.Name = "Photo" & f.OLEObjects.Count Then
    o.Select
    Selection.Copy
    o.TopLeftCell.Offset(1).Select
    ActiveSheet.Paste
    Selection.Name = "Photo" & f.OLEObjects.Count
    Selection.Object.Picture = LoadPicture(fichier)
    ActiveCell.Activate
    [A1].Copy: Application.CutCopyMode = 0 'vide le presse-papiers
    Exit For
  End If
Next
Kill fichier
auto_close
Application.OnTime 1, "auto_open" 'relance le diaporama
End Sub
C'est donc très simple : il suffit de sélectionner l'image à encapsuler.

Fichier (2).

Remarque 1 : l'image peut être créée pendant que le diaporama tourne.

Remarque 2 : la macro majHeure qui tourne en arrière-plan empêche de passer en Mode Création.

Pour y arriver il faut provisoirement la neutraliser en exécutant par exemple la macro auto_close.

Edit : ajouté [A1].Copy: Application.CutCopyMode = 0 'vide le presse-papiers

A+
 

Pièces jointes

  • comment ajouter une image(2).xls
    183 KB · Affichages: 47
Dernière édition:

Marti Marti

XLDnaute Occasionnel
Re : resolu : comment ajouter une image

Bonsoir job75
Mes excuses pour le retard de vous repondre j'etais absent pendant toute la journee
une superbe solution plus facile pour moi le debutant
merci 1000 fois pour votre aide on vous trouve toujours avec vos meilleurs solutions
amicalement
MARTI
 

job75

XLDnaute Barbatruc
Re : resolu : comment ajouter une image

Bonjour Marti Marti, le forum,

On peut traiter d'un coup un ensemble d'images :

Code:
Sub EncapsulerImage()
'Touches Ctrl+A pour lancer la macro
Dim image As Object, fichier$, o As Object
Set f = Sheets("Photos")
Application.ScreenUpdating = False
For Each image In f.Pictures
  If Not image.Name Like "Photo*" And Not image.Name Like "* OK" Then
    fichier = ThisWorkbook.Path & "\" & image.Name & ".jpg"
    image.CopyPicture
    With f.ChartObjects.Add(0, 0, image.Width, image.Height).Chart
      .Paste
      .Export fichier, "JPG"
      .Parent.Delete
    End With
    For Each o In f.OLEObjects
      If o.Name = "Photo" & f.OLEObjects.Count Then
        o.Select
        Selection.Copy
        o.TopLeftCell.Offset(1).Select
        ActiveSheet.Paste
        Selection.Name = "Photo" & f.OLEObjects.Count
        Selection.Object.Picture = LoadPicture(fichier)
        image.Name = image.Name & " OK" 'repérage
        Exit For
      End If
    Next o
    Kill fichier
  End If
Next image
ActiveCell.Activate
[A1].Copy: Application.CutCopyMode = 0 'vide le presse-papiers
auto_close
Application.OnTime 1, "auto_open" 'relance le diaporama
End Sub
Il n'y a plus rien à faire, juste lancer la macro.

Les images traitées sont repérées par "OK" afin d'être ignorées ensuite.

Fichier (3).

Edit : si Ctrl+A ne fonctionne pas lancer par l'onglet DÉVELOPPEUR => Macros.

On peut aussi utiliser un bouton, fichier (3 bis).

Bonne journée.
 

Pièces jointes

  • comment ajouter une image(3).xls
    188.5 KB · Affichages: 57
  • comment ajouter une image(3 bis).xls
    189 KB · Affichages: 51
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 485
Messages
2 088 815
Membres
103 971
dernier inscrit
abdazee