Спасибо, Yuk, ты наверное не одну книгу перелопатил. Дай пожалуйста ссылку на книгу, в которой описаны подобные приемы, или намыль opa-pavel@yandex.ru. (как тебе будет удобнее вообщем). А то если написать здесь все вопросы, которые меня интерисуют на серваке места не останется )
» Excel VBA
Xttx
Цитата:
а куда делось 2050 в предпоследней колонке (см.последнюю строку примера)?!
нет - извините меня за возможно поданную вам надежду, но я не пойму что и как вы хотите сделать - по какому признаку проставляются x (если это числа), по каким колонкам идёт свёртка...
Цитата:
что такое "шаблон" в данном случае и как он задаётся?
бр-р-р-р... Ума не приложу, кому и зачем нужно решение подобной задачи...
или я всё таки туплю и чего-то не понимаю...
Цитата:
1010 x 1348 1600 x 2002 630
x 1094 1348 x 1748 2050 x
Должно остаться следующее
1010 1094 1348 1600 1684 1936 630
1010 1094 1348 1600 1748 2002 630
а куда делось 2050 в предпоследней колонке (см.последнюю строку примера)?!
нет - извините меня за возможно поданную вам надежду, но я не пойму что и как вы хотите сделать - по какому признаку проставляются x (если это числа), по каким колонкам идёт свёртка...
Цитата:
Вторая строчка подходит по шаблону
что такое "шаблон" в данном случае и как он задаётся?
бр-р-р-р... Ума не приложу, кому и зачем нужно решение подобной задачи...
или я всё таки туплю и чего-то не понимаю...
PavelO
Цитата:
Ты не поверишь: хелп + гугл
Добавлено:
Xttx
Согласен, задача не из простых. Имеет ли значение текущий порядок строк или надо проверить все пары? Другими словами, тебе нужно наилучшее совпадение пар строк или совпадение ближайших строк, принимая во внимание их текущий порядок?
Цитата:
Дай пожалуйста ссылку на книгу, в которой описаны подобные приемы
Ты не поверишь: хелп + гугл
Добавлено:
Xttx
Согласен, задача не из простых. Имеет ли значение текущий порядок строк или надо проверить все пары? Другими словами, тебе нужно наилучшее совпадение пар строк или совпадение ближайших строк, принимая во внимание их текущий порядок?
Yuk, а если задачку посложнее (ну для меня она конечно и вовсе нерешимая):
Хотел вставить в мою форму сто image'ов (ну это не проблемма, а вот вставить рисунки), а эти рисунки храняться в одной папке и имена их 10048.jpg, 11123.jpg, 10156.jpg и т.д
Но вставить их нужно только определенное количество, а оно определяется списком, который находится на втором листе, но каждая ячейка имеет строку примерно такую:
"Рисунок 10048 весит 30Кб", "Рисунок 11123 весит 50Кб", "Рисунок 10156 весит 24Кб" и т.д. Как бы мне вставить только те рисунки из этой папки, упоминание о которых есть в списке на втором листе? Во как.
Хотел вставить в мою форму сто image'ов (ну это не проблемма, а вот вставить рисунки), а эти рисунки храняться в одной папке и имена их 10048.jpg, 11123.jpg, 10156.jpg и т.д
Но вставить их нужно только определенное количество, а оно определяется списком, который находится на втором листе, но каждая ячейка имеет строку примерно такую:
"Рисунок 10048 весит 30Кб", "Рисунок 11123 весит 50Кб", "Рисунок 10156 весит 24Кб" и т.д. Как бы мне вставить только те рисунки из этой папки, упоминание о которых есть в списке на втором листе? Во как.
PavelO
Вытащить имя файла рисунка можно с помощью простого кода:
Код: Sub test()
Dim arr As Variant
For i = 1 To 3
arr = Split(Cells(i, 1).Text, " ")
imgname = arr(1) & ".jpg"
Debug.Print imgname
Next i
End Sub
Вытащить имя файла рисунка можно с помощью простого кода:
Код: Sub test()
Dim arr As Variant
For i = 1 To 3
arr = Split(Cells(i, 1).Text, " ")
imgname = arr(1) & ".jpg"
Debug.Print imgname
Next i
End Sub
SERGE_BLIZNUK
Прости пожалуйсто. Извиняюсь за ошибку, конечно из:
1010 x 1348 1600 x 1936 630
x 1094 1348 x 1684 1936 x
1010 x 1348 1600 x 2002 630
x 1094 1348 x 1748 2050 x
Должно получиться
1010 1094 1348 1600 1684 1936 630
1010 x 1348 1600 x 2002 630
x 1094 1348 x 1748 2050 x
Добавлено:
Yuk
Cовпадения ближайших строк будет достаточно.
Прости пожалуйсто. Извиняюсь за ошибку, конечно из:
1010 x 1348 1600 x 1936 630
x 1094 1348 x 1684 1936 x
1010 x 1348 1600 x 2002 630
x 1094 1348 x 1748 2050 x
Должно получиться
1010 1094 1348 1600 1684 1936 630
1010 x 1348 1600 x 2002 630
x 1094 1348 x 1748 2050 x
Добавлено:
Yuk
Cовпадения ближайших строк будет достаточно.
Xttx
Попробуй вот такой макрос:
[more]
Код: Option Explicit
Sub MergeLines()
Dim rng As Range
Dim nr As Long, nc As Long
Dim r As Long, c As Long
Dim r2 As Long, c2 As Long
Dim arr As Variant
Dim same As Boolean
Set rng = ActiveSheet.UsedRange
nr = rng.Rows.Count
nc = rng.Columns.Count
r2 = 1
For r = 1 To nr 'run through rows
arr = Range(rng.Rows(r), rng.Rows(r + 1)) '2 lines to array
For c = 1 To nc ' run through columns
'Replace x by value in another row
If arr(1, c) = "x" Then
arr(1, c) = arr(2, c)
ElseIf arr(2, c) = "x" Then
arr(2, c) = arr(1, c)
End If
'Compare rows
If arr(1, c) = arr(2, c) Then
same = True
Else
same = False
Exit For
End If
Next c
If same Then 'copy combined row to 2nd sheet
For c2 = 1 To nc
Sheets(2).Cells(r2, c2) = arr(1, c2)
Next c2
r = r + 1 'skip a row
Else 'copy original row (1st)
For c2 = 1 To nc
Sheets(2).Cells(r2, c2).Value = _
rng.Cells(r, c2)
Next c2
End If
r2 = r2 + 1
Next r
End Sub
Попробуй вот такой макрос:
[more]
Код: Option Explicit
Sub MergeLines()
Dim rng As Range
Dim nr As Long, nc As Long
Dim r As Long, c As Long
Dim r2 As Long, c2 As Long
Dim arr As Variant
Dim same As Boolean
Set rng = ActiveSheet.UsedRange
nr = rng.Rows.Count
nc = rng.Columns.Count
r2 = 1
For r = 1 To nr 'run through rows
arr = Range(rng.Rows(r), rng.Rows(r + 1)) '2 lines to array
For c = 1 To nc ' run through columns
'Replace x by value in another row
If arr(1, c) = "x" Then
arr(1, c) = arr(2, c)
ElseIf arr(2, c) = "x" Then
arr(2, c) = arr(1, c)
End If
'Compare rows
If arr(1, c) = arr(2, c) Then
same = True
Else
same = False
Exit For
End If
Next c
If same Then 'copy combined row to 2nd sheet
For c2 = 1 To nc
Sheets(2).Cells(r2, c2) = arr(1, c2)
Next c2
r = r + 1 'skip a row
Else 'copy original row (1st)
For c2 = 1 To nc
Sheets(2).Cells(r2, c2).Value = _
rng.Cells(r, c2)
Next c2
End If
r2 = r2 + 1
Next r
End Sub
Добрый день.
Подскажите, пожалуйста, непрофессионалу как организовать следующее:
При открытии файла хочется иметь возможность одновременно изменять параметры в ячейке и нажать на кнопку (в поле страницы), которая бы вызвала выполнение макроса (программки).
Кнопка должна всегда быть видна на данной странице
Я попробовал сделать следующее (на вкладке "Эта книга"):
Private Sub Workbook_Open()
Worksheets("Interface").Activate ' activating interface worksheet
UserForm1.Show
End Sub
При этом "кнопка" выводится на страницу при открытии книги, но альтернатива только одна - на кнопку нажать и вызвать макрос (ну UserForm еще можно "крестиком" закрыть). А вот получить возможность одновременно и ячейки редактировать и на кнопку нажимать я не знаю как.
Спрасибо заранее если кто поможет
Подскажите, пожалуйста, непрофессионалу как организовать следующее:
При открытии файла хочется иметь возможность одновременно изменять параметры в ячейке и нажать на кнопку (в поле страницы), которая бы вызвала выполнение макроса (программки).
Кнопка должна всегда быть видна на данной странице
Я попробовал сделать следующее (на вкладке "Эта книга"):
Private Sub Workbook_Open()
Worksheets("Interface").Activate ' activating interface worksheet
UserForm1.Show
End Sub
При этом "кнопка" выводится на страницу при открытии книги, но альтернатива только одна - на кнопку нажать и вызвать макрос (ну UserForm еще можно "крестиком" закрыть). А вот получить возможность одновременно и ячейки редактировать и на кнопку нажимать я не знаю как.
Спрасибо заранее если кто поможет
AltM
Нет проблем. Правый клик по панели с кнопками и выбрать Control Toolbox (или как там в русском экселе). Откроется панель с набором контролей как для создания формы. ВЫбирай кнопку и рисуй прямо на листе. Двойным кликом по новой кнопке попадешь в ее код.
Нет проблем. Правый клик по панели с кнопками и выбрать Control Toolbox (или как там в русском экселе). Откроется панель с набором контролей как для создания формы. ВЫбирай кнопку и рисуй прямо на листе. Двойным кликом по новой кнопке попадешь в ее код.
Yuk, спасибо большое!
Как все просто...
Как все просто...
Я вот тут в сообщении http://forum.ru-board.com/topic.cgi?forum=33&topic=3961&start=640#2 жаловался на проблему, так я нашёл её решение.
На случай, если у кого что-нибудь возникнет подобное, напишу решение.
Прописывание перед каждой ячейкой/диапазоном листа не помогает. Лучше это не делать, а прописывать его в With:
Цитата:
Всё работает без глюков.
Напомню, что у меня глюки появляются только при применении форматирования, если же просто вписывать данные в ячейки, то всё работает нормально.
Добавлено:
Или же всё дело в том, что я прописывал префиксно "Worksheet", а нужно просто "Sheet"?
_______________________________________
Добавлено:
А я могу одной строкой поставить внешнюю рамку диапазона?
В более других языках я бы написал что-то вроде
ля-ля.Borders(xlEdgeBottom | xlEdgeTop | xlEdgeLeft | xlEdgeRight).ля-ля
Пробовал здесь писать Or вместо символа | - не срабатывает.
На случай, если у кого что-нибудь возникнет подобное, напишу решение.
Прописывание перед каждой ячейкой/диапазоном листа не помогает. Лучше это не делать, а прописывать его в With:
Цитата:
With Sheets("Накладная")
Range(Cells(25, 1), Cells(24 + rows, 2)).HorizontalAlignment = xlLeft
Всё работает без глюков.
Напомню, что у меня глюки появляются только при применении форматирования, если же просто вписывать данные в ячейки, то всё работает нормально.
Добавлено:
Или же всё дело в том, что я прописывал префиксно "Worksheet", а нужно просто "Sheet"?
_______________________________________
Добавлено:
А я могу одной строкой поставить внешнюю рамку диапазона?
В более других языках я бы написал что-то вроде
ля-ля.Borders(xlEdgeBottom | xlEdgeTop | xlEdgeLeft | xlEdgeRight).ля-ля
Пробовал здесь писать Or вместо символа | - не срабатывает.
Dr Eam
Код не верный (если скопирован точно). Нет точки перед Cells. Посмотри хелп по With statement.
Этот код будет работать, но без учета With. Области будут использоваться из активного листа, а не из листа "Накладная". Пробовал сменить активный лист? Или твой лист активируется где-то в коде?
Код не верный (если скопирован точно). Нет точки перед Cells. Посмотри хелп по With statement.
Этот код будет работать, но без учета With. Области будут использоваться из активного листа, а не из листа "Накладная". Пробовал сменить активный лист? Или твой лист активируется где-то в коде?
Точки, действительно, нет. Странно, работает ведь...
Цитата:
А я могу одной строкой поставить внешнюю рамку диапазона?
В более других языках я бы написал что-то вроде
ля-ля.Borders(xlEdgeBottom | xlEdgeTop | xlEdgeLeft | xlEdgeRight).ля-ля
Пробовал здесь писать Or вместо символа | - не срабатывает.
Borders - это коллекция (Collection) объектов Border. А xlEdgeBottom и т.д. всего навсего константы, означающие индекс объекта - целое число. | не сработает, здесь нет логических/битовых значений. Только по объектам.
Добавлено:
Цитата:
Или же всё дело в том, что я прописывал префиксно "Worksheet", а нужно просто "Sheet"?
Sheets и Worksheets отличаются только тем, что в Sheets включаются также листы с диаграммами. При доступе к листу через его имя разницы никакой разве что Sheets короче.
Dr Eam
Цитата:
ну, например, вот так
Код: Range("B3:H6").BorderAround xlContinuous, xlMedium, xlColorIndexAutomatic
Цитата:
А я могу одной строкой поставить внешнюю рамку диапазона?
ну, например, вот так
Код: Range("B3:H6").BorderAround xlContinuous, xlMedium, xlColorIndexAutomatic
Защита ячеек в Exel-документе(для начинающих в VBA)
Часто при написании небольших програмок для инженерных расчетов в Екселе (формулы в ячейках), встает проблема по защите содержания ячеек от случайных измененний.При этом стандартные способы Exsel по защите листа фактически сводят на ноль всю прелесть пользования своей "эксклюзивной программой"(возможно в лецензионном Ofis ситуация иначе).
Програмист я некудышный, но после долгих и нерегулярных изучений путанно-высокомерно-непонятной литературы по прграммированию сваял такой фрагмент:
В начале пишем в Екселе (например на Лист1) свою программу с расчетами, формулами, коментариями, ну и прочим оформлениями и прелестями.
Далее: Сервис - Макрос - Создать... Создаем допустим макрос под названием w2
Выпадает окно VBasic , где:
В модуле1 автоматически создается запись для макроса w2, если нет, то напишите сами (в смысле вписать w2)
Sub w2()
End Sub
Далее на Лист1 (например) пишем следующий фрагмент кода, где указываем ячейки в каких можно и необходимо вводить данные.В зависимости от ввода единичной ячейки или диапазона, используют соответственно знак , либо : и так далее, все остальные ячеки листа в дальнейшем будут недоступны для редактирования.
Пример:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B1:D1,B10:D10,B20:D20,С25").Select ' перечень ячеек для ввода
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("B1:D1,B10:D10,B20:D20,С25").Select ' перечень ячеек для ввода
End Sub
Все, далее запуск, сохранить и пользуйся.
После вызова соответств. книги Ексель открывается лист вашей программы, щелкните где угодно, соответств. ячейки окрасятся в цвет выделения и активизируется первая ячейка по списку. Перемещение по ним - кнопка Тав., убрать все выделения - стрелочка внизу экрана справа (выбор объекта) например для распечатки. Ввод при этом возможен только в выделенные ячейки посредством клавиатуры с перемещения по ячейкам с помощью кнопки Таб, мышь при этом ничего не может изменить,я конечно не исследовал изощреных способов.
p.s. неудобства - после ввода данных в одну ячейку приходится к следующей переходить снова с первой ячейке посредством кнопки Таб.Для возможных исправлений в ячейках с формулами документе снова войдите на VBasic и поставьте апостроф перед оператором строки с Range... вот так 'Range ..., после изменений все вернуть назад.
Все ... 2006
Часто при написании небольших програмок для инженерных расчетов в Екселе (формулы в ячейках), встает проблема по защите содержания ячеек от случайных измененний.При этом стандартные способы Exsel по защите листа фактически сводят на ноль всю прелесть пользования своей "эксклюзивной программой"(возможно в лецензионном Ofis ситуация иначе).
Програмист я некудышный, но после долгих и нерегулярных изучений путанно-высокомерно-непонятной литературы по прграммированию сваял такой фрагмент:
В начале пишем в Екселе (например на Лист1) свою программу с расчетами, формулами, коментариями, ну и прочим оформлениями и прелестями.
Далее: Сервис - Макрос - Создать... Создаем допустим макрос под названием w2
Выпадает окно VBasic , где:
В модуле1 автоматически создается запись для макроса w2, если нет, то напишите сами (в смысле вписать w2)
Sub w2()
End Sub
Далее на Лист1 (например) пишем следующий фрагмент кода, где указываем ячейки в каких можно и необходимо вводить данные.В зависимости от ввода единичной ячейки или диапазона, используют соответственно знак , либо : и так далее, все остальные ячеки листа в дальнейшем будут недоступны для редактирования.
Пример:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B1:D1,B10:D10,B20:D20,С25").Select ' перечень ячеек для ввода
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("B1:D1,B10:D10,B20:D20,С25").Select ' перечень ячеек для ввода
End Sub
Все, далее запуск, сохранить и пользуйся.
После вызова соответств. книги Ексель открывается лист вашей программы, щелкните где угодно, соответств. ячейки окрасятся в цвет выделения и активизируется первая ячейка по списку. Перемещение по ним - кнопка Тав., убрать все выделения - стрелочка внизу экрана справа (выбор объекта) например для распечатки. Ввод при этом возможен только в выделенные ячейки посредством клавиатуры с перемещения по ячейкам с помощью кнопки Таб, мышь при этом ничего не может изменить,я конечно не исследовал изощреных способов.
p.s. неудобства - после ввода данных в одну ячейку приходится к следующей переходить снова с первой ячейке посредством кнопки Таб.Для возможных исправлений в ячейках с формулами документе снова войдите на VBasic и поставьте апостроф перед оператором строки с Range... вот так 'Range ..., после изменений все вернуть назад.
Все ... 2006
Troitsky
sword12
Это твое произведение или скопировал откуда? Нет, мне просто интересно, кто-нибудь пробовал понять или воспроизвести сие?
Цитата:
Если тебя действительно интересует данная проблема, можно сделать все нормально. Или цель была запостить что-нибудь?
sword12
Это твое произведение или скопировал откуда? Нет, мне просто интересно, кто-нибудь пробовал понять или воспроизвести сие?
Цитата:
возможно в лецензионном Ofis ситуация иначе
Если тебя действительно интересует данная проблема, можно сделать все нормально. Или цель была запостить что-нибудь?
Во! я оказался прав.
Да нет, этого вы нигде не найдете, по сути две взаимо-исключающие инструкции.
В свое время я через эту "защиту" ячеек с одновременной возможностью ввода данных изрядно покувыркался. Перечитал неодну книгу по этому VBA, ненашел, во всяком случае в тех чо читал.
А теперь без обиды, знаете, вот смотрю я в интернет, черт, да полно умного народу, но вот у меня на работе...., ну некого спросить, а коллектив то 650 человек, из них, 300 сидит у компов.
Конечно я уверен что способ есть, подскажи...
Добавлено:
With Worksheets(1) .EnableSelection = xlNoRestrictions - это оно?
Добавлено:
Все, подсказки не надо, уже нашел.
Мое вам уважение!!!
Да нет, этого вы нигде не найдете, по сути две взаимо-исключающие инструкции.
В свое время я через эту "защиту" ячеек с одновременной возможностью ввода данных изрядно покувыркался. Перечитал неодну книгу по этому VBA, ненашел, во всяком случае в тех чо читал.
А теперь без обиды, знаете, вот смотрю я в интернет, черт, да полно умного народу, но вот у меня на работе...., ну некого спросить, а коллектив то 650 человек, из них, 300 сидит у компов.
Конечно я уверен что способ есть, подскажи...
Добавлено:
With Worksheets(1) .EnableSelection = xlNoRestrictions - это оно?
Добавлено:
Все, подсказки не надо, уже нашел.
Мое вам уважение!!!
Yuk
А стоит только поставить префиксные точки в With-блоке, как сразу начинаются всё те же рантайм-ошибки.
А стоит только поставить префиксные точки в With-блоке, как сразу начинаются всё те же рантайм-ошибки.
Yuk
Спасибо тебе за хлопоты. Твой макрос не подошел. Но я таки справился просто беру первую строчку и сравниваю с остальными по ходу дела все "х" заменяя числами. Потом вторую строчку сравниваю со всем и т.д.
Спасибо тебе за хлопоты. Твой макрос не подошел. Но я таки справился просто беру первую строчку и сравниваю с остальными по ходу дела все "х" заменяя числами. Потом вторую строчку сравниваю со всем и т.д.
AT29=переменная - буквы (а,б,в,г....), BF23:CF23=буквы (а,б,в,г....), BF25:CF25=значение ячеек BF23:CF23 (цифры)
=LOOKUP(AT29;BF23:CF23;BF25:CF25)
Прошу помочь с макросом так как =LOOKUP(AT29;BF23:CF23;BF25:CF25) не идет. т.е при написании в AT29 букву "а", не находит значение в векторе BF25:CF25. Функцию IF не могу использоват т.к. в BF23:CF23 много значении. Спасибо
=LOOKUP(AT29;BF23:CF23;BF25:CF25)
Прошу помочь с макросом так как =LOOKUP(AT29;BF23:CF23;BF25:CF25) не идет. т.е при написании в AT29 букву "а", не находит значение в векторе BF25:CF25. Функцию IF не могу использоват т.к. в BF23:CF23 много значении. Спасибо
virginijus
Должно работать. Ищи у себя тараканов.
Проверь русские или английские буквы используются? Например, А русскую и английскую легко перепутать. Имей в виду, что для LOOKUP данные в BF23:CF23 должны быть отсортированы. Также если нет точного совпадения, возвращается ближайшее меньшее.
Можно также использовать функции HLOOKUP или INDEX/MATCH:
=HLOOKUP(AT29;BF23:CF25;3;FALSE)
=INDEX(BF25:CF25;MATCH(AT29;BF23:CF23;0))
Нужно найти только одно значение или заполнить таблицу? В последнем случае необходимо установить абсолютные ссылки.
Макрос написать не сложно, но я бы не делал это для данной задачи.
Должно работать. Ищи у себя тараканов.
Проверь русские или английские буквы используются? Например, А русскую и английскую легко перепутать. Имей в виду, что для LOOKUP данные в BF23:CF23 должны быть отсортированы. Также если нет точного совпадения, возвращается ближайшее меньшее.
Можно также использовать функции HLOOKUP или INDEX/MATCH:
=HLOOKUP(AT29;BF23:CF25;3;FALSE)
=INDEX(BF25:CF25;MATCH(AT29;BF23:CF23;0))
Нужно найти только одно значение или заполнить таблицу? В последнем случае необходимо установить абсолютные ссылки.
Макрос написать не сложно, но я бы не делал это для данной задачи.
всем привет и прошу помощи
очень нужно было написать несколько макросов для заполнения документов (типовые бланки), долго рассказывать и проще показать. В общем при закрытии файла постоянно вылетает сообщение об ошибке и Excel перегружается. В чем проблема никак не найду. Может кто из Титанов глянул бы критически - я был бы безмерно благодарен. Весит это чудо около 900 кб. Если кто может помочь, отпишите на aleksej71@gmail.com, вышлю свое "творчество". Заранее спасибо огромное...
очень нужно было написать несколько макросов для заполнения документов (типовые бланки), долго рассказывать и проще показать. В общем при закрытии файла постоянно вылетает сообщение об ошибке и Excel перегружается. В чем проблема никак не найду. Может кто из Титанов глянул бы критически - я был бы безмерно благодарен. Весит это чудо около 900 кб. Если кто может помочь, отпишите на aleksej71@gmail.com, вышлю свое "творчество". Заранее спасибо огромное...
To Yuk
Огромное СПАСИБО за ликбез, оказываетьса надо было отсортировать буквы.
Огромное СПАСИБО за ликбез, оказываетьса надо было отсортировать буквы.
Народ помогите с проблемой.
Получилось так, что мне нужно выгрузить данные из 1С в Excel, в котором есть процедура проверки правильности заполнения ячеек (Worksheet_Change()) ну и соответственно при выгрузке, когда значению ячейки присваиваю "неправильное" значение он ругается и все время приходится жать ОК перед открытием книги, как можно программно отключить выполнение этой проверки пока я заполняю ячейки???
Спасибо
Получилось так, что мне нужно выгрузить данные из 1С в Excel, в котором есть процедура проверки правильности заполнения ячеек (Worksheet_Change()) ну и соответственно при выгрузке, когда значению ячейки присваиваю "неправильное" значение он ругается и все время приходится жать ОК перед открытием книги, как можно программно отключить выполнение этой проверки пока я заполняю ячейки???
Спасибо
Canibal
В любом файле в VBA редакторе создай новый модуль и скопируй туда:
Код: Sub EventsOff()
Application.EnableEvents = False
End Sub
Sub EventsOn()
Application.EnableEvents = True
End Sub
В любом файле в VBA редакторе создай новый модуль и скопируй туда:
Код: Sub EventsOff()
Application.EnableEvents = False
End Sub
Sub EventsOn()
Application.EnableEvents = True
End Sub
Yuk
Огромное спасибо!! Два дня искал! Спасибо!
Огромное спасибо!! Два дня искал! Спасибо!
Помогите с макросом, ситуация такая - необходимо, чтобы при появлении записи в ячеке А1 - "Субота", В2 - "Воскресение" , ячеики А2:A5, B2:B5 стали красными. Спасибо
Добавлено:
Простите, предидущем посту ошибочка
Помогите с макросом, ситуация такая - необходимо, чтобы при появлении записи в ячеке А1 - "Субота", В1 - "Воскресение" , ячеики А2:A5, B2:B5 стали красными. Спасибо
Добавлено:
Простите, предидущем посту ошибочка
Помогите с макросом, ситуация такая - необходимо, чтобы при появлении записи в ячеке А1 - "Субота", В1 - "Воскресение" , ячеики А2:A5, B2:B5 стали красными. Спасибо
virginijus
А точно нужен макрос, может проще через условное форматирование?
Добавлено:
Как определить наличие объекта (рисунка) на листе? Макросом вставляю на лист картинку, хочу проверить ее наличии там, чтобы не вставить повторно.
А точно нужен макрос, может проще через условное форматирование?
Добавлено:
Как определить наличие объекта (рисунка) на листе? Макросом вставляю на лист картинку, хочу проверить ее наличии там, чтобы не вставить повторно.
А как это через условное форматирование? через ЕСЛИ ? Дело в том, что "Субота", "Воскресение" может окозаться допустим в интервале от А1 до АЕ1 в зависимости от года и месеца. Уточню- имеетса такая ситуация
Пн Вт Ср Чт Пт Сб Вс Пн Вт Ср Чт Пт Сб Вс....
A2 B2 C2 D2 E2 F2 G2 H2.....
A3 B3......
.....
Необходимо чтобы столбцы (в данном случае F2:F50, G2:G50) покраснели, в след. месяце Сб Вс выпадет на D1 E1 значит должны покраснеть D2:D50, E2:E50 и т.д.
Мне кажется через ЕСЛИ это невозможно или я ошибаюсь?
Пн Вт Ср Чт Пт Сб Вс Пн Вт Ср Чт Пт Сб Вс....
A2 B2 C2 D2 E2 F2 G2 H2.....
A3 B3......
.....
Необходимо чтобы столбцы (в данном случае F2:F50, G2:G50) покраснели, в след. месяце Сб Вс выпадет на D1 E1 значит должны покраснеть D2:D50, E2:E50 и т.д.
Мне кажется через ЕСЛИ это невозможно или я ошибаюсь?
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
Предыдущая тема: Стоит ли переходить с Билдера на Делфи?
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.