Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Найти крайнюю ячейку относительно границы рамки
 
Андрей VG, Работает! Моя благодарность - словами не описать.
Цитата
Андрей VG написал:
Предупреждать надо, что вы программист Ctrl+C, Ctrl+V
Класс! Я восхищён таким точным определением дилетанта от программирования. :)
Возьму на вооружение. :D  
Изменено: MrBrown - 5 Июн 2019 14:12:41
Найти крайнюю ячейку относительно границы рамки
 
Вот частный случай:
надо найти ячейку АМ56 (закрашена жёлтым).

Андрей VG, благодарю за код. Но, как ни пытался использовать функцию, вставлять её в процедуру "Sub", - не получилось.
Знаний мало. Подскажите, что вписать в скобки после наименования функции:
Код
Sub test()
    getBottomRightOutsideBorderCell
    MsgBox result
End Sub
Изменено: MrBrown - 5 Июн 2019 12:10:55
Об уведомлениях о новых ответах на посты
 
Виноват. Прошу модератора произвести известные телодвижения по переносу моего поста.
(Или по его ликвидации - мне всё стало ясно)
Спасибо.
Найти крайнюю ячейку относительно границы рамки
 
RAN, крайняя - правая нижняя ячейка. Это С10.
Согласен, тут приведён прикольный вариант с бордюрами.
В таком случае макросу надо дать возможность самому виртуально построить рамку вокруг всех ячеек, имеющих части бордюра.
Об уведомлениях о новых ответах на посты
 
Здравствуйте!
Пожалуйста, покажите, где ковырнуть в настройках, чтобы на мою почту приходили уведомления о новых ответах на посты, в которых я принимал участие.

Пока приходится ежедневно открывать форум и отслеживать "ручками".
И есть ли функция "отписки" от конкретных постов, которые для меня уже утратили актуальность.
Спасибо.
Изменено: MrBrown - 4 Июн 2019 09:45:49
Найти крайнюю ячейку относительно границы рамки
 
Ігор Гончаренко, здесь - ячейка C3.
пересечение ПРОДОЛЖЕНИЯ крайнего правого и ПРОДОЛЖЕНИЯ нижнего бордюра, и - смещение вправо вниз на ячейку.
(вариант - ячейка В2. Это та, которая остаётся внутри пересечения.)
Мне подошёл бы любой вариант.

Sanja, а можно так? (см. ответ Игорю Гончаренко).
Изменено: MrBrown - 4 Июн 2019 09:23:16
Найти крайнюю ячейку относительно границы рамки
 
Sanja, спасибо, но годится только для одинарной рамки ("внешние границы").
А если сделать несколько вложенных рамок или вообще замостить бордюрами ("все границы"),
то макрос определяет каждую ячейку с бордюром.
А надо - только одну, самую правую и нижнюю.
Найти крайнюю ячейку относительно границы рамки
 
Цитата
Sanja написал:
Муторное это дело
ОК, тогда так (чтобы не перебирать все миллионы ячеек):
организовать цикл справа налево, снизу вверх, начиная с сотой ячейки  в строке и в столбце - "CV:100".
Этого будет более, чем достаточно.
Как макрос упирается в первую попавшуюся ячейку с бордюром (даже если ячейка касается бордюра только точечно, уголком) , так - три зелёных свистка и - msgbox "Вот она!!! Поймал!!!"
Изменено: MrBrown - 3 Июн 2019 16:55:28
Найти крайнюю ячейку относительно границы рамки
 
Здравствуйте!
Как найти последнюю заполненную ячейку - есть много постов.
А мне нужно найти адрес правой нижней ячейки диапазона, ограниченного рамкой.
К примеру, рамка охватывает диапазон A1:G18.
Макрос должен найти ячейку G18 или, лучше, первую ячейку вне диапазона - H19.
(независимо, заполнена ячейка или пустая)
Подскажите, пожалуйста, какие команды можно использовать, чтобы макрос опирался на расположение рамки.
Спасибо.
p.s. Если на листе несколько рамок, то ищется самая крайняя ячейка (пересечение - крайний правый столбец, имеющий хотя бы единственную обрамлённую ячейку, и такая же крайняя нижняя строка).
p.p.s Догадываюсь, что нужно использовать слово "Borders", а как именно - ума не приложу.
Изменено: MrBrown - 3 Июн 2019 16:48:26
Макрос печати по условию
 
Не-а, не удобно. Я сделал по-другому: скрыл базы данных ("остекление) и заставил макрос при печати выбирать только видимые листы:
Код
Sub Print_Area()
  Dim wb As Workbook: Set wb = ActiveWorkbook
    Dim Ws As Worksheet
    Dim Ma, rngEnd As Range
Application.ScreenUpdating = False


For Each Ws In wb.Worksheets


    Set Ma = Range("MEM").MergeArea
    'MsgBox Ma.Address
    Set rngEnd = Ma.Cells(Ma.Rows.Count, Ma.Columns.Count)
    'MsgBox rngEnd.Address
    ActiveSheet.PageSetup.PrintArea = Range("A1", rngEnd).Address
    
        If Ws.Visible = xlSheetVisible Then
            Ws.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        End If
Next


Application.ScreenUpdating = True

End Sub
Вот теперь - годится!
Изменено: MrBrown - 19 Апр 2019 16:34:16
Макрос печати по условию
 
Sanja, Благодарю. Работает.
Ну, с отслеживанием добавлений новых листов, не предназначенных к печати, можно смириться: разок добавил в макрос и забыл.
Спасибо!
______________________
ан, не работает.
при перемещении листа "остекление" между печатаемыми листами, макрос печатает только первые листы, которые до "остекления".
Ну, это, наверное, уже другая задача.
Спасибо.
Изменено: MrBrown - 19 Апр 2019 12:38:36
Макрос печати по условию
 
Убрал именованную ячейку "first".
Осталось сформировать условие наличия на листе ячейки "МЭМ":
Код
Sub Print_Area()
  Dim wb As Workbook: Set wb = ActiveWorkbook
    Dim Ws As Worksheet
    Dim Ma, rngEnd As Range
Application.ScreenUpdating = False

For Each Ws In wb.Worksheets

    Set Ma = Range("MEM").MergeArea
    'MsgBox Ma.Address
    Set rngEnd = Ma.Cells(Ma.Rows.Count, Ma.Columns.Count)
    'MsgBox rngEnd.Address
    ActiveSheet.PageSetup.PrintArea = Range("A1", rngEnd).Address
    

'If (условие наличия на листе ячейки с именем "MEM" или содержанием "МЭМ") Then
     'Ws.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
' End If
Next
Application.ScreenUpdating = True

End Sub
Макрос печати по условию
 
Мда, трусы с граблями - это не вариант.

Посоветуйте, как сделать.
Задача простая:

печатать всё внутри чертёжной форматки.
Левый верхний угол - первая ячейка.
В нижнем правом углу всегда стоит "МЭМ". Но лучше этот угол форматки определить как-то по-иному: мало ли, наименование фирмы поменяется.

И не печатать то, что в ячейках вне форматок (для проверки проставлены несколько цифирь).
И не печатать другие листы, где нет форматок (для проверки вставлен лист "остекление").

Как-то так...

p.s. да, ещё: количество строк и столбцов, в зависимости от контента, может меняться.
Поэтому нижний правый угол форматки нельзя привязывать к конкретным ячейкам.
Изменено: MrBrown - 19 Апр 2019 11:29:28
Макрос печати по условию
 
И как теперь убрать из книги, оставив только на листах?
Может из-за этого и не работает.
Макрос печати по условию
 
А можно, наверное, вообще исключить имя первой ячейки?
Просто задавать диапазон печати от Cells(1,1) до ячейки с Name="MEM".
p.s. "first" на книгу я не ставил. Как-то само проставилось.
Изменено: MrBrown - 19 Апр 2019 11:13:05
Макрос печати по условию
 
Как-то так...
Макрос печати по условию
 
Поставил условие в начало цикла.
Код
For Each Ws In wb.Worksheets
If Ws.Cells(1, 1).Name = "first" Then
Печатает правильно, но в конце появляется окно отладки макроса.

Макрос печати по условию
 
Так печатает только последний лист с поименованной ячейкой.
Макрос печати по условию
 
Код
Sub Print_Area()
  Dim wb As Workbook: Set wb = ActiveWorkbook
    Dim Ws As Worksheet
    Dim Ma, rngEnd As Range
Application.ScreenUpdating = False

For Each Ws In wb.Worksheets

    Set Ma = Range("MEM").MergeArea
   
    Set rngEnd = Ma.Cells(Ma.Rows.Count, Ma.Columns.Count)
   
    ActiveSheet.PageSetup.PrintArea = Range("first", rngEnd).Address
    
    If Ws.Cells(1, 1).Name = "first" Then Ws.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

Next
Application.ScreenUpdating = True


End Sub
Пожалуйста:
Макрос в цикле устанавливает на листах область печати, ограниченную самой первой ячейкой ("first") и нижней правой ("MEM").
А печатать не желает. То есть если без условия If-Then, то печатает, но вообще все листы, а мне надо только те, у которых есть "first".
____________________
p.s. а, может быть, сделать условие существования поименованной ячейки, типа exist?
Сейчас попробую....  
Изменено: MrBrown - 19 Апр 2019 10:04:30
Макрос печати по условию
 
Здравствуйте!
Строка из цикла по листам книги:
Если первая ячейка на очередном листе Ws поименована как "first", то - печатать.
Почему не работает?
Код
Dim Ws As Worksheet
.... 
If Ws.Cells(1, 1).Name = "first" Then Ws.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Изменено: MrBrown - 19 Апр 2019 09:50:45
Увеличить область печати на один столбец вправо и на пару строк вниз
 
Здравствуйте!
Есть пара поименованных ячеек:
Левая верхняя - "first", правая нижняя - "end".
Такой код :
Код
ActiveSheet.PageSetup.PrintArea = Range("first", "end").Address
прекрасно работал бы, если бы ячейка "end" была простой, а она в действительности состоит из объединённых ячеек.
Ну и получается вот такая область печати, как на приложенной картинке. Угловой штамп не входит полностью в область печати.
Попытался сделать что-то вроде:
Код
ActiveSheet.PageSetup.PrintArea = Range("first", Cells(Cells.Name = "end").Offset(1, 2)).Address
Ан не получилось. Другие танцы с бубном - тоже.
Как изменить строчку кода, чтобы область печати увеличилась на столбец вправо и на пару строк вниз?
Догадываюсь, что нужно использовать MergeArea, но как - ума не приложу.
Спасибо.
_______________________________
Сам нашёл:
Код
Set Ma = Range("end").MergeArea
'MsgBox Ma.Address
Set rngEnd = Ma.Cells(Ma.Rows.Count, Ma.Columns.Count)
'MsgBox rngEnd.Address
ActiveSheet.PageSetup.PrintArea = Range("first", rngEnd).Address
Изменено: MrBrown - 27 Мар 2019 12:59:03
Скомбинировать накопительную диаграмму с графиком
 
Последний вопрос: как убрать цифры из легенды "Температура2......"?
___________________
Сделал сам.
p.s. Андрей быстрее... :)
Изменено: MrBrown - 11 Янв 2019 14:05:10
Скомбинировать накопительную диаграмму с графиком
 
Андрей VG, замечательно!, восхитительно!
Мне остаётся только [до предела обнаглеть и] попросить вставить ещё одну линию "Температура2", так как у меня - ну не получается! Не могу уяснить комбинирование диаграмм.
Пожалуйста...
_______________
Через пять минут: вроде, получилось сделать самому.. Что-то начинаю понимать.
___________________
Да, получилось!

Вопрос решён. Моя благодарность всем, принявшим участие в решении.
Отдельная - Андрею.
Изменено: MrBrown - 11 Янв 2019 13:48:41
Скомбинировать накопительную диаграмму с графиком
 
vikttur,
Цитата
Название тоже Дмитрий предложил...
Надеюсь, он не обидится на меня за "спасибо" не по адресу. :)
Дмитрий(The_Prist) Щербаков,  увы, не годится.
Теперь линейный график не хочет вставать как надо - узлами по границам слоёв.
Пойду гуглить, может что при помощи VBA получится...
Скомбинировать накопительную диаграмму с графиком
 
Дмитрий(The_Prist) Щербаков, благодарю за файлик, сейчас попробую разобраться.
Ув. модератор, также моя благодарность за изменение названия темы..
Сам я не нашёл способа, как менять тему, потом погуглил и нашёл такое: тынц
Скомбинировать накопительную диаграмму с графиком
 
Линейчатая с накоплением, и линейный график с узлами.
Вот, которая "с накоплением", не получается, как отдельно расположенная правая диаграмма (или здесь: тынц )
Прошу помощи.
_______________________
Добавляю: в идеале должно получаться, как Вар1 или Вар2
(отрисовал в автокаде, без цвета, но это не важно)
Изменено: MrBrown - 11 Янв 2019 11:43:57
Возможно ли повернуть диаграмму по оси Z?
 
Дмитрий(The_Prist) Щербаков, получилось, благодарю.
Возможно ли повернуть диаграмму по оси Z?
 
Андрей VG, прошу извинить, но - "не догоняю", как получилось построить горизонтальную диаграмму?
Сам пробую и не нахожу "нужной кнопочки".
Подскажите, пожалуйста.
Возможно ли повернуть диаграмму по оси Z?
 
Андрей VG, спасибо! Я как-то не увидел в обилии видов диаграмм нужную.
Полдела сделано. Теперь буду накладывать линейные диаграммы.
Возможно ли повернуть диаграмму по оси Z?
 
Здравствуйте!
Возникла необходимость в Excel автоматизировать отображение стены здания в разрезе с указанием слоёв:
штукатурка-кирпич-утеплитель-кирпич-штукатурка.
Это как один вариант из множества.
Необходимо, чтобы диаграмма располагалась, с вертикальными слоями (вложение "Диагр1")
А она работает только как ("Диагр2").
Есть ли варианты поворота картинки как надо? Пусть даже неправильным, "кривым", способом.
Работа в фотошопе исключается, так как диаграмма должна динамически меняться при изменении толщины/добавлении/убавлении количества слоёв.
А, может быть, существует какой-нибудь макрос по моей теме? Подкиньте ссылку, пожалуйста.
Спасибо.
p.s. Office 2016.
p.p.s в последующем на этот "пирог" будут накладываться линейные диаграммы распределения температуры по слоям для определения местонахождения точки росы (последнее написал для понимания тем, кто разбирается в теплотехнических расчётах зданий).
И ещё: не обязательно диаграмма должна быть объёмной. Можно и 2D.
--------------------------------------------
Только что пришла мысль: может быть, возможно не поворачивать диаграмму, а изменить толщину столбцов согласно данным, при одинаковой их высоте.
Изменено: MrBrown - 11 Янв 2019 09:18:25
Страницы: 1 2 3 След.
Наверх