Erreur d'exécution '70' Permission refusée

cibleo

XLDnaute Impliqué
Bonjour le Forum,

J'aimerais poser une question aux "Harry Potter" du VBA.

Ci-dessous un code qui fonctionne bien : il insère des images en les nommant successivement : pompe1, pompe2, pompe3 etc....

Mais après quelques tests, je me suis aperçu que la suppression manuelle d'une image suivi d'une nouvelle insertion entrainait un petit Bug.

Je m'explique :
Sont insérées mes 3 premières images, je supprime manuellement l'une d'elle (en l'occurence l'image2), me reste alors les 2 images nommées pompe1 et pompe3 .

Dès lors, si je veux effectuer une nouvelle insertion d'image, le message suivant apparaît :Erreur d'exécution '70' Permission refusée.

Dans le code l'instruction suivante est ainsi surlignée
.Name = "pompe " & nombre_pompes + 1

Code:
Private Sub Gazole_Click()
If Not Intersect(Selection, Range("C3:IJ33")) Is Nothing Then
Dim MyCell As Range
Dim MyPicture As Picture
Dim image$
image = "C:\Documents and Settings\JEAN-FRANÇOIS\Mes documents\Mes images\Pompe.gif" 'ou le chemin désiré
Set MyCell = ActiveCell
MyCell.Select
Set MyPicture = ActiveSheet.Pictures.Insert(image)
With MyPicture.ShapeRange
.Name = "pompe " & nombre_pompes + 1
.LockAspectRatio = msoFalse
.Height = MyCell.Height
.Width = MyCell.Width
End With
MyCell.Select
Exit Sub
End If
MsgBox "Mauvaise Sélection !", , Range("A2").Value
   Range("A1").Select
End Sub

Evidemment si je supprime l'image pompe3 au lieu de la n°2, tout fonctionne à merveille.

Comment puis je corriger ce bug ?

Merci de votre aide Cibleo
 

pierrejean

XLDnaute Barbatruc
Re : Erreur d'exécution '70' Permission refusée

bonjour cibleo

Il semble que le problème vienne de la gestion du nombre_pompes
Si celui-ci est decrementé lors de la suppression on peut tout a fait demander a renommer un shape avec un nom existant
Une solution consisterait a gerer 2 numeros
un numero jamais decrementé pour nommer : Num_pomp
un numero decrementé pour compter : Nb_pomp
 
G

Guest

Guest
Re : Erreur d'exécution '70' Permission refusée

Bonjour Cibleo,

voici la ligne qui nomme l'image, remplacer :
Code:
.Name = "pompe " & trim(Split(.Name)(1))

Cela devrait fonctioner. En tous cas chez moi, ça marche.

A bientôt
 

cibleo

XLDnaute Impliqué
Re : Erreur d'exécution '70' Permission refusée

Re pierrejean
Bonjour Hasco,

Tous les petits sorciers ne sont pas au cinéma cet après midi, tant mieux pour le forum.

C'est génial, ça marche Hasco, encore un problème de résolu.

Merci à vous deux

Cibleo
 
G

Guest

Guest
Re : Erreur d'exécution '70' Permission refusée

Hello Cibleo, PierreJean,

On aurait pu aussi mettre:

Code:
.Name = replace(.Name,"Image ","Pompe"))

Laissant excel attribuer de lui-même les numéros d'image.

A bientôt
 

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35