Accéder aux images depuis une cellule dans excel 2010
Résolu/Fermé
A voir également:
- Accéder aux images depuis une cellule dans excel 2010
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Verrouiller cellule excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
6 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
17 août 2015 à 09:19
17 août 2015 à 09:19
Bonjour,
il accède au menu windows pour pouvoir y ajouter une photo
C'est quoi ce menu que tu veux ?
il accède au menu windows pour pouvoir y ajouter une photo
C'est quoi ce menu que tu veux ?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
17 août 2015 à 10:52
17 août 2015 à 10:52
Bonjour,
Voici un exemple:
http://www.cjoint.com/c/EHriYVzqJBQ
Voici un exemple:
http://www.cjoint.com/c/EHriYVzqJBQ
C'est génial!!! Merci beaucoup, c'est exactement ce que je souhaite.
Dois-je rajouter ce code à "feuille1" ou le copier coller dans un nouveau module?
Je ne comprends pas dans le code ce qui correspondrait à la cellule.
Par exemple si je voudrais accéder à cela pour les cellules B11 et B12, où dois-je le mentionner dans le code?
Abir
Dois-je rajouter ce code à "feuille1" ou le copier coller dans un nouveau module?
Je ne comprends pas dans le code ce qui correspondrait à la cellule.
Par exemple si je voudrais accéder à cela pour les cellules B11 et B12, où dois-je le mentionner dans le code?
Abir
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
17 août 2015 à 11:32
17 août 2015 à 11:32
voici un autre exemple:
http://www.cjoint.com/c/EHrjFMIvk4Q
http://www.cjoint.com/c/EHrjFMIvk4Q
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
17 août 2015 à 14:54
17 août 2015 à 14:54
Voir ceci:
https://forum.excel-pratique.com/viewtopic.php?forum_uri=cours-astuces&t=1314&start=
Mettre ceci dans la feuille1
https://forum.excel-pratique.com/viewtopic.php?forum_uri=cours-astuces&t=1314&start=
Mettre ceci dans la feuille1
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("B11:B12")) Is Nothing Then 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 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 Sub efface() For Each img In Worksheets(1).Shapes 'ou Worksheets("nom").Shapes img.Delete Next End Sub Sub BoucleHauteur() Dim Ligne As Range For Each Ligne In ActiveSheet.UsedRange.Rows Ligne.RowHeight = 15 Next End Sub Sub BoucleLargeur() Dim Colonne As Range For Each Colonne In Range("A1:Z2000").Columns Colonne.ColumnWidth = 10.71 Next End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) efface BoucleHauteur BoucleLargeur End Sub
Merci! J'y suis presque! J'ai une erreur d'execution 1004 : erreur définie pour l'application ou l'objet
le débogage me surligne cette étape : Columns(Colonne).ColumnWidth = largeur / 5.5
J'ai d'autres choses dans ma colonne, c'est surement ce qui gène le redimensionnement.
Voici mon fichier : http://www.cjoint.com/c/EHrnZNZhwBd
Je veux mettre les photos B12 et B13
le débogage me surligne cette étape : Columns(Colonne).ColumnWidth = largeur / 5.5
J'ai d'autres choses dans ma colonne, c'est surement ce qui gène le redimensionnement.
Voici mon fichier : http://www.cjoint.com/c/EHrnZNZhwBd
Je veux mettre les photos B12 et B13
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
17 août 2015 à 16:19
17 août 2015 à 16:19
Ne jamais rien mettre au dessus de Option Explicit!
voici le code:
voici le code:
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("B12:B13")) Is Nothing Then 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 chemin = Application.GetOpenFilename If chemin = False Then Exit Sub 'annulation hauteur = 40 'a adapter la hauteur de l'image à la cellule 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 Sub efface() For Each img In Worksheets(1).Shapes 'ou Worksheets("nom").Shapes img.Delete Next End Sub Sub BoucleHauteur() Dim Ligne As Range For Each Ligne In ActiveSheet.UsedRange.Rows Ligne.RowHeight = 15 Next End Sub Sub BoucleLargeur() Dim Colonne As Range For Each Colonne In Range("A1:Z2000").Columns Colonne.ColumnWidth = 10.71 Next End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) efface 'BoucleHauteur 'BoucleLargeur End Sub Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date) End Sub Private Sub DTPicker3_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date) End Sub Private Sub DTPicker4_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date) End Sub Private Sub DTPicker6_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date) End Sub
Tout fonctionne à merveille!!!!
Si tu as le temps de répondre à ces quelques dernières questions :
- peut-on changer pur avoir un habillage de la photo centrer horizontale et verticale dans la cellule?
- J'ai essayé de comprendre un peu le VBA associé, pas facile! Quelle ligne permet de diriger sur "parcourir"? Aurait-on pu changer de chemin?
- est-il possible d'avoir un mot écrit sur une cellule et lorsqu'on clic dessus on rentre ce qu'on veut? Par exemple, sur une cellule il est écrit Age et dans cette cellule je dois rentrer un nombre.
- enfin, est-il possible dans une cellule de garder un mot fixe et de compléter la cellule. Je veux simplement écrire "ans" et que la personne rentre l'age. Je connais la solution en allant sur 2 cellules...
Si tu as peu de temps, ne t'inquiète pas, tu m'as déjà amplement fait progresser dans ma tâche et je t'en remercie infiniment.
Abir
Si tu as le temps de répondre à ces quelques dernières questions :
- peut-on changer pur avoir un habillage de la photo centrer horizontale et verticale dans la cellule?
- J'ai essayé de comprendre un peu le VBA associé, pas facile! Quelle ligne permet de diriger sur "parcourir"? Aurait-on pu changer de chemin?
- est-il possible d'avoir un mot écrit sur une cellule et lorsqu'on clic dessus on rentre ce qu'on veut? Par exemple, sur une cellule il est écrit Age et dans cette cellule je dois rentrer un nombre.
- enfin, est-il possible dans une cellule de garder un mot fixe et de compléter la cellule. Je veux simplement écrire "ans" et que la personne rentre l'age. Je connais la solution en allant sur 2 cellules...
Si tu as peu de temps, ne t'inquiète pas, tu m'as déjà amplement fait progresser dans ma tâche et je t'en remercie infiniment.
Abir
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
18 août 2015 à 08:16
18 août 2015 à 08:16
1_
.Left = Range(position).Left + 100 distance du bord gauche de la cellule
2_
chemin = Application.GetOpenFilename
3_
je n'ai pas compris
4_
.Left = Range(position).Left + 100 distance du bord gauche de la cellule
2_
chemin = Application.GetOpenFilename
3_
je n'ai pas compris
4_
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("B2")) Is Nothing Then Target.Value = Target.Value & " ans" End If End Sub
Bonjour,
Je te remercie encore pour tes réponses efficaces.
Pour la question 3. Je voulais te demander s'il était possible qu'un mot n'apparaisse dans une cellule seulement jusqu'à ce que tu la remplisses. pas facile à expliquer!
Je classe le sujet en résolu.
Merci de toutes les aides apportées.
Abir
Je te remercie encore pour tes réponses efficaces.
Pour la question 3. Je voulais te demander s'il était possible qu'un mot n'apparaisse dans une cellule seulement jusqu'à ce que tu la remplisses. pas facile à expliquer!
Je classe le sujet en résolu.
Merci de toutes les aides apportées.
Abir
17 août 2015 à 11:15
Plus précisément, je voudrais soit un "bouton" qui permet d'accéder à parcourir, soit que les photos se rangent toutes seules comme des grandes selon leur nom.
par exemple que "Dupont Martin1" "Dupont Martin2"... se rangent dans La colonne Dupont Martin.
Merci!