Advertisement
mouseclone

charting reports vba

Sep 12th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Sub evanios_report()
  2.     Dim wb As Workbook
  3.     Dim ws As Worksheet
  4.     Dim x As Integer
  5.     Dim getName() As String
  6.     Dim getNameLength As Integer
  7.     Dim yAxis As Integer
  8.        
  9.        
  10.     ' Set up sheets for the workbook
  11.    Set wb = ActiveWorkbook
  12.     wb.Sheets(1).Name = "Summary Report"
  13.     ' Import date from csv files
  14.    
  15.     FilesToOpen = Application.GetOpenFilename(FileFilter:="Text Files (*.csv), *.csv", MultiSelect:=True, Title:="Files to import")
  16.    
  17.     ' Do for each file selected
  18.    
  19.     x = 1
  20.     yAxis = 10
  21.        
  22.     While x <= UBound(FilesToOpen)
  23.        
  24.         wb.Sheets.Add After:=Worksheets(Worksheets.Count) ' create sheet
  25.        Set ws = wb.Worksheets(Worksheets.Count) ' set new sheet active
  26.        
  27.         ' Import data from csv
  28.        With ws.QueryTables.Add(Connection:="TEXT;" & FilesToOpen(x), Destination:=ws.Range("A1"))
  29.             .TextFileCommaDelimiter = True
  30.             .TextFileStartRow = 3
  31.             .Refresh
  32.         End With
  33.        
  34.         getName() = Split(ws.Range("B2"), "/") ' Parse for name
  35.        getNameLength = (UBound(getName) - LBound(getName) + 1) ' Get array length
  36.        wb.Sheets(Worksheets.Count).Name = Replace((getName(getNameLength - 2)), ":", " % Free") ' Name sheet
  37.        
  38.         Columns("B").Hidden = True ' Hide B for charting
  39.        
  40.         ' Create charts from imported data
  41.        
  42.         Dim chtObj As ChartObject
  43.        
  44.         wb.Sheets(1).Name = "Report Summary"
  45.        
  46.         Set chtObj = Worksheets(1).ChartObjects.Add(10, yAxis, 800, 300)
  47.        
  48.         chtObj.Chart.ChartWizard Source:=ws.Range("A2:C668")
  49.            
  50.         x = x + 1
  51.         yAxis = yAxix + 310
  52.        
  53.     Wend
  54.    
  55.    
  56. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement