Bonjour a tous, comme le nom du post l'indique j'ai un problème avec ma macro qui génère des codes barres en format jpeg. C'est la première fois que je me retrouve avec ce genre de problème, la macro fonctionne et génère des codes barres mais elle plante sur la ligne chartObjects.add avec le message d'erreur : Erreur d’exécution '1004' erreur définie par l'application ou par l'objet. Ca me le fait seulement quand excel est fermé quand je lance la macro. Si excel est ouvert j'ai aucun soucis, le script s'éxecute et j'ai bien mon code barre sur le bureau.

J'ai essayé avec une tempo pour attendre l'ouverture de l'application excel mais ça change rien.

NB : je code sous solidworks d'ou la présion excel.application

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Sub test()
Dim IDcode As String
 
IDcode = "test5Code128"
 
codebarre_img IDcode, "C:\Users\utilisateur\Desktop"
 
End Sub
 
Function codebarre_img(IDcode As String, Chemdoss As String)
 
Dim ndf As String
Dim Source As excel.Range, Gr As Object
Dim wb As excel.Workbook
Dim xlapp As excel.Application
Dim wbname As String
 
 
Set xlapp = CreateObject("excel.application")
xlapp.Visible = True
Set wb = xlapp.Workbooks.Add
wbname = wb.Name
ndf = "\" & IDcode & ".jpg"
xlapp.Workbooks(wbname).Activate
With xlapp.ActiveSheet.Range("a1").Font
.Name = "Code 128"
.Size = 100
End With
xlapp.Range("a1") = IDcode
xlapp.Cells(1, 1).EntireColumn.AutoFit
xlapp.Range("a1").CopyPicture Appearance:=xlScreen, Format:=xlPicture
 
 
    With xlapp.Workbooks(wbname).Sheets("feuil1").ChartObjects.Add(Range("a1").Left, Range("a1").Top, Range("a1").Width, Range("a1").Height)
    .Name = "idcode"
    .Activate
    End With
    xlapp.ActiveChart.Paste
    xlapp.ActiveSheet.ChartObjects("idcode").Chart.Export Chemdoss & ndf
    xlapp.ActiveWorkbook.Close False
    xlapp.Visible = False
 
End Function

Je crois que c'est les range dans le chartobject.add qui font bug mais je vois pas pourquoi