Autres Perte de variable dans une macro

JohnRambo

XLDnaute Nouveau
Bonjour,

Je ne comprends pas pourquoi de temps en temps sans logique apparente, j'ai une erreur avec une macro qui copie des lignes avec une image et ensuite lui affecte une macro. Je vous copie le code source, j'ai mis en rouge où l'erreur se produit, si vous avez une idée, je suis preneur :

Merci pour votre temps

Sub Créer_un_circuit()
' Créer_un_circuit => Macro affectée au bouton "Créer un circuit"
Application.ScreenUpdating = False
Set FeuilVariable = Sheets("Variable")
FeuilVariable.Range("C20").Value = ActiveSheet.Shapes(Application.Caller).Name
Dim ShCC As Shape
Dim ShCCNM As String
Dim ShCCP As String
ShCCNM = ActiveSheet.Shapes(Application.Caller).Name
Set ShCC = ActiveSheet.Shapes(ShCCNM)
ShCC.Select
ShCCP = ShCC.TopLeftCell.Address
Sheets("Variable").Range("E6").Value = ShCCP
Set RangShCCP = Range(ShCCP)
PosShapes = RangShCCP.Offset(2, 0).Address
Set CelPosShapes = Range(PosShapes)
Set Sc1 = Sheets("Format_Projet").Range("15:16")
Sc1.Copy
CelPosShapes.EntireRow.Insert
For Each Shapes In ActiveSheet.Shapes
' !!! Erreur de temps en temps, perd l'image ou l'adresse de la variable mais l'image est bien copiée à la bonne place
If Shapes.TopLeftCell.Address = PosShapes Then

Shapes.OnAction = "Supprimer_un_circuit"
End If
Next
Application.CutCopyMode = False
End Sub
 

jmfmarques

XLDnaute Accro
Bonjour
Shapes est un mot réservé de VBA (une collection) et ne doit donc pas être utilisé comme nom de variable.
For Each Shapes In ActiveSheet.Shapes
n'a aucun sens logique
On peut comprendre que l'on parcourt chaque figurine d'une collection de soldats de plomb
N'aurait par contre aucun sens le parcourt de chaque collection de soldats de plomb dans la collection de soldats de plomb :(
 

jmfmarques

XLDnaute Accro
Tu voudras bien m'excuser, mais j'ai beau écarquiller mes yeux, je n'y vois nulle part ce "genre" de blague :
For Each Shapes In ActiveSheet.Shapes
Allez ... je te laisse maintenant car aller au-delà dépasse à la fois mes forces et mon flegme.
Une seule et dernière recommandation avant de te quitter : prends le temps de lire et analyser mes messages précédents.
 

JohnRambo

XLDnaute Nouveau
Il y est au moins 20 fois dans le fichiers :
adresse de la cellule
sélectionner une cellule
renommage d'un shape etc....
après ce n'est grave, je suis assez d'accord que cela ne veut pas dire grand chose mon but est de trouver quelque chose qui fonctionne pour affecter ma macro à mon image sans avoir un message d'erreur une fois sur 10, je ne suis pas doué, sinon je ne serais peut être pas ici à poser ce genre de question. les évidences d'un tiers ne sont pas forcément les évidences de tous
 

JohnRambo

XLDnaute Nouveau
j'ai changé la variable avec
set S = activesheet.shapes(application.caller).topleftcell
j'ai remplacé mon shapes idiot par S
ben c'est toujours la même chose
c'est pour ça que j'avais essayé de déclarer d'autre choses, le truc est resté sur shapes que je lui mette S, shapes ou tarteàlacrème il s'en fout