Boucle incompréhensible avec Application.Intersect
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:
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.