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

Страницы: 1 2 3 4 След.
Хранение контролов формы в словаре
 
Прочел статью, но и там контролы хранят в массиве.
Хранение контролов формы в словаре
 
Вечер добрый!
Не раз видел и сам хранил контролы (созданные программно) на форме в массивах, что бы перехватывать их события. А сейчас думаю сделать их хранение в коллекции или например в словаре.
Что думаете, события контролов будут перехватыватся?
Можно ли сделать уникальный процесс Excel, который будет работать особняком?
 
Андрей VG,х64-х64
Можно ли сделать уникальный процесс Excel, который будет работать особняком?
 
sokol92, добавил DisableMergeInstance = 1 но никакого результата.

RAN, примерно так  пока и решаю свою задачу. Вот думал может есть решение более культурное.

Ладно, спасибо всем, кто уделил немного своего внимания.
Можно ли сделать уникальный процесс Excel, который будет работать особняком?
 
Юрий М, Это первое что я прочел.
Там нет вот чего - если пользователь откроет книгу из проводника двойным щелчком - книга откроется в уже запущенном экземпляре Excel.

Мысль такая:
1. Запуск приложения excel, скрываем весь ribbon
2. Открываем новую книгу из проводника, она откроется в уже запущенном процессе excel и в ней не будет интерфейса, а это го я хочу избежать.

Сейчас все на ивентах активной книги, окна, листа, но это очень громоздко получается.
Изменено: tsutse - 13.01.2021 12:39:48
Можно ли сделать уникальный процесс Excel, который будет работать особняком?
 
nor, одна книга - один экземпляр приложения
Можно ли сделать уникальный процесс Excel, который будет работать особняком?
 
День добрый!

На сколько мне известно открывающиеся новые книги "прилипают" к активному окну (посредством hWnd?).

Как решение в лоб - править в реестре для каждого расширения Excel ключ для открытия файлов (%1 - в новом окне).
А можно ли сделать уникальный процесс Excel который будет работать особняком?
Поиск активного листа в момент открытия книги
 
Александр Макаров, не совсем.
Код
'Код в надстройке
Private WithEvents xlApp As Application

Private Sub Workbook_Open()
    Set xlApp = Application
End Sub

Private Sub xlApp_WindowActivate(ByVal wb As Workbook, ByVal Wn As Window)
    MsgBox ActiveSheet.Name 'Покажет имя листа только в книге надстройки
    MsgBox xlApp.ActiveSheet.Name 'Покажет имя активного листа в открывающейся книге
End Sub

Вот тут с экземплярами я напутал...

Поиск активного листа в момент открытия книги
 
Вопрос снят.
Поиск активного листа в момент открытия книги
 
День добрый!
При открытии книги события отрабатываются в следующем порядке: WB_open>WB_activate>Window_activate.
Но ни в одном из событий я не смог отловить лист выделенный в данный момент (событие Worksheet_activate не наступает).
Вот собственно и вопрос - есть ли возможность отследить "активный" лист в каскаде событий открытия книги?
Привязка формы(немодальной) к активной книге
 
Добрый вечер, форумчане.

Помогите разобраться со следующей проблемой.
В примере - открываем WB1, открываем WB2. После запуска книги RUN окно последней книги (RUN) прячем (visible=false), и показываем форму в немодальном режиме.

Вот вопрос: последнее активное окно перед запуском книги RUN - окно с книгой WB2 и к нему привязывается форма(или книга?). Если закрыть книгу WB2 сразу закроется и книга RUN. Как обойти ограничение?

Решено.
Перед показом формы активировать книгу из которой выполняется код.
Код
thisworkbook.activate
userform1.show vbmodeless
Изменено: tsutse - 03.02.2020 20:04:39
Заполнение listbox диапазоном умной таблицы используя свойство rowsource.
 
Sanja, Работает! Спасибо большое!
А еще есть эквивалентные варианты записи, ну на вскидку?
Заполнение listbox диапазоном умной таблицы используя свойство rowsource.
 
Тогда такой пример.
Нужно открыть обе книги wb1 и wb2. Форма находится в книге wb1.
Заполнение listbox диапазоном умной таблицы используя свойство rowsource.
 
Хм, имеете ввиду так?
Код
listbox1.rowsource = Range("[Report.xls]Sheet1!Sales")
Заполнение listbox диапазоном умной таблицы используя свойство rowsource.
 
Вечер добрый!
Подскажите пожалуйста, можно ли заполнить listbox диапазоном умной таблицы находящейся в другой книге используя свойство rowsource?
Совместное использование методов .find и .findnext
 
Казанский, вау, опробую обязательно)

Sanja,  я попробую) мне нужно отыскать ну скажем координаты самого нижнего в "дереве" параграфа, затем найти его "родителя" произвести операции по сложению/вычитанию/умножению в ячейках правее найденных, затем подняться на уровень выше, так пока не дойдем до первого родителя. Еще осложняется тем, что родителей  первого уровня может быть несколько ("параграфы" 1, 2, 3...) и "детей" у каждого родителя может быть несколько.

Походу после разъяснения всех распугал)
Изменено: tsutse - 04.02.2019 19:56:38
Совместное использование методов .find и .findnext
 
Добрый вечер, форумчане!

Нужна ваша помощь.
Думаю что ошибка кроется в последующем использовании find после findnext.

Имеем: в первом столбце таблицы находятся ну скажем параграфы.
1. Макрос в первом проходе находит наибольшее количество символов в каждой ячейке.
2. Во втором проходе макрос ищет эти ячейки.
3. Затем макрос ищет вышестоящий параграф, в который входит тот, с которым мы работаем в данный момент.
С пунктами 1 и 2 макрос справляется, но если раскомментировать 2 строки, макрос срабатывает только один раз, показывая первое найденное значение и уходит в цикл.

Читал что можно вместо findnext можно использовать find но с параметром after. Подскажите пожалуйста как правильно ввернуть в данный код.
Код
Option Explicit
Sub test2()
Dim ACTrng As Range, ACTcll As Range, STRlen&, STRlenMAX&, FSTrez As String, FNDpar As Range

Set ACTrng = ThisWorkbook.Worksheets("Лист2").ListObjects("TAB_3").ListColumns(1).DataBodyRange

With ThisWorkbook.Worksheets("Лист2")

'1й проход - находим ячейки с наибольшим кол-вом символов
Set ACTcll = ACTrng.Find("*", , xlValues, xlWhole, xlByColumns)
    STRlenMAX = Len(.Cells(ACTcll.Row, ACTcll.Column))
       
        If Not ACTcll Is Nothing Then
            FSTrez = ACTcll.Address
                
                Do
                    Set ACTcll = ACTrng.FindNext(ACTcll)
                    STRlen = Len(.Cells(ACTcll.Row, ACTcll.Column))
                        If STRlen > STRlenMAX Then STRlenMAX = STRlen
                Loop Until FSTrez = ACTcll.Address
        End If

'2й проход - находим самую нижнюю в древе подсборку
Set ACTcll = ACTrng.Find("*", , xlValues, xlWhole, xlByColumns)
    If Not ACTcll Is Nothing Then
            FSTrez = ACTcll.Address
                Do
                    Set ACTcll = ACTrng.FindNext(ACTcll)
                    STRlen = Len(.Cells(ACTcll.Row, ACTcll.Column))

                        If STRlen = STRlenMAX Then
                            MsgBox ACTcll
                            
                            'Set FNDpar = ACTrng.Find(Left(ACTcll, STRlen - 2), , xlValues, xlWhole, xlByColumns)
                            'MsgBox FNDpar
                        End If
                        
                        
                Loop Until FSTrez = ACTcll.Address
        End If
End With
End Sub
Изменено: tsutse - 05.02.2019 02:09:14
Поиск совпадений в текста в ячейке и нахождение ее координат
 
И find возвращает range - разве нет?
Поиск совпадений в текста в ячейке и нахождение ее координат
 
Спасибо! Но почему:
Код
Set fcell = ThisWorkbook.Worksheets("Лист1").Columns("C").Find("фыва", , xlValues, xlPart).row

не сработает, а

Код
fcell.row

сработает?

Поиск совпадений в текста в ячейке и нахождение ее координат
 
Добрый вечер!

Никак не могу укротить метод find
Вроде и по хелпу делаю, но что то не получается.
Код
Option Explicit
Sub kkk()
Dim fcell As Range

Set fcell = ThisWorkbook.Worksheets("Лист1").Find("фыва", , xlValues, xlPart).Row
MsgBox fcell
End Sub

Нужно найти совпадение в тексте ячейки и найти ее координаты.
В чем ошибка применения If / Else / End If&
 
Товарищи! Спасибо за разъяснения!
В чем ошибка применения If / Else / End If&
 
БМВ,тоже ругается
Else without if

Код в модуле книги
Изменено: tsutse - 22.01.2019 21:24:14
В чем ошибка применения If / Else / End If&
 
Добрый вечер!

Поясните пожалуйста, почему не работает следующая конструкция?
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)

If ActiveSheet.Name = "MB" Then user_menu.Show
Else
user_menu.Hide
end if
End Sub
Изменено: tsutse - 22.01.2019 21:36:54
Выделить последнюю строку умной таблицы.
 
Спасибо!
Выделить последнюю строку умной таблицы.
 
Сам отвечу на свой вопрос :
Код
ThisWorkbook.Worksheets("MB").ListObjects("tech_vis").ListRows(ThisWorkbook.Worksheets("MB").ListObjects("tech_vis").ListRows.Count).Range.Select
Выделить последнюю строку умной таблицы.
 
Добрый вечер!

Собственно сама проблема описана в теме.
Пытаюсь выделить ее так:
Код
ThisWorkbook.Worksheets("MB").ListObjects("tech_vis").DataBodyRange.Row(ListRows.Count).Select 
Поправьте пожалуйста.
Обработка события Worksheet_Change
 
 k61, интересная мысль, спасибо.
Обработка события Worksheet_Change
 
Доброго времени суток!

Делаю подобие зависимых таблиц.
Так при изменении таблицы на листе MB соответственно меняется и таблица на листе MB_back.
Под изменениями имею ввиду: при удалении (добавлении) строки (строк) на листе MB - удалялись (добавлялись) и соответствующие строки на листе MB_back.
Светлых мыслей, кроме как пронумеровать строки в доп. столбце, не появилось.

Код находится в модуле листа и добавляет и удаляет строки, но вот как только я хочу пронумеровать по новой Столбец 4 на листе MB (после вставки строки образуется разрыв из пустых ячеек) эксель вылетает с ошибкой.

Т. е. в середине выполнения процедуры опять срабатывает событие изменения листа?
Нумерация строк сквозь объединенные ячейки
 
Юрий М,эээээх, придется забыть школьный курс информатики))))
Нумерация строк сквозь объединенные ячейки
 
Юрий М, в таблице уверен на 110% строк не может быть больше 1000.
А ilastrow - Long - от невнимательности, спасибо что подметили!
Страницы: 1 2 3 4 След.
Наверх