Insérer des photos rapidement

momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour
Nouvelle arrivée j ai certaines idées pr me faciliter mon travail mais impossible de les mettre en place car le monde des VBA et macro est inconnu pr moi. Les tuto ne m aide pas vraiment.
Je travaille sur Excel 2016 et je voudrais insérer une dizaine de photos dans des cellules rapidement. Ces photos se trouvent dans un sous dossier dossier.
Arborescence:
Dossier nom prénom
> dossier admi > bilan (Excel)
> dossier photos> bilan (jpeg)
Y a t il la possibilité de faire un lien rapide entre mon bilan Excel et les photos en jpeg

Je sais pas si je suis bien claire...
Merci d avance

Comment pourrais je me former rapidement à cela pour réaliser des tâches quotidiennes?

Merciii
A voir également:

14 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
1
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour
Alors j'ai ouvert le doc
Le principe est la. Merci
Que dois je faire maintenant? copier la macro dans mon doc de base excel pour l'avoir à chaque fois que je l'utilise?
Est ce possible de choisir les photos et les emplacements précis ?
Merci par avance!
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Voici un autre exemple à adapter:

http://www.cjoint.com/c/GAbiOGQ0JkQ
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
Merci encore, celle la correspond mieux car je peux choisir mes photos.
J'ai vu comment changer le chemin pour accéder à mon dossier photos source.

Mais maintenant, comment faire pour que cette macro soit dans mon doc excel perso de base, (qui est un modèle que j'utilise avec chaque nouveau patient lors de mon évaluation), et que je puisse utiliser sur plusieurs feuilles et dans les cellules spécifiques...
Sachant que j'ai déjà une macro qu'on m'avait faite à "l’intérieur" pour une autre manip...

Je sais pas si je suis bien claire, je ne m'y connais pas vraiment.
Je ne sais pas quels éléments supplémentaire te fournir.

Merci bcp pr ton aide
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Tu mets ce code dans toutes les feuilles concernées en les sélectionnant quand tu es dans l’Éditeur en haut à gauche :

Option Explicit
Dim chemin, Var As Variant
Dim position, largeur, hauteur, ratio, Ligne, Colonne
Dim img As Object
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("A1:Z2000")) Is Nothing Then 'a adapter
position = Target.Address
Ligne = Target.Row
Colonne = Target.Column
position = Replace(position, "$", "")
ImportImages
End If
End Sub
Sub ImportImages()
   Dim oPict As New stdole.StdPicture
    ChDir "C:\Users\Le Pïvert\Pictures" 'adapter chemin dossier à ouvrir
  chemin = Application.GetOpenFilename
  If chemin = False Then Exit Sub 'annulation
  hauteur = 100 'a adapter la hauteur de l'image
 Set oPict = stdole.LoadPicture(chemin)
 ratio = oPict.Width / oPict.Height
If oPict.Height < oPict.Width Then 'mode paysage
largeur = hauteur * ratio
Else
largeur = hauteur * ratio
End If
     Columns(Colonne).ColumnWidth = largeur / 5.5
     Rows(Ligne & ":" & Ligne).RowHeight = hauteur
  ActiveSheet.Pictures.Insert(chemin).Select
  Var = Selection.Name
  Selection.ShapeRange.LockAspectRatio = msoFalse
  With ActiveSheet.Shapes(Var)
    .Top = Range(position).Top
    .Left = Range(position).Left
    .Height = hauteur
    .Width = largeur
     End With
     End Sub


Je n'ai pas mis le code de suppression par clic droit, a toi de voir?
@+ Le Pivert
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Merciii encooore
J ai changé le chemin, et il faudra que je le mette à jour à chaque fois dc, mais Ca m'écourte un peu la manip.
Merci bcp
Après essai, voila ou se trouve mon nouveau questionnement, ca s'arrete à cette ligne...
A cause de ma cellule peut etre?

Dim oPict As New stdole.StdPicture
ChDir "C:\Users\Myriam BEN HADJ ALI\Pictures\Camera Roll" 'adapter chemin dossier à ouvrir
chemin = Application.GetOpenFilename
If chemin = False Then Exit Sub 'annulation
hauteur = 100 'a adapter la hauteur de l'image
Set oPict = stdole.LoadPicture(chemin)
ratio = oPict.Width / oPict.Height
If oPict.Height < oPict.Width Then 'mode paysage
largeur = hauteur * ratio
Else
largeur = hauteur * ratio
End If
Columns(Colonne).ColumnWidth = largeur / 5.5
Rows(Ligne & ":" & Ligne).RowHeight = hauteur
ActiveSheet.Pictures.Insert(chemin).Select
Var = Selection.Name
Selection.ShapeRange.LockAspectRatio = msoFalse
With ActiveSheet.Shapes(Var)
.Top = Range(position).Top
.Left = Range(position).Left
.Height = hauteur
.Width = largeur
End With
End Sub
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Tu n'as pas besoin de changer de chemin, ce chemin t'ouvre une boite de dialogue qui te permet de choisir justement le chemin de ton fichier!

Pour le bug essaie cela:

Option Explicit
Dim chemin, Var As Variant
Dim position, largeur, hauteur, ratio, Ligne, Colonne
Dim img As Object
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("A1:Z2000")) Is Nothing Then 'a adapter
position = Target.Address
Ligne = Target.Row
Colonne = Target.Column
position = Replace(position, "$", "")
ImportImages
End If
End Sub
Sub ImportImages()
   Dim oPict As New stdole.StdPicture
    ChDir "C:\Users\Le Pivert\Pictures" 'adapter chemin dossier à ouvrir
  chemin = Application.GetOpenFilename
  If chemin = False Then Exit Sub 'annulation
  hauteur = 100 'a adapter la hauteur de l'image
 Set oPict = stdole.LoadPicture(chemin)
 ratio = oPict.Width / oPict.Height
largeur = hauteur * ratio
ActiveSheet.Pictures.Insert(chemin).Select
  Var = Selection.Name
  Selection.ShapeRange.LockAspectRatio = msoFalse
  With ActiveSheet.Shapes(Var)
    .Top = Range(position).Top
    .Left = Range(position).Left
    .Height = hauteur
    .Width = largeur
     End With
     End Sub

0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour et merci encore

Voila ou ca bloque.
Excuse moi d'insister, mais je suis obligée de mettre un chemin car il me dit que le chemin ne correspond pas, mais une fois que je mets un chemin spécifique, ben je tombe sur le beug ci dessous mais ca télécharge quand meme la photo, par contre elle est super grande, comment avais tu fais pour que la taille soit de 3 cm... taille normale pour ma cellule... comme tu faisais dans le deuxieme doc que tu m'avais envoyé.

Merci encore de ton aide et du temps que tu me donnes.

Sub ImportImages()
Dim oPict As New stdole.StdPicture
ChDir "C:\Users\Myriam BEN HADJ ALI\Pictures\Camera Roll" 'adapter chemin dossier à ouvrir
chemin = Application.GetOpenFilename
If chemin = False Then Exit Sub 'annulation
hauteur = 100 'a adapter la hauteur de l'image
Set oPict = stdole.LoadPicture(chemin)
ratio = oPict.Width / oPict.Height
largeur = hauteur * ratio
ActiveSheet.Pictures.Insert(chemin).Select
Var = Selection.Name
Selection.ShapeRange.LockAspectRatio = msoFalse
With ActiveSheet.Shapes(Var)
.Top = Range(position).Top
.Left = Range(position).Left
.Height = hauteur
.Width = largeur
End With
End Sub
0

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

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Les 2 classeurs que j'ai mis fonctionnent très bien!
C'est au niveau de ton classeur qu'il y a un problème. Sans le voir, je ne peux pas faire grand chose.
Fais un essai sur un classeur vierge!
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
ah ok...
Bon ben merci bcp, c'est cool de m'avoir aidé... je te le montrerai bien mais... je sais pas comment lol
Je vais voir...
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
En mettant ton classeur sur ce site, sans données confidentielles. Pour que je vois si la macro dont tu parles est la cause du bug:

https://www.cjoint.com/
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Merci...
http://www.cjoint.com/c/GAirts5JT1Q

C est mon bilan complet
Je mets des photos dans les feuilles 5 à 10 (gestuel jusqu'a ecriture)

Merci par avance!!!
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Voilà le classeur

Pour changer le chemin aller dans le Module3.

Voir les codes des feuilles 5 à 10

Double clic pour ouvrir une image

http://www.cjoint.com/c/GAirOvzSVcQ
@+ Le Pivert
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
oh purée! ca fonctionne !!
Bon je t avoue que ca me change un peu ma mise en forme du tableau mais je vais m en arranger.
Merci encore.
Une dernière question, les codes des feuilles 5 à 10, c'est a dire? je les trouve ou, j'en fais quoi?
Merci merci
et merci
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Si cela change ta mise en forme du tableau, tu peux jouer là dessus, tu diminues ou t'augmentes la hauteur

hauteur = 100 'a adapter la hauteur de l'image 


Pour le code des feuilles, quand tu es dans l’Éditeur, tu vois tes Modules au dessus il y a toutes les feuilles, il suffit de cliquer dessus pour voir le code!

PS je peux supprimer le classeur sur Ci-joint si tu veux, maintenant que cela fonctionne, tu me dis?
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Si tu veux mettre la taille de ton image en fonction de la hauteur de ta cellule, il faut remplacer dans le module3 cette ligne:

hauteur = 100 'a adapter la hauteur de l'image 


par cette ligne;

 hauteur = ActiveCell.Height


Voilà
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
j'essaye!! Merci!!!
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   > momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai donc essayé, alors parfois ca marche niquel, et d autre ca diminue de moitié ma colonne complète.
J'ai essayé dans l'onglet gestuel
Je me permets de te remettre le doc, voir si ca te fait cela aussi...

Merci bcp

http://www.cjoint.com/c/GAjlYpXexfQ
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Voilà le nouveau classeur. Les colonnes ne s'ajustent plus, elles restent fixes aux dimensions d'origine.

http://www.cjoint.com/c/GAjmXqBPflQ

Le classeur que tu as posté était enregistré en xlsx, ne prenant pas en charge les macros. Il faut enregistrer ton classeur en xlsm prenant en charge les macros!
@+ Le Pivert
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Merci bcp
thank u so much

Bon je crois que c'est bon alors!!
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai une autre question ...
Est ce que c'est possible de faire autrement qu'un double clic pour afficher la fenêtre des photos? genre un raccourci ?
Je m'explique, du coup, quand je fais un double clic ailleurs, pour compléter mes commentaires, ben ça affiche aussi la fenêtre...
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Tu as 2 solutions:

1ère délimiter à une colonne ou plusieurs colonnes, l'ouverture de la macro comme ceci dans le code des feuilles:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("E:E")) Is Nothing Then 'a adapter
position = Target.Address
Ligne = Target.Row
Colonne = Target.Column
position = Replace(position, "$", "")
ImportImages
End If
End Sub


la macro ne se déclenchera que dans la colonne E

2ème un raccourci clavier que tu devras faire toi même en suivant les instructions de ce site:


http://www.info-3000.com/vbvba/raccourciclavier.php

Ensuite il faudra changer le code des feuilles et enlever

ImportImages
de la macro

0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord...d'accord...
bon je vais tester le raccourcit, cela m'est plus accessible alors...
une fois le raccourcit fait, est ce que je dois enlever qqc de la macro pour que le double clic ne serve plus à aller chercher les photos?

et merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
J'ai fait le raccourci par code i comme image

Aller dans le module3 pour changer le chemin des images et la lettre du raccourci si nécessaire.

http://www.cjoint.com/c/GAkomsBz0fQ

J'ai aussi changer le double clic par Worksheet_SelectionChange dans les feuilles concernées 5 à 10. Il suffira de sélectionner la cellule où insérer l'image
L'inconvénient c'est que dans toutes les feuilles quand la lettre i seule sera saisie l'ouverture du choix d'une image se fera.

@+ Le Pivert
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Merciiii
Je l'essaye dans les semaines à venir!
merci bcp bcp bcp
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
Je te fais un retour. Ce que tu m'as mis en place m'aide bcp, je t en remercie. Je gagne 30 bonnes minutes et c'est considérable.
Merci bcp
J'ai deux petites questions.
Parfois quand j'insert ma photo dans une cellule, même si cette dernière n'est pas petite, la photo apparaît en toute petite, y a t il qqc à faire en amont pour qu'elle apparaisse dans la taille de la cellule.
La deuxième, parfois quand je réajuste mes lignes, les photos se décalent toutes, ou quand je coupe des lignes avec des photos et que je les colle ailleurs sur la page, les photos ne suivent pas.
Cela t'évoque-t-il qq?
Bon c'est vraiment un détail, j'ai gagné bcp du temps déja.
Encore merci
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
et oui, une dernière chose, je ne peux pas supprimer les photos de mon dossier source par la suite, sinon elles disparaissent aussi du bilan... y a t il une alternative, car bcp de dossiers photos....
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

voila une nouvelle mouture avec un dossier image. Ne rien toucher au code, il s'ouvre directement sur le dossier image. Tu peux supprimer les images de ce dossier cela ne change rien à ton classeur.
Les images sont réglées pour ce mettre à la même hauteur que la cellule.

http://www.cjoint.com/c/GAwrgTSyw1Q


@+ Le Pivert
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Je viens de voir ton msg
Est ce que tu peux me le renvoyer stp
il n est plus dispooooo désolée!
Je serai plus vigilante et je regarderais plus souvent!
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Voilà

http://www.cjoint.com/c/GAAlq7Rbn1Q
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci... Mais, je fais quoi du doc? du code? comment je l'adapte à mon doc?
Je copie le code? je le colle ou? je remplace quoi? faut m'aiguiller...desolée...je connais pas

et quand je fais un double clic, ca me fait un beug la:

Bon si ca te prend trop de temps je comprends, pas de soucis, tu m'as deja bien aidé...
Sub ImportImages()
Dim oPict As New stdole.StdPicture
ChDir ThisWorkbook.Path & "\Image\"
chemin = Application.GetOpenFilename
If chemin = False Then Exit Sub 'annulation
'hauteur = 100 'a adapter la hauteur de l'image
hauteur = ActiveCell.Height
Set oPict = stdole.LoadPicture(chemin)
ratio = oPict.Width / oPict.Height
If oPict.Height < oPict.Width Then 'mode paysage
largeur = hauteur * ratio
Else
largeur = hauteur * ratio
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
et oui, une dernière chose, je ne peux pas supprimer les photos de mon dossier source par la suite, sinon elles disparaissent aussi du bilan... y a t il une alternative, car bcp de dossiers photos....

C'est toujours le même code, c'est simplement pour te faire voir qu'en supprimant une image du dossier, il n'y a aucune incidence sur ton classeur

Parfois quand j'insert ma photo dans une cellule, même si cette dernière n'est pas petite, la photo apparaît en toute petite

et que les images sont à la dimension de la cellule

La deuxième, parfois quand je réajuste mes lignes, les photos se décalent toutes, ou quand je coupe des lignes avec des photos et que je les colle ailleurs sur la page, les photos ne suivent pas.

Sur ce coup là, je ne peux pas t'aider

Bonne continuation
0
momobha Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Ok, merci bcp pour ton aide.
C'est surprenant en effet car j ai testé, j ai effacé des photos et ds mon doc, j avais la photo qui avait disparue un message disant que le fichier n'était plus dispo
Mais c'est pas grave je vais m'oganiser
Merci bcp pour ton aide.
0