Bonjour à tous,
Je me permet de venir demander votre aide, car j'ai un morceau de programme de quelques lignes qui me donne du fil à retordre, et à avoir le nez dedans, je ne suis pas sur de trouver un jour la solution.
En fait, non par choix, mais par necessité matériel, je fais du Access avec Excel.
En effet, je dispose d'une Base de Données Excel, et je souhaite via une autre table, pouvoir fonctionner comme avec un formulaire, sans que ce soit un formulaire... Je sais, je fais simple...
Donc sur ce "pseudo formulaire", grâce à une scanette, j'entre une référence produit, et j'affiche ses propriétés venant de la base de données.
Je souhaite également pouvoir afficher une photo de la pièce, venant d'un dossier serveur.
Pour ça, j'ai codé une macro qui permet à chaque fois que la référence entrée change, de charger une nouvelle photo, qui écrase l'ancienne dans le contrôle image.
Voici le code:
Mon problème, est que automatiquement durant 280 cycles (avant d'utiliser un contrôle image, celà me superposait 280 fois la même photo), le programme tourne entre le début et Image1.Picture = LoadPicture(Image), sans vouloir aller au delà (j'ai testé en essayant de rajouter une instruction après, elle n'est pas prise en compte).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Public Sub worksheet_change(ByVal Target As Range) 'Initialisation Dim KeyCells As Range Dim Ref As String 'Set des variables Set KeyCells = Range("A3") Ref = Range("C3") 'Test modification cellule If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then Range("A3").Value = Target.Value Image = "H:\data\" & Ref & ".jpg" 'Chargement image Image1.Picture = LoadPicture(Image) End If End Sub
Quelqu'un aurait une piste de réponse?
En vous remerciant par avance.
Partager