Bug au démarrage pour afficher image selon résultat cellule

Bonjour le forum,

J'ai récupéré sur internet la macro suivante pour afficher une image suivant le résultat d'une cellule que j'ai adapté à mon cas.

Celle-ci fonctionne très bien sauf si je démarre une nouvelle comparaison et que les montants précédents ont été effacés :

Quand j'entre un premier montant dans une de mes cellules (en B6) , la cellule F11 prend alors l'erreur #Valeur! (et de ce fait met le débogage en route) ce qui est normal car je n'ai pas encore entré le deuxième montant (en D6) pour la comparaison ! Comment faire pour éviter ce désagrément. Et quand j'arrête le débogueur et que je rentre le deuxième montant je n'ai plus aucun problème, l'image correspondante au résultat s'affiche normalement.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 Dim objFeuille As Worksheet, objPict As Picture
 If Worksheets("Feuil1").Range("F11").Value > 0 Then
 Set objFeuille = ActiveSheet
 Set objPict = objFeuille.Pictures.Insert("F:\Docs Cpta\Image1.jpg")
 With objPict
 .Left = Range("F12").Left
 .Top = Range("F12").Top
 End With
 Else
 Set objFeuille = ActiveSheet
 Set objPict = objFeuille.Pictures.Insert("F:\Docs Cpta\Image2.jpg")
 With objPict
 .Left = Range("F12").Left
 .Top = Range("F12").Top
 End With
 End If
 End Sub

En plus, je viens de m'apercevoir que les images s'empilent les unes sur les autres, n'y aurait-il pas un moyen que quand on efface les cellules renseignées celà efface aussi la photo ?

D'avance merci pour votre aide

Bonjour

Essayes un truc comme cela

If Not IsError(Worksheets("Feuil1").Range("F11").Value) Then
  If Worksheets("Feuil1").Range("F11").Value > 0 Then
   ' La suite de ta macro
  End If
End If

Bonjour Banzaï64,

Merci beaucoup pour ta réponse, celà fonctionne à merveille, je n'ai plus de message d'erreur.

Je m'excuse de t'embêter à nouveau mais comment puis-je résoudre ceci :

Je viens de m'apercevoir que les images s'empilent les unes sur les autres et prennent à chaque fois un nouveau n°, n'y aurait-il pas un moyen que quand on efface les cellules renseignées celà efface aussi la photo ?

D'avance merci

Bonjour

libellule85 a écrit :

e m'excuse de t'embêter à nouveau mais comment puis résoudre ceci :

Ne t'excuses pas, merci, et en plus cela ne m'embête pas (si j'ai une solution )

Un petit fichier avec le problème serait le bienvenu pour y faire des tests

Re Banzai64,

Ci-joint fichier, d'avance merci

31calculer.zip (54.60 Ko)

re,

Après maintes recherches, j'ai trouvé :

For Each sh In Me.Shapes
    If Not Intersect(Range(sh.TopLeftCell.Address), Range("F12")) Is Nothing Or _
       Not Intersect(Range(sh.BottomRightCell.Address), Range("F12")) Is Nothing Then
        sh.Delete
   End If
Next sh

Ce code ne doit pas correspondre exactement à mon problème (n'étant pas assez féru en vba pour le modifier), mais toujours est-il que rajouter à ma macro d'effacement des cellules saisies il efface aussi mon image située au niveau de la cellule F12.

Mais si quelqu'un veut me donner le code exact : je suis preneur.

d'avance merci

Bonsoir

A vérifier

Désolé de ne pas avoir répondu plus vite mais entre 19h00 et 20h45 j'ai ma coupure syndicale (heu matrimoniale )

Bonsoir Banzai64,

Ne t'excuse pas, c'est normal. Et en plus, il n'y avait aucun caractère d'urgence (celà m'a permis de chercher de mon côté).

J'ai essayé ton fichier, chez moi l'image ne s'efface pas quand j'enlève les montants saisies.

As-tu vu le code que j'ai trouvé (et que j'ai mis plus haut) ?

Bonsoir

Vérifies cette version

Ta macro pas tout à fait juste car le BottomRightCell n'est pas égal à F12, pour que cela fonctionne je pense qu'il ne faut utiliser que la première partie (pas testé)

Re banzai64,

Je viens de tester te dernière version, et celà fonctionne à merveille.

Un grand grand merci pour ton aide, et ta gentillesse.

Bonne soirée

Rechercher des sujets similaires à "bug demarrage afficher image resultat"