cergeech, действуйте примерно так:
1. Запишите макрос, строящий диаграмму по данным первого рабочего листа на первом же листе, макрорекордером.
2. В полученном макросе поправьте в коде все ссылки на
первый рабочий лист так, чтобы они ссылались на
активный рабочий лист.
3. Выделите нужный рабочий лист, запустите макрос на исполнение.
Например, я записал макрорекордером построение гистограммы по данным первого рабочего листа. Получился примерно такой код:
Код:

Option Explicit
Sub Макрос1()
Range("A1:B7").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Лист1").Range("A1:B7"), PlotBy:= _
xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
Здесь две привязки к конкретному рабочему листу, выделенные мною
красным цветом. Поправим код записанного макроса следующим образом:
Код:

Option Explicit
Sub Макрос1()
Dim objWorksheet As Worksheet
Set objWorksheet = ActiveWorkbook.ActiveSheet
Range("A1:B7").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=objWorksheet.Range("A1:B7"), PlotBy:= _
xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:=objWorksheet.Name
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
После этого достаточно выделить потребный рабочий лист и запустить макрос на исполнение: на активном рабочем листе будут выделены данные, и построена гистограмма — на этом же рабочем листе.
Я привёл пример, как можно наиболее простым способом получить автоматизацию повторяющихся действий при минимальных знаниях программирования на VBA и объектной модели Microsoft Excel. Более правильным подходом является корректировка полученного макроса в сторону его большей гибкости. Например, мы можем не помечать диапазон ячеек из макроса:
Код:

Range("A1:B7").Select
а оставить пометку диапазона на откуп пользователю и просто использовать уже имеющееся выделение.