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:

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
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).

Quelqu'un aurait une piste de réponse?

En vous remerciant par avance.