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

Страницы: 1 2 3 4 5 6 След.
Выпадающий список и дата в одной ячейке
 
Сузить диапазон будет достаточным. Подскажите плиз, как сузить его, например, задав 01.01.2015 - 01.01.2035?
Выпадающий список и дата в одной ячейке
 
АlехМ, интересно. Но я всё равно могу любой текст ввести, а нужно в ячейке, чтоб как было изначально у меня файле и как я описал выше - только дата или только предопределенный текст.
Выпадающий список и дата в одной ячейке
 
Здравствуйте. Подскажите, пожалуйста, как в одной ячейке объединить и выпадающий список, и ввод даты. Поясняю.

Имеется книга с единственным листом, на нем диапазон для ввода (выделен желтым). В данный диапазон можно ввести либо дату, либо предопределенный текст из умной таблицы "Пример". Ограничения выставлены путем проверки данных в желтом диапазоне следующей формулой:
Код
=ИЛИ(НЕ(ЕОШИБКА(-D1));СЧЁТЕСЛИ(ДВССЫЛ("Пример");D1)=1)

То есть, сейчас в желтый диапазон можно ввести либо дату, либо одно из предопределенных значений из таблицы "Пример".

Как сделать так, чтоб эти предопределенные значения из таблицы "Пример" нужно было вводить не руками, а выбирать из выпадающего списка? При этом, сохранив возможность ввода в ячейку желтого диапазона любого текста (на что проверка данных выдаст ошибку, если в ячейку будет введен не предопределенный текст или не дата)
Номер столбца заранее неизвестен в ВПР или ИНДЕКС
 
АlехМ, Спасибо! Ваш вариант рабочий. Даже работает при ссылке на закрытую книгу.
Код
=ИНДЕКС(L:L&M:M;ПОИСКПОЗ(D2;K:K;);)

Цитата
Дмитрий(The_Prist) Щербаков написал:
странное, конечно, требование
Ну что поделать, такова файловая структура.
Номер столбца заранее неизвестен в ВПР или ИНДЕКС
 
Vik_tor, спасибо. Работает. Но очень сильно переусложнено и не парсит значения, которые в текстовом формате, а только числовые.
Дмитрий(The_Prist) Щербаков, и вам спасибо. Тоже работает, но я писал, что массивы не подходят.

В общем, как я понял, простыми решениями это не обуздать...
Номер столбца заранее неизвестен в ВПР или ИНДЕКС
 
DAB, нет...

Vik_tor и DAB, судя по всему, вы не поняли меня. Попробую объяснить. Вам заранее неизвестна структура таблицы Т2. Всё, что вы знаете, это то, что в первом столбце таблицы вам надо найти слово "тест", а затем справа от него в столбцах L:M найти первое непустое значение. Если перевести это в ВПР, то выглядеть это будет так:
Код
=ВПР("тест";K:M;ВЫЧИСЛИТЬ-НОМЕР-СТОЛБЦА-В-КОТОРОМ-НАХОДИТСЯ-ПЕРВОЕ-НЕПУСТОЕ-ЗНАЧЕНИЕ-СПРАВА-ОТ-СЛОВА-ТЕСТ;0)

Мне нужно это: ВЫЧИСЛИТЬ-НОМЕР-СТОЛБЦА-В-КОТОРОМ-НАХОДИТСЯ-ПЕРВОЕ-НЕПУСТОЕ-ЗНАЧЕНИЕ-СПРАВА-ОТ-СЛОВА-ТЕСТ.
То бишь вместо номера столбца нужна формула, которая находит число номера столбца. Так понятнее, надеюсь.
Номер столбца заранее неизвестен в ВПР или ИНДЕКС
 
Vik_tor, вы явно указали диапазон, ограничив его строкой. Но я же ищу именно "тест" именно в столбце K, а в столбцах L:M значение для "тест". Это указано в первом посте в кодах.
Номер столбца заранее неизвестен в ВПР или ИНДЕКС
 
Здравствуйте. Имеются 2 таблицы - Т1 и Т2. В ячейку B2 выводится простой ВПР, который ищет значение в таблице Т1 справа от слова "тест". С этим всё просто.
Но как быть, если таблица Т1 была изменена пользователем и превратилась в таблицу Т2? В которой теперь искомое значение не в третьем столбце, а во втором. Сейчас речь не идет о том, когда Excel сам меняет формулы в некоторых случаях при изменении столбцов/строк.

Вопрос - как найти первое непустое значение в строке в таблице Т2 справа от слова "тест" и вставить его в ячейку E2 (выделена желтым)? Я пробовал через связку ИНДЕКС+ПОИСКПОЗ, это просто:
Код
=ИНДЕКС(K:M;ПОИСКПОЗ("тест";K:K;0);НОМЕРСТОЛБЦА)

Ну или тот же ВПР:
Код
=ВПР("тест";K:M;НОМЕРСТОЛБЦА;0)

Однако, всегда обязательно указание номера столбца. Но его никак не узнать при условии, что пользователь опять изменит столбцы. Предположим, что номер столбца изначально неизвестен, и его никак не проверить.

Что нужно вписать вместо НОМЕРСТОЛБЦА для того, чтоб искалось первое непустое значение? Но только без формул массивов, нужна простая формула как ВПР.
[VBA ]Выделение содержимого письма и вставка в Excel
 
Sanja, да.
Не знаете ответа на вопрос?
[VBA ]Выделение содержимого письма и вставка в Excel
 
Здравствуйте. Не могу найти способ, как нажать Ctrl+A и Ctrl+С в письме, подскажите плиз. Пробовал такой вариант (а также меняя xMailItem.HTMLBody на xMailItem.Body и еще что-то), он работает, но вставляет не целиком (если большой объем данных в письме), да и вообще "чистый" текст, а у меня в письме таблица, которая ручными манипуляциями Ctrl+A и Ctrl+С экспортируется в Excel без проблем:
Скрытый текст

И такой вариант, но он вообще почему-то не работает, якобы переменная не объявлена, а вроде всё объявлено:
Скрытый текст
Изменено: andronus - 26.12.2023 14:02:27
Уведомление на почту при самоличном изменении поста или своем ответе в свою тему
 
Excaz, справа вверху каждой темы есть кнопка "Подписаться". Она автоматически активируется в созданной вами теме, в других нужно нажать самому. Плюс в каждой теме при ответе внизу есть флаг "Подписаться на новые сообщения этой темы". Если после этого продолжается неприход уведомлений, значит смотрите настройки своего почтового ящика, возможно, они попадают в спам или еще что-то.
[VBA] Преобразование текстовой даты в нормальную дату
 
Jack Famous, спасибо, ваш вариант сработал, возьму на вооружение.
Осталось лишь добавить это:
Код
Columns("E").NumberFormat = "dd/mm/yyyy hh:mm"
И всё будет в норме :)
[VBA] Преобразование текстовой даты в нормальную дату
 
Добрый день. Помогите, пожалуйста, преобразовать текстовую дату в нормальную дату через VBA. Мне нужно, чтоб при фильтре на столбце E ("Дата") было не "Текстовые фильтры", а "Фильтры по дате".

Я пробовал разные способы:

1.
Код
For Each Cell In ActiveSheet.UsedRange.Columns("E").Cells
    Cell.Value = DateValue(Cell.Value)
Next Cell
Выдает ошибку Type Mismatch.

2.
Код
For Each Cell In ActiveSheet.UsedRange.Columns("E").Cells
    cell.Value = CDate(cell.Value)
Next Cell
Выдает ошибку Type Mismatch.

3.
Через замену точки на точку или пробела на пробел:
Код
Columns("E").Replace " ", " ", LookAt:=xlPart
Руками это работает, в VBA же результат нулевой.

4.
Через "Текст по столбцам" в коде. Ситуация аналогична п.3.

5.
Через создание доп. столбца и копирования туда значений из имеющегося столбца:
Код
Dim rngCop As Range, rngPas As Range
Dim clpbrd As Variant
Columns("F").Insert Shift:=xlToRight
Columns("F").NumberFormat = "General"
Set rngCop = Range(Range("E2"), Range("E2").End(xlDown))
Set rngPas = Range(Range("E2"), Range("E2").End(xlDown)).Offset(0, 1)
clpbrd = rngCop
rngPas = clpbrd
Безрезультатно. А если же сначала скопировать в блокнот, а оттуда вставить в тот же доп. столбец, то всё ок.

Помогите, пожалуйста. Не понимаю, в чем проблема.
[VBA] Копирование результатов подсчета в буфер обмена
 
МатросНаЗебре, Wofchik, благдарю за ответы, сработал первый вариант.
[VBA] Копирование результатов подсчета в буфер обмена
 
Добрый день. Хочу посчитать кол-во видимых строк и копировать-вставить это значение через буфер обмена. Код такой:
Код
rowsCnt = WorksheetFunction.Subtotal(3, Range("B2:B1000000"))
rowsCnt.Copy
Выдает ошибку 424 "Object required".  Я пробовал и объявлять переменную rowsCnt через Range (но это не диапазон, поэтому тоже ошибка), и через Variant (та же ошибка 424), и через Long (ошибка Invalid qualifier).
В общем, ничего не помогает, я начинаю вскипать от этой простейшей ерунды, когда в Locals видно значение этого rowsCnt, но скопировать его Excel не умеет.
Подскажите, пожалуйста, как скопировать это значение rowsCnt в буфер.
Странные расчеты с использованием ВПР
 
Ох, не нравится мне это, когда:
0,689409341747419 <> 0,689409341747419,
но:
0,977777777777778 = 0,977777777777778

Ладно, буду через округление, спасибо.
Изменено: andronus - 28.09.2022 15:04:12
Странные расчеты с использованием ВПР
 
Ігор Гончаренко, изначально у меня и было округление. И оно приводило к такому же результату.
Можете, пожалуйста, ответить по существу? Особенно учитывая то, что я написал об одинаковости чисел X и Y (не между собой, а между листами), но ведут себя они по-разному.

Важная деталь, которую я сейчас добавлю в первый пост - если скопировать число X с Лист1 на Лист2 (или наоборот), то формулы начинают работать верно. Тем самым, ячейки становятся максимально одинаковыми (хотя, визуально и некоторыми формулами они именно такие). Видимо, где-то проблема именно в разности ячеек Лист1!B1 и Лист2!B1, но где именно - неясно.
Странные расчеты с использованием ВПР
 
Не прикрепилась книга в первом сообщении.
Странные расчеты с использованием ВПР
 
Здравствуйте. У меня есть два идентичных числа в ячейка на разных листах - 0,689409341747419 (назовем числом X). Лист1!B1 и Лист2!B1. Книга прикреплена во втором сообщении.

При попытке вычислить разницу между двумя этими числами через ВПР и последующем сравнении их, больше ли результат ноля, Excel выдает, что-де да - результат больше ноля (проверки!C5).
При этом, на листах Лист1 и Лист2 ниже этих проблемных чисел есть тоже два одинаковых числа - 0,977777777777778 (назовем числом Y), и вот с ними всё нормально.

Однако, я решил проверить дальше, и чем больше я проверял число X, тем больше я начал сходить с ума:
1. Проверка разницы ВПР, выполненная в одной ячейке, выдает результат >0 (проверки!C5)
2. Проверка разницы результатов ВПР, выполненные в разных ячейках, тоже выдает результат >0 (проверки!H5)
3. Результаты ВПР, а затем их разница выдает, что результат-таки не >0 (проверки!K5)
4. Разница результатов ВПР выдает, что результат тоже не >0 (проверки!N5)

Помогите, пожалуйста, разобраться, почему в случае с числом X такие разные результаты, а с числом Y - всё нормально, при том, что числа X на двух листах идентичны между собой, равно как и числа Y между собой.

Важный момент: если скопировать число X с Лист1 на Лист2 (или наоборот), то формулы начинают работать верно. Тем самым, ячейки становятся максимально одинаковыми (хотя, визуально и некоторыми формулами они именно такие). Видимо, где-то проблема именно в разности ячеек Лист1!B1 и Лист2!B1, но где именно - неясно.

Более того, если в проверки!C5 выполнить расчет через "Формулы - Вычислить формулу", то результат получается такой (см. приложенные скриншоты):
Изменено: andronus - 28.09.2022 13:35:58
[VBA] ChrW вместо нужного символа выводит знак вопроса
 
sokol92, спасибо. А возможно ли этот код адаптировать для вывода текста в notepad.exe или всё иначе надо переписывать? Типа:
Код
Print #1, ChrW(9679) & " текст"
[VBA] ChrW вместо нужного символа выводит знак вопроса
 
Спасибо.
[VBA] ChrW вместо нужного символа выводит знак вопроса
 
Добрый день. Обнаружил замечательную функцию ChrW, позволяющую выводить символы из Юникода. Но для символа 9679 (●) она срабатывает лишь при применении ее к ячейке, то бишь данный код выведет символ в ячейку:
Код
Sub celltest()
Range("A1").Value = ChrW(9679)
End Sub

Но! Такой код не сработает, выведя в окно знак вопроса вместо нужного:
Код
Sub msgtest()
MsgBox ChrW(9679)
End Sub


Возможно ли вывести в MsgBox данный символ (и другие подобные символы Юникода, например ■)?
[VBA] Как открыть файлы и папки по маскам
 
Александр Макаров, не работает, ругается на амперсанд. Но спасибо за помощь.
Ігор Гончаренко, спасибо, работает.
[VBA] Как открыть файлы и папки по маскам
 
Цитата
Ігор Гончаренко написал:
вы описали а ни одного решения нет не потому что задача хрен знает какая сложная, а потому что тут нет задачи. есть намеки на наличие задачи, а описания задачи - нет!
Я не собираюсь спорить. Кто ответил по теме, те прочитали первый пост, где в первых двух абзацах описана задача - открывать файлы и папки по маскам.
Цитата
Дмитрий(The_Prist) Щербаков написал:
Dir может работать с масками файлов:Код ? 1234FName = Dir(ThisWorkbook.Path & "\Папка\Подпапка\подфайл*.xlsx")If FName <> "" then    workbooks.open FNameend ifА вот с масками папок - нет, надо будет перебирать скорее всего.
Не работает. Вернее, странно как-то работает - находит верный файл, но рапортует о его несуществовании. Макрос запускается из файла, расположенного в папке "тест", то есть, путь до искомого файла выглядит так: ThisWorkbook\Папка\Подпапка\.
Путь прописан верно, файл находится с верным называнием, но не открывается.
Изменено: andronus - 16.08.2022 14:04:18
[VBA] Как открыть файлы и папки по маскам
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Dir может работать с масками файлов:
Благодарю. Сохранил.
Цитата
Дмитрий(The_Prist) Щербаков написал:
А вот с масками папок - нет, надо будет перебирать скорее всего.
Очень странно и очень жаль.
Цитата
Ігор Гончаренко написал:
а автору темы нужно было описывать не сложности в его решении, а задачу, которую он решает
Задачу я описал.

Всем спасибо. Раз маски названий папок нельзя просто так реализовать, придется задавать папкам неизменные названия, и уж от этого плясать.
[VBA] Как открыть файлы и папки по маскам
 
Здравствуйте. Существуют ли простые способы открывать файлы и папки по маске названий? Кейс следующий - есть директории и файлы:
1. \ЛюбаяПапка\макрос.xlsm
2. \ЛюбаяПапка\YфайлY.xlsx
3. \ЛюбаяПапка\ПапкаY\Подпапка\подфайлY.xlsx

Сначала запускается файл с макросами из п.1, и в нем начинается работа с файлами. Мне нужно макросом открывать файлы из пунктов 2 и 3. Проблема в том, что названия папок и файлов могут меняться (переменное - всё, что обозначено как Y). Представляю я себе это примерно так (звездочки как маска):

Код
'открытие файла в п.2
PathFolderName = ThisWorkbook.Path ()
Workbooks.Open Filename:=ThisWorkbook.Path & "\*файл*.xlsx"


Код
'открытие файла в п.3
PathFolderName = ThisWorkbook.Path ()
Workbooks.Open Filename:=ThisWorkbook.Path & "\Папка*\Подпапка\подфайл*.xlsx"


Я нашел такое решение, но у меня оно не работает, либо я не смог корректно написать пути и названия:

Код
Sub Openfile()
  Dim Fso As Object, fs, Fl As Variant
    
  Set Fso = CreateObject("Scripting.FileSystemObject")
  Application.ScreenUpdating = False
  For Each Fl In Fso.getfolder(ThisWorkbook.Path & "\").Files
    If Fl.Name Like "RSNOS_*Summary*" Then  'for rawdata file
      Workbooks.Open ThisWorkbook.Path & "\" & Fl.Name
    End If
  Next
End Sub
VBA. Отобрать первые 10 и из них удалить ненужные
 
Цитата
Jack Famous написал:
с доп. столбцом для доп. фильтра - всего 2 основные строки
Да, так я уже и сделал.
VBA. Отобрать первые 10 и из них удалить ненужные
 
Jack Famous, в общем, без огромного кода (второй всё же тоже огромен) никак...
Благодарю, возможно кому-то понадобится.
Но я надеялся, что можно парой строк обойтись, без переменных и прочего.

Может кто-то еще знает?
VBA. Отобрать первые 10 и из них удалить ненужные
 
Я надеюсь, вы не специально его сейчас писали, а взяли откуда-то уже :)
То есть, без такого кода никак? VBA не умеет в настраиваемый фильтр?
VBA. Отобрать первые 10 и из них удалить ненужные
 
Именно.
Страницы: 1 2 3 4 5 6 След.
Наверх