Bonjour,
J'ai suivi un tuto pour créer un catalogue de produit sur Excel (en VBA) , sauf que j'arrive à avoir une erreur d'exécution 13 alors que j'ai parfaitement recopié son programme. J'ai trouvé l'erreur, cela est dû à la commande Application.Caller. J'ai voulu contacté la personne qui a fait se cour, mais vue comment il répondait dans les commentaires, je pense pas que c'est une bonne idée... J'ai également fait plusieurs recherche sur Internet (pendant 2 jours), mais aucune solution proposé m'a aidé. Alors je viens à vous, mon dernier espoir de réussir à résoudre le problème.
Voici mon code dans "ThisWorkbook" (qui fonctionne très bien) :
Private Sub Workbook_Open()
Sheets(2).Range("A2:D100").ClearContents
Sheets(2).Range("A2:D100").Interior.ColorIndex = 2
Sheets(2).Range("H10:O10").Value = ""
Sheets(2).Range("G2").Value = ""
Sheets(2).Range("A1:D1").Interior.ColorIndex = 15
Sheets(2).Range("L1:O1").Interior.ColorIndex = 15
For Each Shape In ActiveSheet.Shapes
Shape.Delete
Next
With Range("A1:D100")
.HorizontalAlignment = xlHAlignCenter
.VerticalAlignment = xlVAlignCenter
End With
rep = ThisWorkbook.Path & "\img\"
fichier = Dir(rep & "produit*.jpg")
i = 2
Do While fichier <> ""
If Left(fichier, 7) = "produit" Then
Sheets(2).Cells(i, "A").Value = Left(fichier, 11)
Sheets(2).Cells(i, "A").Interior.ColorIndex = 36
Sheets(2).Cells(i, "B").Select
Set Image = ActiveSheet.Pictures.Insert(rep & fichier)
Image.Name = fichier
ActiveSheet.Shapes(fichier).Height = 60
ActiveSheet.Shapes(fichier).Width = 60
Rows(i & ":" & i).RowHeight = 60
Image.OnAction = "image_cliquer"
ActiveSheet.Cells(i, 4).NumberFormat = "### ##0.00€"
ActiveSheet.Cells(i, 4).Value = Sheets(1).Cells(i, 7).Value
ActiveSheet.Cells(i, 3).Value = Sheets(1).Cells(i, 4).Value
End If
i = i + 1
fichier = Dir
Loop
Range("P1").Value = (i - 2) & " produits"
Range("F1").Select
End Sub
Et voici mon code dans le module (là où l'erreur apparaît) :
Sub image_cliquer()
Sheets(2).Range("A2:D100").Interior.ColorIndex = 2
Sheets(2).Range("A2:A100").Interior.ColorIndex = 36
zoom = Application.Caller
rep = ThisWorkbook.Path & "\img\"
Range("I2").Select
For Each s In ActiveSheet.Shapes
s.Delete
Next s
Set Image = ActiveSheet.Pictures.Insert(rep & zoom)
Image.Name = "MonImage"
ActiveSheet.Shapes("MonImage").Height = 450
Range("G1").Select
Range("G2").Value = Left(zoom, 11) 'sheets(1).cells(ligne,2).value
ligne = 2
Do While Sheets(2).Cells(ligne, 1).Value <> Left(zoom, 11)
ligne = ligne + 1
Loop
ActiveSheet.Range("A" & ligne & "E" & ligne).Interior.ColorIndex = 44
ActiveSheet.Cells(10, 8).Value = "Nom:" & Sheets(1).Cells(ligne, 2).Value
ActiveSheet.Cells(10, 9).Value = Sheets(1).Cells(ligne, 9).Value
ActiveSheet.Cells(10, 13).Value = Sheets(1).Cells(ligne, 3).Value
ActiveSheet.Cells(10, 14).Value = Sheets(1).Cells(ligne, 4).Value
ActiveSheet.Cells(10, 15).Value = Sheets(1).Cells(ligne, 6).Value
End Sub
Je vous souhaite une bonne journée
Partager