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

Страницы: 1
Поиск известного значения в неизвестном месте другого листа.
 
Уважаемые знатоки, добрый день!

Есть задача, но правильное решение найти не могу(
В чем суть:
Надо найти формулой UDF любое значение на любом листе книги в любом месте и выдать результат смещением на x(-x) и (или) y(-y) или без смещения.

Вот формула, которая решает задачу:
Код
Function findVal(findSheet As String, findTxt As String, Optional offsX As Integer, Optional offsY As Integer)
    Dim xCell As Range, wb As Workbook
    Set wb = ThisWorkbook
    On Error Resume Next
    For Each xCell In wb.Sheets(findSheet).UsedRange
        If xCell.Value = findTxt Then
            findVal = xCell.Offset(offsX, offsY).Value
            Exit Function
        End If
    Next
End Function

Вроде все просто, но поиск осложняется тем, что в книге таких листов ~100 и формула должна быть на каждом листе и не по одному разу.
И данные на листах (таб1, таб2, ...) могут быть разбросаны, т.е. одно и тоже значение на разных листах может быть в разных ячейках.
Плюс есть некая сводная таблица, куда с остальных листов (таб1, таб2, ...) подтягиваются нужные значения.

Соответственно, при работе с этой книгой Excel начинает максимально тормозить.
Для ускорения работы, я отключаю автоматический пересчет формул в книге, но это костыльное решение и хотелось бы формулу или ускорить или как-то усовершенствовать, но знаний не хватает.

P.S. Структуру книги менять нельзя (к сожалению).
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Импорт заданных столбцов из другой книги MSExcel, Оптимизация решения
 
Всем привет и отличного весеннего настроения! ))

Прошу помочь (направить на верный путь решения)  в решении этой задачи:
Требуется импорт данных в готовую таблицу с фиксированным количеством строк/столбцов (строк-4000, столбцов-22)
Импорт может быть из любого файла MSExcel (.xls/.xlsx). Из других файлов/форматов импорт запрещен.
В файле импорта
- обязателно организация данных в виде таблицы с заголовками (но можно и без заголовков);
- данные берутся только с первого листа;
- не более 4001 строки (4000-данные, 1-заголовок).

Самостоятельно все это удалось решить - пример (import.xls).
Также прикладываю один из вариантов файла импорта (вариантов организации таких таблиц может быть бесконечное множество...)

Столкнулся с проблемой, которую самостоятельно решить не могу:
Чем больше объем импортируемых данных - тем дольше импорт.
Вроде бы и логично, но при импорте ~1000 строк/20 столбцов MSExcel виснет наглухо, а столбцов может быть и 50, а строк 4000.

У меня MSExcel 2016.

P.S.
Файлы в архиве, т.к. объем 600kb (ибо там форма)
Поиском пользовался, но похожего не нашел. Если проглядел - ткните плиз в тему или ветку где поискать.

Заранее всем спасибо!
Изменено: merzavcheg - 30.04.2016 09:23:11
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Очистка буфера обмена при переключении книги., Не могу сохранить информацию в буфер
 
Добрый день уважаемые Гуру!
При активации книги требуется отключить автоматический пересчёт формул, а при деактивации - наоборот включить.
Проблема в следующем - если в книге выделить любой диапазон и скопировать его, то буфер обмена особождается после активации другой книги. Сответственно из нее ничего не скопипастить.
Можно ли эту проблему как-то победить?
Информации копировать много надо, а пересчёт обязательно надо отключать, т.к. книга тормозит из-за большого количества формул ((
Код в книге:
Код
Private Sub Workbook_Activate()
    Application.Calculation = xlCalculationManual
End Sub
Private Sub Workbook_Deactivate()
    Application.Calculation = xlCalculationAutomatic
End Sub
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Выборка значений по условию
 
Добрый день уважаемые знатоки!
1. Лучшее название для темы не придумал.
2. На форуме искал- не нашел.
3. В интернете искал - см.п.2

Прошу помощи в достаточно простой (на мой взгляд задачи).
Необходимо провести выборку в таблице.
В примере мой вариант, но он работает неправильно.
Хотелку в примере написал.

Огромное спасибо всем кто откликнется  :)
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Сумма в объединенных ячейках с помощью СУММЕСЛИМН
 
Добрый день друзья!
Прошу помочь в решении непростой (для меня) задачи.
В примере 2 листа:
"Кабельный журнал" - исходные данные, менять оформление ячеек нельзя ((.
"Сводная ведомость кабелей" - собственно расчёты по исходникам.
У меня получилось посчитать данные через функцию СУММЕСЛИМН и все бы хорошо,
НО на исходном листе есть объединенные ячейки. И объединение нельзя снимать.
Соответственно формула считает сумму только по первой строке,
а остальные из-за объединения не учитывает.

На форуме подобного решения не нашел.
Все что нашел - это "объединение ячеек - зло" и т.п.
Сам прекрасно понимаю, что объединение - зло и никогда этого не делаю,
но у жены на работе такие формы отчетов приняты и изменять их нельзя.

Я подозреваю что без UDF и (или) макроса здесь не обойтись, но самому решить
задачу мозгов не хватает ((

P.S. в примере выделил нужное желтым.
заранее спасибо всем кто откликнется ))
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Не работает переключение .DisplayAlerts, Не получается перевести в состояние =FALSE
 
Добрый день уважаемые Гуру!

Собственно проблема - не работает Application.DisplayAlerts.
Т.е. наоборот - работает, а вот перевести в состояние =FALSE не получается  :(
Поиском подобного не нашел, если проглядел - дайте ссылку пожалуйста.

В примере все зацепил на кнопки, лист без пароля.
.EnableEvents в этом примере включается и выключается без проблем...

Вот где лыжи не едут?
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Посчитать разницу в часах между начальной и конечной датой. Как?
 
Всем планетянам добрый день!  
Пример -    
<дата>_<время> в разных столбцах (начало),  
<дата>_<время> в разных столбцах (окончание).  
Что необходимо:  
В идеале: вычислить разницу во времени между этими интервалами,  
с учетом времени рабочего дня (с 9:00 до 18:00, перерыв 1 час в интервале с 12:00 до 14:00)  
Желательно, конечно с учетом выходных дней, но можно и без них.  
На форумах смотрел - приблизительные аналоги расчетов есть, но подстроить не смог. ((  
 
Файл прикладываю.  
Заранее всем спасибо за помошь!  
 
P.S. Формулы для рачета дней вроде нормально работают, но с расчетом разницы часов ничего придумать не могу....
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Как зафиксировать CommandButton внедренные в таблицу?
 
Всем доброго дня!  
 
Сабж:  
Есть таблица (скрин), в которой внедрены ComandButton'ы.  
В этой таблице применен суперфильтр вот отсюда: http://www.planetaexcel.ru/tip.php?aid=262  
В книге внедрен макрос который автоматически сохраняет книгу перед закрытием:  
Private Sub Workbook_BeforeClose(Cancel As Boolean)  
   ActiveWorkbook.Save  
End Sub  
 
Проблема:  
Когда применен суперфильтр, после сохранения книги ComandButton'ы пропадают:  
Т.е., если после суперфильтра отображается только первая строка, то пропадают все, кроме самой верхней, если вторая - то все кроме первых двух,и т.д. и т.п.  
Button'ы фактически остаются в книге, но у всех "пропавших" высота становиться =0 и , соответственно, они не отображаются.  
 
Как-то можно решить эту проблему?
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
Страницы: 1
Наверх