• Initiateur de la discussion Initiateur de la discussion fred
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fred

Guest
Bonjour à tous !!

j'aurai une petite question pour tous les amateurs de Visual Basic car de mon coté ... je n'y connais pas grand chose :


En fait, il faudrait qu'en tapant dans la cellule A1 le chiffre 1 par exemple, une photo associé (1.jpg) s'insere sur la meme feuille à partir de la cellule A10 par exemple. Puis en tapant le chiffre 9, la photo 9.jpg s'insere au meme endroit en remplacant la précédente.

Sachant que j'ai un dossier PHOTO dans MesDocuments ou se trouve toutes ces photos dont les noms commencent à 1.jpg et vont jusqu'à 20.jpg

J'ai entendu dire que l'on pouvait faire ceci avec du visual basic ???

Merci bcp pour vos réponses.
 
Bonsoir Fred, bonsoir le forum,

Fred, le code est à copier dans l'onglet dans lequel tu vas éditer les valeurs en A1. Imaginons que ce soit l'onglet 'Feuil1'.

Copie le code ci-dessous.
Ouvre Visual Basic Editor avec [Alt]+[F11].
Dans le cadre à chauche, doucle-clique sur Feuil1(Feuil1).
Le curseur clignotte dans le grand cadre de doite, colle le code.

Avant toute chose, regarde dans ce code la ligne :
Chem = 'C:\\\\\\\\Documents and Settings\\\\\\\\Fred\\\\\\\\Mes documents\\\\\\\\PHOTO\\\\\\\\' 'définit la variable Chem

tu dois la modifier pour qu'elle corresponde EXACTEMENT au chemin d'accès de tes photos.

Ensuite tu reviens à Excel avec [Alt]+[F11].
Il te suffit de taper le nom de l'image en A1 (de 1 à 20) pour que celle-ci apparaisse.

le code :


Private Sub Worksheet_Change(ByVal Target As Range) 'à chaque changement dans l'onglet
Dim Haut As Double 'déclare la variable Haut
Dim Gauche As Double 'déclare la variable Gauche
Dim Chem As String 'déclare la variable Chem

'si le changement se fait ailleurs que la cellule A1 ou si on effface A1, sort de la procédure
If Target.Address <> '$A$1' Or Range('A1').Value = '' Then Exit Sub

Haut = Range('A10').Top 'définit la variable Haut
Gauche = Range('A10').Left 'définit la variable Gauche

'ATTENTION !!! Tu dois à adapter le chemin ci dessous à ton cas
Chem = 'C:\\\\\\\\Documents and Settings\\\\\\\\Fred\\\\\\\\Mes documents\\\\\\\\PHOTO\\\\\\\\' 'définit la variable Chem

'suppression de l'ancienne photo
On Error Resume Next 'gestion de l'erreur si l'image n'existe plus
ActiveSheet.Shapes('Imag').Select 'sélectionne l'image nommée 'Imag'
If Err.Number = -2147024809 Then GoTo suite 'en cas d'erreur va à la balise 'suite'
Selection.Delete 'le supprime

suite: 'balise

'insertion de la nouvelle image correspondant à A1
On Error Resume Next 'gestion d'erreur en cas d'incohérance éditée en A1
ActiveSheet.Pictures.Insert(Chem & Range('A1').Value & '.jpg').Select 'insère l'image
If Err.Number = 1004 Then GoTo fin
Selection.Name = 'Imag' 'renomme l'image
Selection.Top = Haut 'position verticale de l'image
Selection.Left = Gauche 'position horizontale de l'image
Range('A1').Select 'sélectionne la cellule A1 (et désélectionne l'image)
Exit Sub 'sort de la procédure

fin: 'balise
MsgBox 'La valeur indiquée ne correspond pas à une image du dossier ''Photo''.' 'message
End Sub

Message édité par: Robert, à: 24/11/2005 00:19
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

H
Réponses
4
Affichages
1 K
Hubert BEDUER
H
C
Réponses
7
Affichages
2 K
Cayou3131
C
F
  • Question Question
Réponses
0
Affichages
871
fredannab
F
L
Réponses
2
Affichages
3 K
lionelserra
L
C
Réponses
3
Affichages
2 K
claivier_58
C
C
Réponses
1
Affichages
2 K
claivier_58
C
F
Réponses
6
Affichages
2 K
S
Réponses
8
Affichages
2 K
Sandrine123
S
Retour