![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Excel Forum d'entraide sur Excel |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: juin 2008
Messages: 24
|
voila, j'ai des carte de membre, mais je voudrais que leur photo (en jpg) s'insere automatiquement lorsque je saisie leur nom et prenom.
mais je n'ai rien trouver qui le permette. est-ce que quelqu'un a un debut de piste ? |
|
|
|
|
|
#4 (permalink) |
![]() |
Re
Quelques pistes dans la Excel en faisant une recherche avec le mot image : http://excel.developpez.com/faq/inde...chercher=imageStarec |
|
|
|
|
|
#5 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: juin 2008
Messages: 24
|
je viens de regarder
il existe une methode avec gestionimage, ça me donne déjà un debut de piste, mais le probleme est que j'ai 600 photo a gerer et je peux pas les mettre sur une feuille de source comme dans l'exemple. mon idée est comme j'ai une assiociation (exemple : la photo c001 dans le dossier e:\photo correspond a dupont marcel) est-ce que je peux l'afficher lorsque je saisie dans une cellule "dupont marcel" puisque j'ai un fichier excel ou pour chaque nom de fichier jpg, j'ai le nom et le prenom, soit sur une page excel ou word, peu importe |
|
|
|
|
|
#6 (permalink) |
![]() Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 666
|
Bonjour,
A condition que le nom de tes images correspond au nom que tu introduits dans la cellule A1 (par exemple), tu peux essayer ceci : Code à insérer dans le module de la feuille en question :
Private Sub Worksheet_Change(ByVal Target As Range) Dim NomImg As String, Chemin As String, Pos As Range If Target.Count = 1 And Target.Address = "$A$1" Then Application.ScreenUpdating = False Chemin = "E:\Photo\" NomImg = Target.Value & ".jpg" Set Pos = Range("B5:E15") On Error Resume Next ActiveSheet.Shapes("MonImage").Delete On Error Resume Next With ActiveSheet.Pictures.Insert(Chemin & NomImg) .Name = "MonImage" .Left = Pos.Left .Top = Pos.Top .Height = Pos.Height .Width = Pos.Width End With End If Set Pos = Nothing Application.ScreenUpdating = True End Sub Cdlt
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
|
|
|
#8 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: juin 2008
Messages: 24
|
excellent
ton code fonctionne a merveille par contre pour mieux comprendre peux tu joindre une petite explication de texte car je comprend que des brides, j'aimerai comprendre le fonctionnement pour pouvoir mieux appliquer par la suite dans d'autre cas de figure |
|
|
|
|
|
#9 (permalink) |
![]() Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 666
|
Revoici le code avec quelques commentaires
Code :
Private Sub Worksheet_Change(ByVal Target As Range) Dim NomImg As String, Chemin As String, Pos As Range 'Target = cible = cellule modifiée If Target.Count = 1 And Target.Address = "$A$1" Then '<-- si la cible est A1 et uniquement A1 Application.ScreenUpdating = False '<-- désactivation du rafraichissement de l'écran Chemin = "E:\Photo\" '<-- répertoire où sont stockées les photos NomImg = Target.Value & ".jpg" '<-- nom de la photo = valeur de A1 + extension jpg Set Pos = Range("B5:E15") '<-- initialisation d'une variable représentant la plage de cellule B5:E15, l'image sera dimensionnée et positionnée selon cette plage de cellules On Error Resume Next '<-- si pas d'image à supprimer on passe cette étape ActiveSheet.Shapes("MonImage").Delete '<-- suppression de l'image précédemment insérée On Error Resume Next '<-- si pas d'image, correspondante au nom dans A1, trouvée dans le répertoire on passe cette étape With ActiveSheet.Pictures.Insert(Chemin & NomImg) '<-- insertion de l'image selon le chemin et le nom définis ci-dessus .Name = "MonImage" '<-- nom de l'image insérée .Left = Pos.Left '<-- position horizontale = même position que la plage de cellule B5:E15 .Top = Pos.Top '<-- position verticale = même position que la plage de cellule B5:E15 .Height = Pos.Height '<-- hauteur = même hauteur que la plage de cellule B5:E15 .Width = Pos.Width '<-- largeur = même largeur que la plage de cellule B5:E15 End With End If Set Pos = Nothing '<-- libération de la mémoire Application.ScreenUpdating = True '<-- réactivation du rafraichissement de l'écran End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
|
![]() |
![]() |
||
insérer des images
|
||
| Outils de la discussion | |
|
|