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

Страницы: 1
Форматирование строки по условию
 
спасибо! Работает!
Форматирование строки по условию
 
Доброго дня!
Работаю над небольшой автоматизацией рутиных задач.
Я очень хотел бы, что бы при нахождении значения, моя строка в таблице закрашивалась определенным цветом.
Пока научился только находить, определять и закрашивать нужные значения:

Код закрашивает только одну ячейку содержащую нужные параметры.
Мне нужно, что бы код закрашивал строку до столбца К.
Можете помочь допилить код?
Код
Sub format_this()

Sheets("test").Activate

Dim c As Range


For Each c In Range("B5:B24")
    If c = "1M-3M" Or c = "Объем" Then
    c.Interior.Color = vbBlue
    End If
    
    Next c


End Sub
Формат диапазона ячеек через VBA
 
Доброго дня, форумчане.
Пытаюсь автоматизировать процесс редактирования табилцы в excel
Есть диапазон ячеек В3-В14, которому соответствует столбец С3-С14.
Иногда бывает так, что при выгрузке, в сводной таблице сбиваются форматы.
Например в ячейке В6 стоит ноль, но все равно показываются 0,00%, а нужна тоже "-".
Или наоборот есть число, но проценты указаны не в верном формате.
Я написал небольшой макрос, но он работает только с конкретными ячейками, как перевести его на диапазон я не понимаю.
Буду благодарен, если поможете, а то не хочется все условия прописывать вручную :)

Сам код:
Файл во вложении.
Код
Sub zero_format()

If Range("B6").Value = 0 Then
Range("C6").Select
    Selection.Style = "Comma"
Else
    Range("C6").Select
    Selection.Style = "Percent"
    Selection.NumberFormat = "0.00%"

End If

If Range("B8").Value = 0 Then
Range("C8").Select
    Selection.Style = "Comma"
Else
    Range("C8").Select
    Selection.Style = "Percent"
    Selection.NumberFormat = "0.00%"

End If

End Sub
Работа с диалоговой формой VBA: ошибка при математических вычислениях значения TextBox.
 
Товарищи, продолжаю работать с формами.
Подкиньте, пожалуйста, идей по реализации:
Хочется создать динамически изменяемую форму для столбца В.
Есть форма в которую вписываем сроки (срок 1 - срок 2).
Под ними вписывается число для снижения.
На этот промежуток (срок 1 и срок 2) происходит снижение.
Я попробовал сделать ВПР по комбобоксу, с целью определить значение в столбце Б, и потом вычесть из него значение текстбокса.
Но ВПР не работает.
Такой вариант решения задачи считаете возможным или есть другие варианты?


Спасибо.
Работа с диалоговой формой VBA: ошибка при математических вычислениях значения TextBox.
 
Спасибо, разобрался!
Все заработало!
Работа с диалоговой формой VBA: ошибка при математических вычислениях значения TextBox.
 
Переделал.
Ошибку не выдает, но и расчет не верный.
Отнимает от ячейки, значение textbox, как будто оно равно нулю.
Работа с диалоговой формой VBA: ошибка при математических вычислениях значения TextBox.
 
Сделал файл по аналогии с основным рабочим.
Сейчас ошибки нет, но и значение не считает...
Работа с диалоговой формой VBA: ошибка при математических вычислениях значения TextBox.
 
Цитата
Юрий М написал:
Ошибка при КАКОМ значении?
при любом.
Работа с диалоговой формой VBA: ошибка при математических вычислениях значения TextBox.
 
Цитата
Юрий М написал:
А какое значение в TextBox? Попробуйте Val заменить на cdbl
попробовал, тоже не работает.
Значения могут быть как дробные, так и целочисленные.
Работа с диалоговой формой VBA: ошибка при математических вычислениях значения TextBox.
 
Цитата
Ігор Гончаренко написал:
Range("HO9").Value = Range("HO8").Value - Val(TextBox.Value)
К сожалению не работает.
Ошибка сохраняется.
Работа с диалоговой формой VBA: ошибка при математических вычислениях значения TextBox.
 
Доброго дня!
Столкнулся с проблемой работы макроса в диалоговом окне.
Я создал форму с 4 окнами:
Тип Text - имя Currency - тут ссылка на ячейку с названием валюты.
Тип Combobox - имя - ComboBox1 - выпадающий список с вариантами действий.
Тип Text - имя - TextBox1 - сюда вводятся цифры для математических вычислений.
Тип CommandButton - имя - CommandButton1 - кнопка запуска.


Код
Private Sub CommandButton1_Click()
If ComboBox1.Value = "Без_изменений" Then Application.Run "предыдущий_расчет"
If ComboBox1.Value = "Снижение" Then Application.Run "menos"

В CommandButton1, я, через условие if встраиваю все возможные варианты из типа Combobox и даю название макроса для запуска.
В случае первого if, где нет математических вычислений, все отрабатывает нормально.
Второй if, содержит ссылку на макрос, который содержит в себе математические вычисления. Мне необходимо, что бы макрос брал значение, которое будет вписано в поле TextBox1.
В коде я написал ссылку на TextBox1
Код
Sub menos()

Range("HO9").Value = Range("HO8").Value - TextBox.Value

End Sub
При выполнении макроса выдается ошибка

Run_Time error 424
Object required


Что я сделал не так?


Спасибо.
Макросом сохранить файл, чтобы в нём не осталось макросов
 
Спасибо за комментарии.
Попробовал сохранить как xlsx - файл сохраняется, но при открытии появляется ошибка "формат или расширение этого файла являются недопустимыми. Убедитесь, что файл не поврежден и расширегие его имени соответсвтует его формату"
Макросом сохранить файл, чтобы в нём не осталось макросов
 
Коллеги, доброго дня.
Подскажите, что нужно дописать в коде, что бы при сохранении копии файла макросы в копии отключались?

Спасибо.
Код
Sub test()
FilePath = "O:\Exchequer\Sotrudniki\Demin\123.xls"
ThisWorkbook.SaveCopyAs (FilePath)
End Sub
Фильтрация дат в сводной таблице при помощи VBA, Вывод диапазона значений из указанных дат
 
Цитата
yozhik написал: Допишите в 8 строчке после False    Else .PivotItems(i).Visible=True
Попробовал, не помогает.
Обновляю сводную таблицу (соответственно в date_prolongation попадают новые даты), запускаю скрипт, выдает ошибку "Run-time erro 1004 Нельзя утсновить свойство Visible класса PivotItem'/
Все еще помогате выбрать вручную все даты и запустить макрос.

UPD/
Вышел из ситуации:
Код
Sub pivottable1()
Sheets("PivotTable").PivotTables("PivotTable1").PivotCache.Refresh
Sheets("PivotTable").PivotTables("PivotTable1").PivotFields("DATE_PROLONGATION").ClearAllFilters
Dim StDate As Date: StDate = [N2]
Dim EndDate As Date: EndDate = [P2]
Dim dt As Date
With ActiveSheet.PivotTables("PivotTable1").PivotFields("DATE_PROLONGATION")
For i = 1 To .PivotItems.Count
    dt = Format(.PivotItems(i), "mm.dd.yyyy")
    If dt < StDate Or dt > EndDate Then .PivotItems(i).Visible = False Else .PivotItems(i).Visible = True
Next
End With
End Sub

Все работает. Еще раз спасибо!
Изменено: santafox - 04.06.2018 16:23:47
Фильтрация дат в сводной таблице при помощи VBA, Вывод диапазона значений из указанных дат
 
yozhik,
Работает, огромное спасибо!
Есть только один момент, в выпадающем списке должны быть выбраны все даты, что бы скрипт отработался корректно.
Есть возможности для автоматического выделения всего диапазона?
Фильтрация дат в сводной таблице при помощи VBA, Вывод диапазона значений из указанных дат
 
[img]file:///C:/Users/DEMINDS/Desktop/table_1.jpg[/img]Доброго дня!
Есть желание автоматизировать рабочий процесс.
Имею в наличии сводную таблицу следующего типа (см. загруженный файл):
[img]file:///C:/Users/DEMINDS/Desktop/table_1.jpg[/img]
Я написал макрос, который брал бы данные из колонок "first day" "last day" и по ним фильровал таблицу.
Но к сожалению, макрос выдает ошибку
Код
Sub autofilter()
Dim StDate As Long: StDate = [H2]
Dim EndDate As Long: EndDate = [I2]
           Range("B1" & Rows.Count).autofilter DATE_PROLONGATION, ">=" & [H2].Value2, xlAnd, "<=" & [I2].Value2
End Sub

При исполнении макрос выдает ошибку "Method range of object"_global failed
Как можно исправить скрипт?
Изменено: santafox - 31.05.2018 14:38:36 (загрузи файл)
Автофильтрация дат в сводной таблице при помощи макроса, Требуется автоматически выводить промежуток дат в автофильтре
 
Доброго дня!
Ввиду большого количества ошибок при фильтрации таблиц, появилась необходимость в автоматизации выбора дат в фильтре сводной таблице.
Таблица обновляется, в ячейке В1 указывается дата на которую строится отчет, в ячейке В2 указывается промежуток дат.
Я планирую в ячейке К1 указывать дату, на которую строится отчет, в ячейке К2 отнимать от даты К1 7 дней, которые будут в автофильтре.
На первом этапе пытаюсь автоматизировать автоматический выбор промежутка дат
Макрос выглядит следующим образом:


Sub date_autofilter()
Dim iDateOne As Date
Dim iDateTwo As Date
Dim iDateThree As Date

iCriteria1 = ">=" & Range("K2").Value2
iCriteria2 = "<=" & Range("K1").Value2

Range("B1").AutoFilter Field:=1, Criteria1:=iCriteria1, Operator:=xlAnd, Criteria2:=iCriteria2

End Sub

Но макрос выдает ошибку 1004.
Где я допустил ошибку? Какой можете предложить альтернативный алгоритм?
Макрос для листов
 
Доброго дня.
Подскажите пожалуйста как решить проблему.
Хочу написать макрос, который будет запускать все остальные макросы.
Его код у меня есть:
sub mac()
mac1
mac2
mac3
...
end sub

Дело в том, что при запуске данного макроса, он исполняет те 3 макроса для выбранного листа.
Вопрос: как можно изменить данный код, что бы mac1 исполнялся для листа 2 и 3, mac2 для листа 4 и mac3 для листа 5.
Спасибо.
задание из университета
 
Всем привет.
В универе дали задачку по расчетам в excel. Может, кто нибудь может ее решить?
Файл прикрепляю в урезанном виде (сокращено количество строк) полный файл весит 1.5 мегабайта и вышлю его по почте в случае Вашей готовности решить задачу.

По всем вопросам - в личку.
Надеюсь на Вашу помощь.
Получение временного интервала
 
Добрый день!Большое спасибо за макрос! Но по моему он работает не очень корректно.
Когда я самостоятельно вношу временное значение в ячейку, он автоматически прибавляет час и полтора часа.
Т.е. внес 20:00, в ячейку вывелось 20:30-21:30, а должно быть 19:30-20:30.

P.S.
Попробовал перенести макрос на основной рабочий файл. К сожалению не работает.
Было бы чудесно, если бы Вы могли посмотерть его. Временное значение вставляется в графы "пн", "вт" и.т.д...
Табличка постоянно дополняется новыми объектами...
акт рабочий вариант.xlsm (22.41 КБ)  
Получение временного интервала
 
Доброго времени суток всем знатокам exel! Хотел бы обратиться к Вам за помощью. Мне необходимо,что бы в exel, при занесении времени в яйчейку,автоматически выдавался полу-часовой интервал. Т.е предположим,я вношу в яйчейку 20:00, мне нужно,что бы в соседней яйчейке( а в идеале в этой же) отобразилось 19:30-20:30.сам я это делал просто отнимая и прибавляя по пол часа,но используя функцию сцепить 2 яйчейки,за место полного интервала времени получал большое дробное значение. Буду очень признателен, если кто-то поможет мне в решении данной задачи.
Страницы: 1
Наверх