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

Страницы: 1 2 3 4 5 6 7 След.
Не работает УФ заданное макросом
 
Всё, разобрался.

Код
.SetFirstPriority


в этом была собака.

Всем спасибо за подсказки. Помогли эсперименты с УФ на другой ячейке.
Изменено: Breathe of fate - 22.04.2022 14:18:14
Не работает УФ заданное макросом
 
Дмитрий(The_Prist) Щербаков,
тут с УФ что-то, в файле самом работает. В любой ячейке формула, прописываемая макросом - работает. Может быть проблема в том, что у меня 3 форматирования?

Код
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
                    Formula1:="=$AB" & b1, Formula2:="=$AC" & b1
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions.Count).SetFirstPriority
                With ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).Font
                    .Color = -16752384
                    .TintAndShade = 0
                End With
                With ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).Interior
                    .PatternColorIndex = xlAutomatic
                    .Color = 13561798
                    .TintAndShade = 0
                End With
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).StopIfTrue = False
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
                    Formula1:="=$AB" & b1
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions.Count).SetFirstPriority
                With ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).Font
                    .Color = -16383844
                    .TintAndShade = 0
                End With
                With ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).Interior
                    .PatternColorIndex = xlAutomatic
                    .Color = 13551615
                    .TintAndShade = 0
                End With
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).StopIfTrue = False
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
                    Formula1:="=$AC" & b1
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions.Count).SetFirstPriority
                With ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).Font
                    .Color = -16383844
                    .TintAndShade = 0
                End With
                With ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).Interior
                    .PatternColorIndex = xlAutomatic
                    .Color = 13551615
                    .TintAndShade = 0
                End With
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).StopIfTrue = False
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions.Add Type:=xlExpression, Formula1:= _
                "=ДЛСТР(СЖПРОБЕЛЫ(U" & b1 & "))=0"
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions.Count).SetFirstPriority
                With ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).Font
                    .ThemeColor = xlThemeColorDark1
                    .TintAndShade = 0
                End With
                ThisWorkbook.Sheets(ssheet2).Range("U" & b1).FormatConditions(1).StopIfTrue = False
                Application.CutCopyMode = False


То есть, если ячейка пустая, то она окрашивается заливкой следующего правила, а цвет шрифта при этом цвета пустой ячейки. Загадка.
Не работает УФ заданное макросом
 
Дмитрий(The_Prist) Щербаков,
У меня по макросу там как раз динамическая ячейка. Получается,  что правило применяется к нужной ячейке, только не работает: ну то есть удаляю значение - всё равно подсвечивается. А если ставить руками, то всё гуд. Я даже не знаю куда копать.
Не работает УФ заданное макросом
 
sokol92,
интересно, почему в моём случае это не срабатывает...
Применение условного форматирования к диапазонам на разных листах
 
Понятно.

Решил проблему по-другому.
Не работает УФ заданное макросом
 
Всем привет.

Ситуация такая:

макрорекрдером записал форматирование:

Код
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=ДЛСТР(СЖПРОБЕЛЫ(H6))=0"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .Pattern = xlNone
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False


Правило применяется, формула вписана, но... не работает :) Однако, если делать в той же ячейке УФ вручную, то тогда отображается уже не формула, а "Ячейка содержит пустое значение", - работает.

На английском формулу тоже писал - не работает.

Может есть у кого идеи, куда копать?
Применение условного форматирования к диапазонам на разных листах
 
Приветствую всех.

Ситуация: на одном листе сделал условное форматирование по своим значениям, хочу указать в применении к ячейкам ещё диапазон другого листа этой же книги, но Эксель просто сбрасывает такой диапазон.

Эксель на русском, диапазоны разделяю точкой с запятой.

Подскажите, пожалуйста, можно ли вообще привязать диапазон с другого листа? То есть чтобы правило применялось, допустим, к диапазону А1:А100, и диапазону А1:А100 листа 1? То есть хочу что-то типа А1:А100;1!А1:А100
Появление нового источника данных при выборе данных для сводной таблицы
 
Нет мыслей ни у кого?
Появление нового источника данных при выборе данных для сводной таблицы
 
Всем привет.

Создал сводную таблицу, которая тянет данные из SharePoint. Однако, при её обновлении вручную и по "обновить всё" данные не обновляются (то есть пишет, что процесс идёт, а данные не меняются). Таблица обновляется только если заново выбирать источник данных.

Но в источниках данных при каждом запросе появляется дубликат. То есть я тащу данные со Stock(3), но при каждом обновлении сводной - читай "изменении источника данных" появляются дубли как на скрине.

1. Как сделать один источник данных?
2. Как заставить сводную обновляться с этого одного источника данных?
Изменено: Breathe of fate - 21.02.2022 21:24:35
Узнать имя книги откуда была запущена процедура
 
Дмитрий(The_Prist) Щербаков,
из другого файла. Один файл имеет в себе макрос, который открывает все файлы в папке и в каждом вызывает макрос, находящийся в файле (который открывается).

DANIKOLA,
ну по факту я так и сделал - прописал условие, что если файл открыт, то бла-бла-бла. Но это всё равно костыль.
Изменено: Breathe of fate - 17.02.2022 09:10:46
Узнать имя книги откуда была запущена процедура
 
Ігор Гончаренко,
да читал. У меня в примере из статьи мессаджбокс выдаёт ошибку. Без понятия, что случилось.

То, что хотел смог реализовать через поиск файла и условие открыт ли файл, и если да, то выполнять макрос.
Узнать имя книги откуда была запущена процедура
 
Jack Famous,
мне нужно узнать имя книги в которой сработал макрос, который открыл в свою очередь ЭТУ книгу.

Application.Caller.ThisWorkbook.Name так же выдаёт ошибку.
Изменено: Breathe of fate - 15.02.2022 13:21:10
Узнать имя книги откуда была запущена процедура
 
Jack Famous,

Код
Sub NextIfNoAction()

Dim Wbn As String
Wbn = Application.Caller.Worksheet.Parent.Name(external:=True)
If Wbn = ThisWorkbook.Path & "Update.xlsm" Then
Call UserForm2.CommandButton1_Click
Else
End If

End Sub

Ну если так, то тоже ошибка.
Изменено: Breathe of fate - 15.02.2022 12:32:58
Узнать имя книги откуда была запущена процедура
 
Ігор Гончаренко,
яснее не стало.

Код
Set ac = Application.Caller
MsgBox ac


Ошибка. Что не так делаю?
Узнать имя книги откуда была запущена процедура
 
Всем привет.

Столкнулся с необходимостью узнать источник запуска макроса. Понимаю, что нужно делать через Application.Caller, но что-то у меня ошибка вылезает.
Код
Sub NextIfNoAction()

Dim Wbn As String
Wbn = Application.Caller.Worksheet.Parent.Name
If Wbn = "Update" Then
Call UserForm2.CommandButton1_Click
Else
End If

End Sub
Можете подсказать, где собака зарыта?
Экспорт таблицы в презентацию и её сохранение в папку
 
Добрый день.

Суть: у меня есть код в книге Эксель - он создаёт новый файлик презентации и копирует туда таблицу.

Цель: сделать выгрузку в презентацию незаметной для пользователя и складывать презентации в указанную папку. То есть должен открыться новый файл презентации, в него скопировались данные, презентация сохранилась в папку, PowerPoint закрылся. Будет идеально, если открываться, сохраняться и закрываться будет без участия юзера.

Сам код:

Код
Sub CopyRangeToPresentation()

'Шаг 1: Объявляем переменные
Dim PP As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim SlideTitle As String

'Шаг 2: Откройте PowerPoint и создайте новую презентацию
Set PP = New PowerPoint.Application
Set PPPres = PP.Presentations.Add
PP.Visible = True

'Шаг 3: Добавьте новый слайд как слайд 1 и установите на него фокус
Set PPSlide = PPPres.Slides.Add(1, ppLayoutTitleOnly)
PPSlide.Select

'Шаг 4: Скопируйте диапазон, как изображение
Sheets("Statistics").Range("D515:AR568").CopyPicture _
Appearance:=xlScreen, Format:=xlPicture

'Шаг 5: Вставьте картинку и отрегулируйте ее положение
PPSlide.Shapes.Paste.Select
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True

'Шаг 6: Добавьте новый слайд как слайд 2 и установите на него фокус
Set PPSlide = PPPres.Slides.Add(2, ppLayoutTitleOnly)
PPSlide.Select

'Шаг 7: Скопируйте диапазон, как изображение
Sheets("Statistics").Range("D576:AR629").CopyPicture _
Appearance:=xlScreen, Format:=xlPicture

'Шаг 8: Вставьте картинку и отрегулируйте ее положение
PPSlide.Shapes.Paste.Select
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True

'Шаг 9: Добавьте новый слайд как слайд 3 и установите на него фокус
Set PPSlide = PPPres.Slides.Add(3, ppLayoutTitleOnly)
PPSlide.Select

'Шаг 10: Скопируйте диапазон, как изображение
Sheets("Statistics").Range("D637:AR690").CopyPicture _
Appearance:=xlScreen, Format:=xlPicture

'Шаг 11: Вставьте картинку и отрегулируйте ее положение
PPSlide.Shapes.Paste.Select
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True

'Шаг 12: Добавьте новый слайд как слайд 4 и установите на него фокус
Set PPSlide = PPPres.Slides.Add(4, ppLayoutTitleOnly)
PPSlide.Select

'Шаг 13: Скопируйте диапазон, как изображение
Sheets("Statistics").Range("D698:AR751").CopyPicture _
Appearance:=xlScreen, Format:=xlPicture

'Шаг 14: Вставьте картинку и отрегулируйте ее положение
PPSlide.Shapes.Paste.Select
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True

'Шаг 15: Очистка памяти

Presentation.SaveAs ThisWorkbook.Path & "\Programm Data\LSS\" & ThisWorkbook.Name & ".pptx"

End Sub


Последняя строка - мои попытки сохранить презентацию с именем в папку :)
Поиск числового значения в определённой строке в найденных по условию листах
 
artemkau88,
забыл ответить - всё гуд, спасибо :)
Замена значений на всех листах с одного UserForm
 
Цитата
New написал:
для потомков код макроса из редактора VBE нужно копировать при установленной русской раскладки клавиатуры (значок "РУС" у часиков в правом нижнем углу экрана), чтобы не было непонятных символов в коде на форуме

Думаю, если кто-то с этим столкнётся и начнёт разбираться, то поймёт. :)
Поиск всех значений (не только первое совпадение) в цикле
 
Я не понял, как ей пользоваться и что и куда вводить

Цитата
_Igor_61 написал:
нужно, и результат выводим куда нужно
спасибо. Сделал по-другому немного, но ищу по диапазонам, всё работает.
Поиск всех значений (не только первое совпадение) в цикле
 
_Igor_61, то есть несколько find?
Поиск всех значений (не только первое совпадение) в цикле
 
Всем привет! :)
Прошу помощи.

Есть вот такой код:
Код
Sub trytryrty()  
  
For i = 1 To ThisWorkbook.Sheets("Constructor").Cells(Rows.Count, 3).End(xlUp).Row  
    For j = 1 To ThisWorkbook.Sheets.Count  
        If ThisWorkbook.Sheets("Constructor").Cells(i, 3).Value = Sheets(j).Name Then  
            ThisWorkbook.Sheets("Constructor").Range(Cells(i, 3).Offset(1, 20), Cells(i, 3).Offset(1, 36)).Copy  
            Set aaa = ThisWorkbook.Sheets("Constructor").Cells(i, 3).Offset(0, -1)  
            Set bbb = ThisWorkbook.Sheets(j).Range("AH1:AI1000").Find(aaa, , xlValues, xlWhole).Offset(0, -30)  
            Set ccc = ThisWorkbook.Sheets(j).Columns(bbb.Column).Find("18", , xlValues, xlWhole).Offset(0, 2)  
        End If  
    Next  
Next  
  
End Sub  

Подскажите, пожалуйста, как мне сделать поиск ВСЕХ значений, указанных здесь:
Код
Set ccc = ThisWorkbook.Sheets(j).Columns(bbb.Column).Find("18", , xlValues, xlWhole).Offset(0, 2)

Find ищет только первое вхождение, а мне нужно, чтобы нашёл каждое. По идее .FindNext должен работать, но у меня не получается.

Может быть есть у кого светлые идеи? :)
Изменено: vikttur - 21.12.2021 12:36:04
Заливка диапазона ячеек по условию
 
Цитата
Breathe of fate написал:
Ну вот так у меня не вышло
Добавил ещё правило для пустых, и всё ок. Так что тоже рабочий вариант, правда с поправками на ветер :)
Заливка диапазона ячеек по условию
 
Цитата
Сергей Геращенко написал:
"Применяется к" своими необходимыми диапазонами типа
Да это я понимаю. Я могу прописать, если типа в ячейке А1 есть цифра 1, то раскрашивать выбранный диапазон таким-то цветом. Вопрос в другом.

Цитата
New написал:
И каждая тема превращается в простыню)
Я не просил конкретно Вашей помощи, и даже не просил читать :) Не утруждайтесь.

Цитата
tutochkin написал:
=ИЛИ($A$1:$E$9=4;$A$1:$E$9="ok") - раскраска всех ячеек диапазона при наличии хоть в одной из ячеек диапазона цифры 4 или "Ок"
Ну вот так у меня не вышло, он и пустые тоже раскрасил.

Но в Вашем файле нашёл ответ на свой вопрос. Спасибо всем большое.
Заливка диапазона ячеек по условию
 
mechanix 85,
удалите из ячейки B2 значение "4" и "ok", и всё раскрашивание пропадёт. Я об этом.
Изменено: Breathe of fate - 30.11.2021 13:57:50
Заливка диапазона ячеек по условию
 
Mershik,
Цитата
Mershik написал: ЭТО УЖЕ РАЗНЫЕ УФ точнее разные диапазоны
О том и речь. Мне предложили брать сравнивать значение из одной ячейки, применив к диапазону.

А у меня вопрос - УФ на диапазон без привязки к ячейке, то есть ОДНО УФ с ОДНИМ правилом, включающим в себя ДВА условия, которые НЕ привязаны (т.е. не берут значение из ячейки).

Утрировано - диапазон А1:А5, делаем условие на А1 и применяем ко всем: все ячейки будут раскрашиваться в зависимости от того, что в А1.
Мне нужно, чтобы А1:А5 раскрашивались по одному условию, без привязки к А1. Ну как если выбрать А1:А5 и написать, что если меньше 5, то пусть выделяет. Только у меня это должно быть меньше 5 ИЛИ содержать букву.

Если это невозможно - вопрос исчерпан.
Заливка диапазона ячеек по условию
 
Я могу применить к диапазону правило, если есть ячейка (ну или вписать руками значение), содержащее значения, тогда я могу прописать ИЛИ - это не проблема.
Если у меня 3 диапазона, и в каждом свой цвет, я так сделать не смогу, иначе на второй и третий диапазон условия тоже будут браться значения из референсной ячейки.

У меня вполне конкретный вопрос.
Мне нужно, чтобы "OK" и "4" было одним правилом, т.к. таких диапазонов у меня будет несколько. Это возможно или нет?
Заливка диапазона ячеек по условию
 
mechanix 85,
если я ставлю ячейку как реф и применяю на диапазон, то другого рефа у меня не будет. грубо говоря он все ячейки будет раскрашивать так, как указано в рефе.

мне так не подойдёт. У меня несколько диапазонов. Вопрос в том, как совместить 2 отдельных правила в одно, просто не хочу городить лишнее форматирование.
Заливка диапазона ячеек по условию
 
я же написал - диапазон. У меня не отдельная ячейка.
Изменено: vikttur - 30.11.2021 13:34:00
Заливка диапазона ячеек по условию
 
Всем привет.

Не могу допетрить. Ячейки выделяются условным форматированием двумя отдельными правилами, например, если в ячейке "4" и "OK".
Как совместить вместе? =ИЛИ(4;"OK") не срабатывает. Форматирование применяется для диапазона.
Изменено: vikttur - 01.12.2021 11:43:05
Поиск числового значения в определённой строке в найденных по условию листах
 
Цитата
artemkau88 написал: strAddress = rngToFind.Address
на эту строку ругается...
Страницы: 1 2 3 4 5 6 7 След.
Наверх