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

Страницы: 1 2 След.
Возможно ли через VBA создавать новые диаграммы?, в 2016 exel завезли ряд новых диаграмм
 
В exel 2016 появились новые типы диаграмм(   Солнечные лучи ... Ящик с усами ...  Диаграмма Парето ... Частотная гистограмма)
Подскажите возможно ли эти диаграммы построить с помощью VBA?  В списке с типами диаграмм я нашел только диаграммы от 1997 года :(
хотелось бы создать диаграмму солнечные лучи программно, но вот даже хз как это сделать.
https://bettersolutions.com/excel/charts/vba-chart-types.htm
Скрытый текст
Изменено: KLIJIN - 21.03.2020 21:46:31
Сортировка на VBA выдает error: 1004 Method Range of Object Global failed
 
Оу, правда. Похоже проблема где-то на моей стороне. После перезапуска самого екселя все макросы заработали.
Благодарю)  :)  
Сортировка на VBA выдает error: 1004 Method Range of Object Global failed
 
Цитата
Андрей_26 написал: нет столбца с названием "Дата операции". Есть столбец "Дата"
Ваш вариант так же на 5 строчке кода выдает туже самую ошибку. Код не рабочий, не могу понять почему
Сортировка на VBA выдает error: 1004 Method Range of Object Global failed
 
Есть файл с таблицей, которую нужно отсортировать по датам от максимальной к минимальной и код VBA
Но строка  Sh2.ListObjects("Tablica11").Sort.SortFields.Add Key... выдает ошибку. Method Range of Object Global failed
подскажите в чем может быть проблема :(
файл для примера во вложении.
Код
Sub Макрос7()
wb2 = ActiveWorkbook.Name
Set Sh2 = Workbooks(wb2).Sheets(1)
bbb = Sh2.Name  
    With Sh2 
        LastRow2 = .Cells(Rows.Count, 1).End(xlUp).Row 'последняя строка таблицы 
        LastCollumn2 = .Cells(1, Columns.Count).End(xlToLeft).Column  ' последний столбец таблицы 
        .ListObjects.Add(xlSrcRange, Range(Cells(1, 1), Cells(LastRow2, LastCollumn2)), , xlYes).Name = "Tablica11"
    End With
    Sh2.Activate 
    Sh2.ListObjects("Tablica11").Sort.SortFields.Clear 
    Sh2.ListObjects("Tablica11").Sort.SortFields.Add Key:=Range("Tablica11[[#All],[Дата операции]]"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    
    With Sh2.ListObjects("Tablica11").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
Изменено: KLIJIN - 19.03.2020 17:39:18
Расчет ущерба от простоя автомобиля после аварии, оъединить две формулы с различными переменными и условиями в одну
 
Файл с рабочей единой формулой для всех ячеек во вложении. Хотя использовать такое количество вложений, конечно, форменный мазохизм)
суммы заменены на универсальную формулу АГРЕГАТ(9;7;D2;E2)
Еще в ячейках с числами должен быть именно числовой формат, т.к. часть "цифр" были с проб ела ми т.е фактически текстом, поэтому их формулы не считали и при замене на нормальный формат отскочили в левый край ячейки, выдав себя.  
Изменено: KLIJIN - 03.02.2020 20:47:27
Умный подсчет на основании значений ячеек
 

Как вариант, можно реализовать через создание дополнительного столбца, =B2&C2
Код
=ЕСЛИОШИБКА(ВПР(B2&C2;A:D;4;0);0)+ЕСЛИОШИБКА(ВПР(C2&B2;A:D;4;0);0)
либо
Код
=ЕСЛИОШИБКА(ЕСЛИОШИБКА(ВПР(J2&K2;I:L;4;0);0)+ЕСЛИОШИБКА(ВПР(K2&J2;I:L;4;0);"");"")
файл во вложении
впр можно индексом заменить и дополнительный столбец вправо поставить
Код
=ИНДЕКС(D:D;ПОИСКПОЗ(B2&C2;A:A;0);1)+ИНДЕКС(D:D;ПОИСКПОЗ(C2&B2;A:A;0);1)
Изменено: KLIJIN - 03.02.2020 19:22:39
Расчет ущерба от простоя автомобиля после аварии, оъединить две формулы с различными переменными и условиями в одну
 
Цитата
Jykermann написал:
Если Вы хотите получить числовое значение, то столбцы D и Е должны содержать суммы, а не "Нет". В противном случае формула проставляет "Нет".
Не обязательно. В формулах можно заменить D3+E3 на АГРЕГАТ(9;6;D3:E3). Она хавает все что можно суммировать пропуская мусор.
VBA.Сортировка по столбцу. Ошибка Run-time error '1004'
 
В общем разобрался сам. Можно без нескольких уровней with обойтись.  Тему можно закрывать.  
Изменено: KLIJIN - 01.02.2020 21:10:55
VBA.Сортировка по столбцу. Ошибка Run-time error '1004'
 
Всё равно код не оживает
VBA.Сортировка по столбцу. Ошибка Run-time error '1004'
 
даже если изменить переменную, код всё равно не заработает :(
Код
Sub SORT()
Dim r As Range, wb1 As String, Sh1 As Worksheet
wb1 = ActiveWorkbook.Name 
Set Sh1 = Workbooks(wb1).Sheets(1) 
LastRow = Cells(Rows.Count, 1).End(xlUp).Row 
lastcollumn = Cells(1, Columns.Count).End(xlToLeft).ColumnCells.AutoFilter 
    With Sh1
        Set r = .Range(Cells(1, 1), Cells(LastRow, lastcolumn))
        With .SORT
            .SortFields.Clear
            .SortFields.Add Key:=Range("O1:O" & LastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange r
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End With
End Sub
Изменено: KLIJIN - 01.02.2020 12:40:23
Сглаживание графика - вычленение локальных максимумов
 
А какие названия осей? Как вариант, через VBA циклом от начала графика к концу,  если сумма нескольких данных через равный промежуток отличается от суммы предыдущих значений на определенную константу(0,02 или 0,017 и тд) то данные после определенного значения удаляются.
Конкретную формулу можно будет сделать только при наличии каких либо данных
Изменено: KLIJIN - 01.02.2020 09:16:23
VBA.Сортировка по столбцу. Ошибка Run-time error '1004'
 
Пробую первый раз сделать сортировку по столбцу, но VBA выдает ошибку Run Time error 1004. Недопустимая ссылка для сортировки. Просьба подсказать где ошибка в коде.  
Я хочу сделать так что бы таблица сортировалась по 15 столбцу O, по возрастанию, при этом формулы в столбце P не должны сбиваться.
Код
Sub SORT()
Dim r As Range, wb1 As String, Sh1 As Worksheet
wb1 = ActiveWorkbook.Name 
Set Sh1 = Workbooks(wb1).Sheets(1) 
LastRow = Cells(Rows.Count, 1).End(xlUp).Row 
lastcolumn = 13
Cells.AutoFilter 
    With Sh1
        Set r = .Range(Cells(1, 1), Cells(LastRow, lastcolumn))
        With .SORT
            .SortFields.Clear
            .SortFields.Add Key:=Range("O1:O" & LastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange r
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End With
End Sub
Изменено: KLIJIN - 01.02.2020 12:39:40
Отказ в редактировании макроса, Изменение структуры макроса
 
VideoAlex, только пересохранить макрос в новый файл и каждый раз запускать файл с нужным макросом. Я так делал :(  
Выполнить повторяющееся действие макроса в заданных листах книги
 
Цитата
alextlt написал:
Я единственное не понял, как тогда он определяет, что надо пройтись по листам, а не ячейкам, или чему-нибудь еще...?Код ? 1for wsN = 1 to 16
Там два цикла,  первый: for WorksheetsN =1 to 16 next worksheesN
и внутри него Select Case Range("V7").Value
макрос сначала выбирает лист потом меняет ячейки, потом выбирает следующий лист снова меняет и так до 16го листа
Как с помощью VBA искать значения из последнего листа
 
Или может кто то знает как указать 3д ссылку в формуле  vlookup?
Как с помощью VBA искать значения из последнего листа
 
Пробовал Cells(5,15).FormulaR1C1 = "Vlookup(RC2, sheets(sheets.count).range(c1:c25),3,0)"
Но возникает ошибка 1004
Изменено: KLIJIN - 11.10.2016 14:55:19
Как с помощью VBA искать значения из последнего листа
 
Подскажите как в vba с помощью функции ВПР или Vlookup искать значения не на каком то конкретном листе, а на последнем.  Что ни напишу постоянно ошибка возникает.
Подскажите как посчитать итоговый ранг от двух других без промежуточных вычислений.
 
Подскажите пожалуйста, как в столбец J вставить формулу из столбца L без ссылки на столбец M. То есть я хочу что бы в одном столбце считалось итоговое место без промежуточных вычислений) А как это сделать не пойму  :) Возможно там нужна формула массива, но  у меня почему-то возникает ошибка.  
Изменено: KLIJIN - 01.06.2016 09:04:31
Как Транспонировать таблицу
 
Подскажите как транспонировать вертикальную таблицу, с постоянно повторяющимися "шапками" в нормальную. Как во вложении
Думаю проще всего сделать это через VBA но не могу придумать легкий макрос, который бы не положил слабый комп на пару часов, т.к. в изначальной таблице несколько десятков тысяч записей)
Макрос грубо говоря должен на новом листе или просто рядом с изначальным списком  создать нормальную таблицу.
Выбрать несколько элементов в фильтре сводной таблицы с помощью VBA, Как заставить макрос выбирать конкретные позиции в фильтре сводной таблицы?
 
RAN еще вопрос, а если нужных мне значений много.  Как задать все города начинающиеся на "М" и "Т" или заканчивающиеся на  "А" поменял таким образом, появился рантайм 1004 Нельзя установить свойство Visible  класса PivotItem
Код
Sub Макрос123()
    For Each PivotFields In ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("город").PivotItems
        Select Case PivotFields.Name
        Case "Т*", "М*"
        Case Else
            PivotFields.Visible = False
        End Select
    Next
End Sub
 
Изменено: KLIJIN - 18.07.2014 23:02:55
Выбрать несколько элементов в фильтре сводной таблицы с помощью VBA, Как заставить макрос выбирать конкретные позиции в фильтре сводной таблицы?
 
RAN  оно!  Спасибо)
Выбрать несколько элементов в фильтре сводной таблицы с помощью VBA, Как заставить макрос выбирать конкретные позиции в фильтре сводной таблицы?
 
я сам определяю нужный мне список элементов фильтра. вообще я думал у элементов  фильтра есть какой-то аналог такого кода

Код
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Менеджер").PivotFilters.Add2 Type:=xlCaptionBeginsWith, Value1:="М*"
 
Изменено: KLIJIN - 18.07.2014 22:45:04
Выбрать несколько элементов в фильтре сводной таблицы с помощью VBA, Как заставить макрос выбирать конкретные позиции в фильтре сводной таблицы?
 
Как заставить макрос выбирать конкретные позиции в фильтре сводной таблицы?
Пробую записать макрорекодером но он не выбирает конкретные позиции а скрывает ненужные. Пример:
Код
     With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("город")
        .PivotItems("Тула").Visible = False
        .PivotItems("(blank)").Visible = False
    End With
Проблема в том, что у меня выгружается всегда разное количество данных, иногда много лишних, иногда лишних почти нет. То есть если выгрузятся лишние, то они не будут скрыты макросом. А если те позиции которые прописаны в коде не выгрузятся, то будет рантайм. прикрепил файл примера если кому-то нужен)
Изменено: KLIJIN - 18.07.2014 22:14:38
подскажете по поводу экспорта из Access
 
Ребят, в Access я совсем не разбираюсь, но срочно нужно решить вопрос. Есть текстовая выгрузка в которой больше миллиона строк и куча лишних данных, соответственно напрямую в Excel импортировать данные не получится, excel обрезает данные. Но в access насколько я понимаю такого ограничения нет. Я импортирую данные в access делаю фильтр по нужным мне строкам, пробую экспортировать результат в excel, но возникает ошибка: "одновременно выделено больше записей чем допускается копировать в буфер обмена разделите записи на две или несколько групп, а затем скопируйте группы поочередно... и что-то про 65 000". Версия офиса 2010. каким образом можно сделать экспорт только отфильтрованных данных в эксель если строчек там например где-то в районе 400 000.
при попытке создания сводной возникает Run-time error '13': Type mismatch
 
Цитата
Sanja пишет:
У меня Ваш макрос отработал без проблем. Может дело в исходных данных? Покажите Ваш файл
В 2013 версии у меня тоже все прекрасно работает.  Если бы дело было в исходных данных возникала бы совершенно другая ошибка, связанная именно с ошибкой данных вроде  run time 1027 или 1024.   А тут (в Exce2010) ошибка типа данных. Как она может возникать я хз  :(
Изменено: KLIJIN - 29.05.2014 10:51:00
при попытке создания сводной возникает Run-time error '13': Type mismatch
 
Помогите найти ошибку в коде, скоро мозг взорвется   :(     вроде все делаю правильно, но при попытке создания сводной в VBA  возникает рантайм '13': Type mismatch
версия еxcel 2010.
Код
Sub aaa()
Dim PTdat As Range, x As Long, y As Byte
With Sheets("Лист1").Range("a1").CurrentRegion
x = .Rows.Count
y = .Columns.Count
End With
Set PTdat = Sheets("Лист1").Cells(1, 1).Resize(x, y)
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PTdat, _
Version:=xlPivotTableVersion14).CreatePivotTable tabledestination:=Cells(3, 1), Defaultversion:=xlPivotTableVersion14
End Sub
 
еще пробовал в источнике данных для сводной указать путь на прямую на массив данных но результат тот же    :(  
Код
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=Sheets("Лист1").Range("a1").CurrentRegion, Version:=xlPivotTableVersion14).CreatePivotTable tabledestination:=Cells(3, 1), Defaultversion:=xlPivotTableVersion14
Хотя дома,  в Excel 2013,  этот код работает без проблем
Изменено: KLIJIN - 29.05.2014 10:16:50
как заменить данные в ячейках в зависимости от того равны ли между собой другие ячейки
 
Для Екселя они одинаковые, для VBA - разные)
за код спасибо) Кажется это то,  что мне нужно
Изменено: KLIJIN - 20.05.2014 21:30:30
как заменить данные в ячейках в зависимости от того равны ли между собой другие ячейки
 
Седьмая просто под руку попалась. В файле примере все наглядно видно
как заменить данные в ячейках в зависимости от того равны ли между собой другие ячейки
 
Как перевести на язык VBA:
От B4 до Bi, где
i = количество строк в таблице
Если С7 = D7 то B7 = "x"
Если С7 = Е7 то B7 = "y"
Изменено: KLIJIN - 20.05.2014 20:53:10
как заменить данные в ячейках в зависимости от того равны ли между собой другие ячейки
 
Помогите написать  функцию или макрос, который бы менял данные в столбце, не выходя за область таблицы в зависимости от того равны ли между собой другие ячейки. Понимаю что описание корявое, но голова под вечер плохо соображает. Еще понимаю, что там простой цикл нужен, но я с ними пока еще совсем не умею работать.  Пример в приложении
Страницы: 1 2 След.
Наверх