Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Power BI. Написать меру выполнения плановых показателей
 
Добрый день, файл загрузил в экселе, меру надо написать в power bi.

Суть в том, что в файле во вложении, есть сводная таблица, которая строится на данных источника. Мне нужно написать меру выполнения плана, в месяцах, где есть факт - факт / план, где нет факта, но есть план - прогноз / план.
Суть в том, что в итоговой строке мера работает точно также. То есть, например, в 2х месяцах из 10ти есть факт, Соответственно мера делит сумму 2 месяцев факта на сумму 10 месяцев прогноза и получается некорректные итоги.

Подскажите, пожалуйста, как написать эту меру, чтобы итоги считались верно
Изменено: vikttur - 05.06.2021 15:14:35
Выгрузка определенных столбцов из Power BI
 
Всем привет, я никогда не работал с pbi, поэтому нет понимания, что делать и где искать, подскажите пожалуйста

Задача такая, что в pbi есть некая таблица, которую нужно экспортировать в эксель в определённом формате (автоматический экспорт не подходит, там много лишних данных выгружается).

Подскажите куда копать, можно ли через vba обратиться к pbi, чтобы выгрузить определённые колонки, которые мне нужны?
И что вообще можно почитать по этому поводу, я не понимаю, что мне написать в гугле, чтобы он выдал ту информацию, которая мне нужна)
Поиск совпадения по части с текста в ячейчках
 
Добрый день, друзья. Ситуация такая, например, есть две ячейки, в одной "апр.18", во второй "апр.18 га", какой код на vba нужно написать, чтобы эти ячейки считались равны и в ячейке C1 выводился "+". У меня что-то посредством попыток вставить звёздочки в разные места ничего не получилось
VBA. Изменить источник данных сводной таблицы
 
Всем здравствуйте, вот код, который определяет источник данных сводной таблицы:
Код
ActiveSheet.PivotTables("СводнаяТаблица1").ChangePivotCache ActiveWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "P:\а\аа\ааа\life\расчёт\[life_05.12.2017.xlsx]maxjv!R1C1:R104543C21" _
        , Version:=xlPivotTableVersion14)
Мне интересно, можно каким-то образом прописать
Код
maxjv!R1C1:R104543C21
не через RC

Например,
Код
maxjv!"a1:t" & cells(rows.count,1).end(xlup).row

Что-нибудь в этом духе, то есть чтобы можно было прописать изменение источника данных в зависимости от количества строк на листе

Подтянуть значения ячеек по совпадению наименований
 
Всем доброго времени. Не могу додумать, как прописать код в VBA. Есть два листа, на листе 1 есть список поставщиков, к которым накопительно копируются значения. На втором листе есть список тех же поставщиков, но они расположены не по порядку. Нужно подтянуть на лист один в следующий пустой столбец значения по каждому поставщику со второго листа

Всё просто, если воспользоваться функцией ВПР, но проблема в том, что на каждом листе значения формируются накопительно. То есть в следующий раз на первом листе будет 4 столбца значений, а на втором 2 (при этом значения на втором листе всегда сортируются по последнему столбцу в порядке возрастания, поэтому 1-я колонка с наименованиями каждый раз в разном порядке)

В общем, если кто подскажет, как сделать так, чтобы искать по совпадению наименований в массивах на каждом листе, буду очень благодарен
Задать массив наименований листов
 
Всем добра, подскажите, как правильно задать массив наименований листов, чтобы использовать его в цикле. Вот кусок кода (ошибка в строке задавания переменной s=..)
Цель - чтобы не прописывать одинаковый порядок действий для разных листов, записать это циклом

Код
Dim s() As String, i As Long
Workbooks.Open ThisWorkbook.Path & "\pharmacies\pharmacies.xlsx"
s = Array("adv", "vapt", "edel", "mapt+", "tonus", "mapt")
Set pharm = Workbooks("pharmacies.xlsx")
For i = 0 To UBound(s)
pharm.Sheets(s).Activate
Range("a2:j" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
app.Activate
Range("a" & Cells(Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial xlPasteValues
Next i
Отправить несколько вложений в одном письме
 
Всем доброго времени суток, подскажите, можно ли подобным образом отправить несколько файлов одним письмом?
Код
Attachments.Add "C:\out\test.xlsx"

Убрать знак "$" из адреса ячейки
 
Всем доброго времени суток, наткнулся на проблему, никак не получается от неё уйти. Когда я задаю адрес ячейки переменной и вставляю переменную в формулу, адреса ячеек закрепляются знаком "$". При протягивании формулы вниз, формула во всех ячейках остаётся одинаковой. Подскажите, как задать адрес ячейки, чтобы он не закреплялся

Вариант - прописать адреса ячеек не через переменную, я не учитываю, поскольку при каждом расчёте ячейки будут сдвигаться

Код
Sub test()
Dim lr As Long, lc As Long, k As Variant, l As Variant, p As Variant, b As String, a As String, wlr As Long, wlc As Long
lc = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
lr = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
b = Cells(2, lc).Address
a = Cells(2, lc - 1).Address
ActiveSheet.Cells(2, lc).FormulaLocal = "=" & b & "-" & a
ActiveSheet.Range(Cells(2, lc), Cells(lr - 1, lc + 1)).FillDown
End Sub
Изменено: olom - 27.09.2017 09:30:36
Поиск файла по неполному имени, Вывести максимальную дату изменения файла из папки, если известно только часть имени файла
 
Добрый день всем, подскажите пожалуйста, как вывести дату изменения файла, если неизвестно полное имя файла.

В папке есть файлы, названия которых: pr_2017_9_26_10_10_22_AM.txt ; pr_2017_9_26_10_14_01_AM.txt и т.п.
Код
Sub proverka()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("\\go-file01\папка1\папка2\папка3\11111\1" & "\" & "pr_" & Format(Date, "yyyy_m_dd") & "_*" & ".txt")
mStr = mStr & "Дата последней модификации мой файл - " & File.DateLastModified & vbCrLf
MsgBox mStr
End Sub
То есть мне необходимо найти файл с сегодняшней датой, которая пишется в формате "_2017_9_26", при этом, файлов с этой датой может быть несколько, либо вывести самую крайнюю дату изменения любого из файлов, находящихся в этой папке. У всех файлов из папки в наименовании неизменно только "pr" и формат .txt
Изменено: olom - 26.09.2017 09:09:48
Продлить источник данных на графике
 
Всем доброго времени суток. Не получается продлить программно источник данных для графика. У меня написан код, который открывает книгу с графиком и копирует рассчитанные значения в первый пустой столбец справа. То есть, сейчас источник данных выглядит так: ='для графиков'!$A$1:$M$9. Сегодня я запускаю расчёт и по его окончанию в стобец N скопируются значения. После чего нужно, чтобы источник данных продлился на один столбец правее
Код
Sub graph()
ActiveWorkbook.Sheets("для графиков").Cells(2, lastcol + 1).PasteSpecial
Cells(1, lastcol + 1).FormulaR1C1 = "=TODAY()"
ActiveWorkbook.Sheets("графический").Select
'lastdia = kr.Sheets("для графиков").Cells(1, Columns.Count).End(xlToLeft).Column
ActiveSheet.ChartObjects("Диаграмма 1").Activate
ActiveChart.PlotArea.Select
'ActiveChart.SetSourceData Source:=Sheets("для графиков").Range("A1" & lastdia)
End Sub
Выполнить формат по образцу в цикле
 
Прошу прощения, если тему назвал непонятно, не могу придумать адекватное название

Всем доброго здравия, имеется код, который при выполнения цикла последовательно вставляет таблицу ("a1:g") с одного листа на другой отступая от каждой предыдущей вставки две строки вниз. Не получается прописать, чтобы после каждой вставки таблицы, макрос выполнял для только что скопированной таблицы "формат по образцу"
Код
Sub mcrs1()
Dim i As Long
    
For i = 5 To 12 Step 1
    lstr = Worksheets("copy").Cells(Rows.Count, 1).End(xlUp).Row + 2
    [w2] = Worksheets("ras").Cells(i, 29)
    [x2] = Worksheets("ras").Cells(i, 30)
    Call fltr2
    Worksheets("dinc").Activate
    Range("a1:g10").Copy
    ActiveWorkbook.Sheets("copy").Activate
        If Worksheets("copy").Range("a1") <> "" Then
            Worksheets("copy").Range("A" & lstr).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            Worksheets("copy").Range("A1").PasteSpecial Paste:=xlPasteFormats
        End If
        If Worksheets("copy").Range("a1") = "" Then
            Worksheets("copy").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            Worksheets("copy").Range("A" & lstr).PasteSpecial Paste:=xlPasteFormats
   
        End If
    ActiveWorkbook.Worksheets("ras").Activate
Next i
End sub

В моём случае формат по образцу делается только для первой таблицы, которая вставляется в ячейку "a1". Остальные таблицы просто вставляются на другой лист значениями, формат по образцу для них не выполняется
Цикл перебора фильтров в сводной таблице
 
Добрый день, подскажите, что не так в моём коде

Нужно, чтобы макрос перебрал все фильтры, которые заданы массивом, копировал и вставлял определённое значение (в примере показано)

В идеале нужно, чтобы цикл перебирал ещё и клиентов, как написать такой, я пока не могу понять. То есть, сначала выбирается клиент 1, затем перебираются все поставщики, заданные в массиве для этого клиента, копируя и вставляя значение; затем тоже самое со вторым клиентом, для которого поставщики заданы уже другим массивом и так до крайнего клиента
Код
Sub test()
Dim k As Long, a()
On Error Resume Next
Dim pvtItem As PivotItem
With pvtOne
With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Клиент")
For Each pvtItem In .PivotItems
Select Case pvtItem
Case "1"
pvtItem.Visible = True
Case Else
pvtItem.Visible = False
End Select
Next pvtItem
End With
End With
On Error GoTo 0
a = [G1:G4].Value
With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Поставщик")
For k = 1 To UBound(a, 1)
If k Then
.PivotItems(k).Visible = True
Else:
.PivotItems(k).Visible = False
End If
Sheets(1).Activate
Range("d5").Copy
lstr = ActiveSheet.Cells(Rows.Count, 11).End(xlUp).Row
Range("l2" & lstr).Paste
Next
End With
End Sub
Изменено: olom - 05.09.2017 07:47:01
VBA. Фильтрация значений в нескольких столбцах, Что делать, если нет искомого значения в фильтре?
 
Привет всем, мне нужно отфильтровать, например, две крайние колонки справа по условиям "дефектура" и "автомат". Но если, например, одно из условий не выполняется (в колонке со значениям "Автомат" пустые ячейки), нужно, чтобы отображалось только первое условие, т.е. стоял фильтр в крайней справа колонке на значении "дефектура". Подскажите, как это прописать, пожалуйста
Формула длиннее 255 текстовых символов
 
Добрый день всем ещё раз, написал простенький код:
Код
Sub frml()
y1 = Range("k2").Value
y2 = Range("k3").Value
y3 = Range("k4").Value
y4 = Range("k5").Value
y5 = Range("k6").Value
y6 = Range("k7").Value
y7 = Range("k8").Value
y8 = Range("k9").Value
y9 = Range("k10").Value
y10 = Range("k11").Value
y11 = Range("k12").Value
y12 = Range("k13").Value
y13 = Range("k14").Value
y14 = Range("k15").Value
m1 = Range("l2").Value
m2 = Range("l3").Value
m3 = Range("l4").Value
m4 = Range("l5").Value
m5 = Range("l6").Value
m6 = Range("l7").Value
m7 = Range("l8").Value
m8 = Range("l9").Value
m9 = Range("l10").Value
m10 = Range("l11").Value
m11 = Range("l12").Value
m12 = Range("l13").Value
m13 = Range("l14").Value
m14 = Range("l15").Value
d1 = Range("n2").Value
d2 = Range("n3").Value
d3 = Range("n4").Value
d4 = Range("n5").Value
d5 = Range("n6").Value
d6 = Range("n7").Value
d7 = Range("n8").Value
d8 = Range("n9").Value
d9 = Range("n10").Value
d10 = Range("n11").Value
d11 = Range("n12").Value
d12 = Range("n13").Value
d13 = Range("n14").Value
d14 = Range("n15").Value
i = Range("o1").Value
Range("h12").Select
ActiveCell.FormulaR1C1 = _
"=CUBESET(""serv-olap"";""{" & i & "[" & y1 & "].[" & m1 & "].[" & d1 & "]," & i & "[" & y2 & "].[" & m2 & "].[" & d2 & "]," & i & "[" & y3 & "].[" & m3 & "].[" & d3 & "]," & i & "[" & y4 & "].[" & m4 & "].[" & d4 & "]," & i & "[" & y5 & "].[" & m5 & "].[" & d5 & "]," & i & "[" & y6 & "].[" & m6 & "].[" & d6 & "]," & i & "[" & y7 & "].[" & m7 & "].[" & d7 & "]," & i & "[" & y8 & "].[" & m8 & "].[" & d8 & "]," & i & "[" & y9 & "].[" & m9 & "].[" & d9 & "]," & i & "[" & y10 & "].[" & m10 & "].[" & d10 & "]," & i & "[" & y11 & "].[" & m11 & "].[" & d11 & "]," & i & "[" & y12 & "].[" & m12 & "].[" & d12 & "]," & i & "[" & y13 & "].[" & m13 & "].[" & d13 & "]," & i & "[" & y14 & "].[" & m14 & "].[" & d14 & "]}"";""(несколько элементов)"")"

        
End Sub


Вылетает с ошибкой, я так понимаю из-за того, что если формулу просто ввести в ячейку экселя, он ругается, что текстовые значения в формуле не могут превышать 255 знаков, помогите, пожалуйста, кто в курсе, как решить сей неловкий момент.

Формула выглядит так:
Код
=КУБМНОЖ("serv-olap";"{[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-29],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-28],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-27],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-26],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-25],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-24],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-23],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-22],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-21],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-20],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-19],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-18],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-17],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-16]}";"(несколько элементов)")
Изменено: olom - 29.08.2017 13:15:23
Ссылка на ячейку в формуле КУБМНОЖ
 
Добрый день, товарищи, есть вопрос. Если олап-куб преобразовать в формульный вид, то фильтр с датой отображается:
Код
=КУБМНОЖ("serv-olap";"{[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-07],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-08],[Дата 2].[Год-Месяц-День].[Атрибут Год].&[2017].[Август].[2017-08-09]}";"(несколько элементов)")
Можно ли как-то прописать год, месяц и дату ссылками на ячейки, например:
Код
=КУБМНОЖ("serv-olap";"{[Дата 2].[Год-Месяц-День].[Атрибут Год].&[A1].[A2].[A3].....?
Изменено: olom - 29.08.2017 08:52:24
VBA. Фильтр выбора дат в сводной таблице
 
Всем доброго времени суток. Не получается решить проблему. Есть сводная таблица, в колонках - даты. Мне нужно, чтобы фильтром отбирались, например, 5 крайних дат, считая от сегодняшней. То есть, если сегодня 18.08.2017, нужно, чтобы выбирались 5 дат вместе с этой

Ещё момент, в оригинальном файле сводная создана на основе sql и в ней даты в формате "2017-08-18", не знаю, что это за формат такой
Фильтр сводной таблицы. Выбрать всё, кроме..
 
Привет всем. Столкнулся с проблемой, не могу написать код в vba, который будет убирать из фильтра сводной таблицы "" (пустое значение). При этом отмечу, что при обновлении сводной, значения фильтра постоянно изменяются, нужно, чтобы фильтр включал все значения, кроме пустых. Буду благодарен за помощь
Вставить значения в первую пустую строку ниже
 
Привет всем. Не получается настроить код. Есть некое количество таблиц, в которых каждый раз будет разное количество строк. Нужно, чтобы все эти таблицы скопировать значениями в определённую ячейку так, чтобы они вставлялись друг за другом. Перепробовал несколько разных способов, не получается. Первая таблица вставляется, как нужно, за ней вторая, а остальные вставляются туда же, куда и вторая, перезаписывая значения поверх. Буду благодарен за помощь
VBA. Протянуть формулу до крайней заполненной ячейки
 
Доброго времени суток, товарищи. Суть: есть несколько столбцов, слева от каждого написана формула, нужно протянуть её до нижней заполненной ячейке в конкретном столбце. Вычитал как сделать это через start-endcol. Проблема заключается в том, что если условный первый столбец имеет 100 строк, а второй 50, то обе формулы протягиваются до 100-й строки, а нужно, чтобы первая тянулась до 100-й, а вторая до 50-й.
Код
Sub test()
Dim Endrow As Long
Const StartRow = 2
StartCol = 1
EndCol = 1
Endrow = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Range(Cells(StartRow, StartCol), Cells(Endrow, EndCol)).FillDown
StartCol = 5
EndCol = 5
Endrow = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Range(Cells(StartRow, StartCol), Cells(Endrow, EndCol)).FillDown
StartCol = 9
EndCol = 9
Endrow = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Range(Cells(StartRow, StartCol), Cells(Endrow, EndCol)).FillDown
End Sub
VBA. Фильтр в сводной таблице
 
Добрый день. Подскажите, есть ли возможность написать такой код макроса, чтобы постоянно не перебирать все наименования в фильтре сводной таблице.

Суть: есть сводная таблица (олап-куб), в первом столбце есть разные наименования, мне нужно выбрать каждое из них по отдельности и потом сделать одинаковые действия. Поскольку наименований много, приходится каждый раз прописывать большой список "False".

Читал, что-то подобное можно выполнить командой "Case", но у меня не вышло. Знающие люди, помогите, пожалуйста.

В идеале нужно сделать так, чтобы макрос перебирал все названия первого столбца, а затем выполнял для каждого одинаковые действия, а не как в примере
Код
With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Номер")
        .PivotItems("1").Visible = True
        .PivotItems("2").Visible = False
        .PivotItems("3").Visible = False
        .PivotItems("4").Visible = False
    End With
    Sheets("b").Select
    Range("A1").Select
    Selection.Copy
    Sheets("с").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("a").Select
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Номер")
        .PivotItems("2").Visible = True
        .PivotItems("1").Visible = False
        .PivotItems("3").Visible = False
        .PivotItems("4").Visible = False
    End With
    Sheets("b").Select
    Range("A1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("с").Select
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("a").Select
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Номер")
        .PivotItems("3").Visible = True
        .PivotItems("2").Visible = False
        .PivotItems("4").Visible = False
        .PivotItems("1").Visible = False
    End With
    Sheets("b").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("A1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("с").Select
    Range("C1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("a").Select
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Номер")
        .PivotItems("4").Visible = True
        .PivotItems("3").Visible = False
        .PivotItems("2").Visible = False
        .PivotItems("1").Visible = False
    End With
    Sheets("b").Select
    Range("A1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("с").Select
    Range("D1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
Задать переменную для книги с неопределённым названием
 
Доброго времени суток.

Суть в том, что у меня есть макрос, который работает с тремя книгами одновременно. Одна из этих книг - шаблон, куда вставляются данные из первой книги. После вставки, я сохраняю книгу с названием сегодняшней даты. Т.е. название книги меняется, но мне всё ещё нужно переключаться в эту книгу.

Вот не могу понять, как задать переменную для этой книги.. Потому что у книги каждый день будет другое название.

Накидал код, для примера, то как я пытался это сделать, ничего не получилось. Подскажите, пожалуйста, если кто-нибудь сталкивался с подобным

Код
Dim p As Workbook
iPath = ThisWorkbook.Path & "\"
iFilename = Format(Date, "yyyy/mm/dd") + ".xlsm"
Range("A1").Copy
Workbooks.Open Filename:=("P:\ver.1.1\2.xlsx")
Sheets(1).Activate
Range("a1").PasteSpecial
ThisWorkbook.SaveAs (iPath + iFilename)
Workbooks("2.xlsx").Activate
Sheets(1).Activate
Range("A1").Copy
Set p = Workbooks.Open("P:\ver.1.1\" & Format(Date, "yyyy/mm/dd") & ".xlsm")
p.Sheets(1).Activate
Range("A2").PasteSpecial

Выбрать фильтром каждую группу и скопировать данные в другую книгу
 
Добрый день, товарищи, написал вот такой кусок макроса:
Код
Sub itog()
Dim ras As Workbook
Dim itog As Workbook
Set ras = ActiveWorkbook
Set itog = Workbook.Open("c:..")
lastrow = Cells.SpecialCells(xlLastCell).Row
itog.Worksheets(1).Activate
Range(Cells(2, 1), Cells(1000000, 21)).ClearContents
ras.Worksheets("Лист2").Activate
Range("A1:C1").Select
    Selection.AutoFilter
    Range("A1").AutoFilter Field:=1, Criteria1:="аб", Operator:=xlAnd
Range("a2:c" & lastrow).Copy
itog.Worksheets(1).Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
    
End Sub

Суть в том, что есть данные, разделённые по определённым группам (в первом столбце). Мне нужно выбрать фильтром каждую группу (в колонке "а") и скопировать данные в другую книгу на определённый лист (в прикреплённом примере справа указаны примеры групп, а справа номера листов, куда они должны быть скопированы)

Возможно кто-то знает, как сделать цикл, который будет выбирать каждую группу в фильтре по очереди и копировать её в другую книгу на определённый лист

Если не получится, я сам напишу код для каждой группы, просто в целях повышения знаний по vba интересно узнать, как же сделать такой цикл

За любые советы и помощь буду вам весьма благодарен:)

VBA. Исключить пустые ячейки в массиве
 
Всем доброго дня

Ситуация такова, есть макрос, с помощью которого тянутся минимальные и максимальные значения (в файле пример). В прикреплённом файле последние четыре столбца - то что подтягивается макросом, а перед ними столбцы с тем, как оно должно быть.

То есть, если есть код, который повторяется три раза (например код 1 со значениями 5, 10 и пустое), нужно чтобы подтянулось минимальное 5 и максимальное 10, а макрос подтягивает минимальное 0, так как есть одна пустая ячейка. Пытался разобраться сам, не вышло

Макрос мне написал форумчанин за что ему огромное спасибо, но из-за отсутствия навыков в вба, сам до ума я довести не смог

Буду очень признателен, если кто-то подскажет, что необходимо добавить в код
VBA. Максимальное / минимальное значение в массиве по условию
 
Добрый день, товарищи. Помогите в вопросе, пожалуйста.

В прикреплённом файле есть таблица. Имеется код, старая и новая цены. Мне нужно посчитать для каждого кода минимум и максимум по новой и старой ценам.
Проблема в том, что объём данных колосальный. И формулы массива рассчитываются больше часа.

Не прошу, дабы не быть наглым, чтобы сделали задачу за меня, укажите ход действий, как прописать, чтобы расчёт был внутри макроса, а в ячейке экселя появлялось итоговое значение

VBA я знаю пока что не очень хорошо, долго копался на форумах, но подобной задачи, где бы искалось максимальное и минимальное значение по условию, не нашёл.. в общем, под себя ничего из найденного переписать не вышло
Вставка значениями с помощью VBA
 
Добрый день, товарищи. Помогите, пожалуйста. С вба я дружу не очень хорошо, только начинаю немного изучать. Суть в том, что я написал код для автоматического копирования данных с одного листа на другой . Нужно, чтобы все ячейки вставились значениями, но работает только функция Paste.

Пробовал PasteSpecial Paste:=xlPasteValues, не работает, выдаёт ошибку. А если я просто беру копирую часть ячеек иначе (Range(...).Copy и т.д., тогда значениями вставляется..)

Подскажите, в чём дело. Переписывать по-другому макрос не хочу, потому что практически не умею и на это уйдёт много времени, ибо на этот код убил массу времени

Код
Sub abc()
Workbooks("111.xlsm").Activate
Application.Calculation = xlManual
Worksheets("Лист1").Activate
   Range(Cells(3, 1), Cells(1000000, 21)).ClearContents
Worksheets("выгрузка").Activate
vvv = Worksheets("Лист1").Cells(Worksheets("Лист1").Rows.Count, 1).End(xlUp).Row + 1 
ppp = Worksheets("выгрузка").Cells(Worksheets("выгрузка").Rows.Count, 1).End(xlUp).Row 
        Worksheets("111.xlsm").Range("a2:q" & ppp).Copy
        Worksheets("Лист1").Activate
        Worksheets("Лист1").Range("A" & vvv).Select
        ActiveSheet.Paste
        
Application.Calculation = xlAutomatic

End Sub
Изменено: olom - 23.01.2017 13:45:30
Разбить ячейку с текстом на несколько строк, помогите, пожалуйста
 
суть в том, что есть более 10 000 строк, в крайних правых ячейках записаны значения через точку с запятой, нужно разбить всё это добро на строки
Т.е., если есть запись шурупы | 1;2;3 | - строка
Должно получиться три строки:
шурупы 1
шурупы 2
шурупы 3
Подскажите, пожалуйста, в ручную разбить такое количество займёт очень много времени
Наименьшее по двум условиям, Помогите, пожалуйста, с формулой
 
Помогите, пожалуйста, я ещё не особо продвинутый в экселе. Пытался полдня написать формулу через функцию "наименьший", ничего не вышло.

Суть такова, чтобы в последней колонке отобрать, например, 2 наименьших значения %ТН по группе производителя и по диапазону.
Т.е., чтобы в последней колонке знаком "+" обозначились наименьших 2 значения %ТН по группе "Экспорт" и диапазону "20-50", затем по группе "Экспорт" и диапазону "100-200" и так по каждой группе.

В ручную не вариант, поскольку в файле, который мне необходимо сделать, более 100 000 значений, а формулу придумать не могу..
Страницы: 1
Наверх