Advertisement
xlujiax

Exportador de Imagenes 90%

Jan 30th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Option Explicit
  2.  
  3. Public Sub AbrirLibrosv3()
  4.  
  5.     Dim img As Shape
  6.  
  7.     Dim fso As Object, fCarpeta As Object, tmpCarpeta As Object
  8.  
  9.     Dim Fichero As Object, tmpFichero As Object
  10.  
  11.     Dim strRutaInicial As String
  12.    
  13.    
  14.    
  15.     strRutaInicial = "D:\Check_List_Hold_Point"
  16.  
  17.  
  18.     Set fso = CreateObject("Scripting.FileSystemObject")
  19.  
  20.     Set fCarpeta = fso.GetFolder(strRutaInicial)
  21.  
  22.  
  23.     For Each tmpFichero In fCarpeta.Files
  24.  
  25.     If LCase(Mid(tmpFichero.Name, InStr(tmpFichero.Name, ".") + 1)) = "xlsx" Then
  26.         Workbooks.Open tmpFichero.Path
  27.        
  28.         Application.ScreenUpdating = False
  29.        
  30.                        
  31.        
  32.         Application.ScreenUpdating = True
  33.        
  34.         ActiveWorkbook.Close savechanges:=False
  35.     End If
  36.  
  37.     Next tmpFichero
  38.  
  39.  
  40.     Recursivo strRutaInicial
  41.  
  42. End Sub
  43.  
  44.  
  45. Private Sub Recursivo(ByVal RutaInicial As String)
  46.  
  47.     Dim fso As Object, fCarpeta As Object, tmpCarpeta As Object
  48.  
  49.     Dim Fichero As Object, tmpFichero As Object
  50.    
  51.     Dim ruta As String
  52.     Dim hojaActual As Worksheet
  53.     Dim graficoActual As ChartObject
  54.     ' Dim img As Shape
  55.    Dim strTempName As String
  56.     Dim objHolder As ChartObject
  57.     Dim PicWidth As Long, PicHeight As Long
  58.     Dim MyChart As String, MyPicture As String
  59.    
  60.     Set fso = CreateObject("Scripting.FileSystemObject")
  61.  
  62.     Set fCarpeta = fso.GetFolder(RutaInicial)
  63.  
  64.     ruta = "D:\Graficos\"
  65.  
  66.     For Each tmpCarpeta In fCarpeta.SubFolders
  67.  
  68.         For Each tmpFichero In tmpCarpeta.Files
  69.  
  70.             If LCase(Mid(tmpFichero.Name, InStr(tmpFichero.Name, ".") + 1)) = "xlsx" Then
  71.                 Workbooks.Open tmpFichero.Path
  72.                
  73.                 Application.ScreenUpdating = False
  74.                
  75.                 For Each hojaActual In Sheets
  76.                                        
  77.                     For Each img In hojaActual.Shapes
  78.                          On Error Resume Next
  79.                          img.Select
  80.                          
  81.                          MyPicture = Selection.Name
  82.                          With Selection
  83.                             PicHeight = .ShapeRange.Height
  84.                             PicWidth = .ShapeRange.Width
  85.                          End With
  86.                          
  87.                          Charts.Add
  88.                          ActiveChart.Location Where:=xlLocationAsObject, Name:=hojaActual.Name
  89.                          Selection.Border.LineStyle = 0
  90.                          MyChart = Selection.Name & " " & Split(ActiveChart.Name, " ")(2)
  91.                          
  92.                          With ActiveSheet
  93.                            With .Shapes(MyChart)
  94.                                  .Width = PicWidth
  95.                                  .Height = PicHeight
  96.                            End With
  97.                
  98.                            .Shapes(MyPicture).Copy
  99.                
  100.                            With ActiveChart
  101.                                  .ChartArea.Select
  102.                                  .Paste
  103.                            End With
  104.                
  105.                            .ChartObjects(1).Chart.Export ruta & hojaActual.Name & "-" & img.Name & ".jpg", "jpg"
  106.                            .Shapes(MyChart).Cut
  107.                         End With
  108.                          
  109.  
  110. '                        ' img.SaveAsPicture ruta & hojaActual.Name & "-" & img.Name & ".jpg", "jpg"
  111. '                        ' img.Chart.Export ruta & hojaActual.Name & "-" & img.Name & ".png", "png"
  112. '
  113. '
  114. '                        strTempName = img.Name
  115. '                        Set objHolder = ActiveSheet.ChartObjects(strTempName)
  116. '                        objHolder.Chart.Export ruta & hojaActual.Name & "-" & img.Name & ".jpg", "jpg"
  117. '
  118.                        
  119.                     Next
  120.                        
  121. '                    For Each graficoActual In hojaActual.ChartObjects
  122. '                        graficoActual.Chart.Export ruta & hojaActual.Name & "-" & graficoActual.Name & ".png", "png"
  123. '                    Next
  124.  
  125. '                    For Each xx In hojaActual.Shapes
  126. '                        On Error Resume Next
  127. '                        xx.Select
  128. '
  129. '                    Next
  130.                Next
  131.                
  132.                 Application.ScreenUpdating = True
  133.                
  134.                
  135.                 ActiveWorkbook.Close savechanges:=False
  136.             End If
  137.  
  138.         Next
  139.  
  140.         Recursivo tmpCarpeta.Path
  141.  
  142.     Next tmpCarpeta
  143.  
  144. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement