2017-05-29 3 views
1

J'ai essayé de convertir certains fichiers que j'ai dans un dossier en .png en .jpg en utilisant vba, mais je ne peux pas finir avec un code pour le faire, je ' J'ai essayé de coller les images dans Excel et de les exporter en jpg, mais ça ne semble pas fonctionner, quelqu'un peut-il m'aider avec ça? Je le code où j'ai essayé de le faire je reçois une erreur sur cette ligneComment convertir plusieurs fichiers png en jpeg

ThisWorkbook.ActiveSheet.ChartObjects("foto").Chart.Export Filename:=x, FilterName:="JPEG" 

Parce que « Ce membre ne peut être accesed pour un objet graphique » Quelqu'un peut-il me aider?

On Error Resume Next 
    DisplayAlerts = True 
    Application.ScreenUpdating = True 
    Dim Pathh As String 
    Dim fila As Integer 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Pathh = "C:\Users\jojeda\Desktop\Pruebas JPEG\" 
    Set carpeta = fso.getfolder(Pathh) 
    Set ficheros = carpeta.Files 
    For Each ficheros In ficheros 
    'I belive the code should be here 

b = "C:\Users\jojeda\Desktop\Pruebas JPEG\" & ficheros.Name 
     With ThisWorkbook.ActiveSheet.Pictures.Insert(b) 
     .Placement = 1 
     .Name = "foto" 
     .PrintObject = True 
     End With 
     ThisWorkbook.Worksheets("Sheet1").Cells(1, 6) = b 
     ThisWorkbook.Worksheets("Sheet1").Range("F1").Replace ".png", ".jpg", xlPart 
     b = ThisWorkbook.Worksheets("Sheet1").Cells(1, 6) 
     x = Right(b, 8) 


    ThisWorkbook.ActiveSheet.ChartObjects("foto").Chart.Export Filename:=x, FilterName:="JPEG" 
    ThisWorkbook.Sheets("Sheet1").Shapes("foto").Delete 
     Next ficheros 

DisplayAlerts = True 
Application.ScreenUpdating = True 
+0

Évitez d'utiliser 'on Error Resume Next' car il assourdit simplement des messages d'erreur (voir [VBA Meilleures pratiques - Gestion des erreurs] (https://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/5411/traitement des erreurs)). Supprimez cette ligne et ajoutez/[edit] à votre question où vous obtenez des erreurs (quelle ligne) et quelles erreurs vous obtenez. –

+0

Merci, je viens de modifier la question et je peux voir maintenant où est l'erreur, mais je ne peux pas comprendre comment le faire? –

Répondre

1

je suis venu avec une solution à ma propre question, je fini par charger l'image dans un graphique, puis exporter le fichier en tant que fichier JPEG, dans un autre dossier, au cas où quelqu'un cherche quelque chose comme ça , voici le code:

Sub Button1_Click() 
DisplayAlerts = True 
    Application.ScreenUpdating = True 
    Dim Pathh As String 
    Dim fila As Integer 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Pathh = "C:\Users\jojeda\Desktop\Pruebas JPEG\" 
    Set carpeta = fso.getfolder(Pathh) 
    Set ficheros = carpeta.Files 
    For Each ficheros In ficheros 
     b = "C:\Users\jojeda\Desktop\Pruebas JPEG\" & ficheros.Name 
     c = "C:\Users\jojeda\Desktop\Pruebas JPEG2\" & ficheros.Name 
     Set blab = ThisWorkbook.ActiveSheet.ChartObjects.Add(Left:=200, Width:=200, Top:=80, Height:=200) 
     blab.Name = "foto" 
     blab.Activate 
     ActiveChart.ChartArea.Format.Fill.UserPicture (b) 
     ThisWorkbook.Worksheets("Sheet1").Cells(1, 6) = b 
     ThisWorkbook.Worksheets("Sheet1").Range("F1").Replace ".png", ".jpeg", xlPart 
     b = ThisWorkbook.Worksheets("Sheet1").Cells(1, 6) 
    ThisWorkbook.Worksheets("Sheet1").ChartObjects("foto").Chart.Export Filename:=c, FilterName:="JPEG" 
    ThisWorkbook.Sheets("Sheet1").Shapes("foto").Delete 
     Next ficheros 

DisplayAlerts = True 
Application.ScreenUpdating = True 
End Sub 
+0

Vous pouvez accepter votre propre réponse comme solution. Donc, tout le monde peut voir que cette question est résolue. –

+1

Thaks Peh, j'ai essayé quand j'ai résolu la question, mais je dois attendre 2 jours pour accepter ma propre réponse :( –