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

Страницы: 1
[VBA] Find. Поиск различных значений в одной ячейке (или). Ошибка Select Case, Возможно ли задать несколько ключевых слов для поиска?
 
Цитата
Пытливый написал:
Можно:
1. не пугаться цикла For (вложенных циклов может быть много) :)
2. Вынести пугающий FOR в отдельную процедуру с параметрами и запускать ее из основного кода типа:
Код
    [URL=#]?[/URL]       1  2  3      For   each ....        Call   MySpookyForProcedure (Parameter1, Parameter2,...)    Next   
 
Как вариант!
Благодарю!))
[VBA] Find. Поиск различных значений в одной ячейке (или). Ошибка Select Case, Возможно ли задать несколько ключевых слов для поиска?
 
Поиск не работает. Ищет фразу целиком с учетом регистра.
Нужен поиск именно по ключевым словам, а не по целой фразе.

upd. Работает, но все равно с учетом региста.
Как-то можно это исправить?

upd.2. разобрался с регистром.
Помогла фраза вверху модуля "Option Compare Text"
Изменено: Gipsy14 - 17.08.2022 13:18:42
[VBA] Find. Поиск различных значений в одной ячейке (или). Ошибка Select Case, Возможно ли задать несколько ключевых слов для поиска?
 
Цитата
Jack Famous написал:
Gipsy14, здравствуйте
Цитата
Gipsy14: Ячейка может содержать разные ключевые слова (не фразы). Возможно ли искать несколько ключевых слов одновременно
Код        
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17      Sub   t()    Dim   rng   As   Range, cl   As   Range    Dim   x, aWords, tx$       Set   rng = Range(  "A1:B2"  )    aWords = Array(  "слово1"  ,   "слово2"  ,   "слово3"  ,   "слово4"  )       For   Each   cl   In   rng.Cells          tx = cl.Value          For   Each   x   In   aWords              If   tx   Like   "*"   & x &   "*"   Then                              ' в ячейке cl есть подстрока/фраза/слово x: пишем код, что делать в этом случае                  Exit   For      ' выходим из цикла проверки, т.к. уже нашли              End   If          Next   x    Next   cl    End   Sub   
 

Благодарю!
Есть вариант избежать цикла for? Боюсь запутаться, т.к. в полной процедуре уже есть цикл for each внутри которого будет еще несколько циклов for each. Сколько циклов в цикле допускает VBA?
[VBA] Find. Поиск различных значений в одной ячейке (или). Ошибка Select Case, Возможно ли задать несколько ключевых слов для поиска?
 
Всем доброго дня!

Ячейка может содержать разные ключевые слова (не фразы). В зависимости от этого данные переносятся в ту или иную ячейку другой таблицы.
Возможно ли при помощи функции Find (или другого способа) искать несколько ключевых слов одновременно (в фармате ИЛИ).
В первом случае происходит поиск в ячейке слова "списание", нужно чтобы было "списание или выдача или наличные".

Код
Set keyWord = Range(Cells(y, 3), Cells(x, 3))
               keyWordCash = keyWord.Find("списание", , xlValues, xlPart).Value


Если в ячейке встречается одно из этих слов, то происходит:
Код
 Select Case keyWord
                    Case Is = keyWordCash
                        Range("L2") = Range("F12")]

Код полностью:

Код
Dim keyWord As Range
Dim keyWordCash As Variant ' ключевые слова "наличные"
Dim keyWordTopOn As Range 'ключевые слова "пополнение счета", приходная операция

  x = 12
  y = 12

              
              Set keyWord = Range(Cells(y, 3), Cells(x, 3))
               keyWordCash = keyWord.Find("списание", , xlValues, xlPart).Value
              Set keyWordTopOn = keyWord.Find("пополнение", , xlValues, xlPart)
'              MsgBox keyWordCash
              
              
              Select Case keyWord
                    'снятие наличных
                    Case Is = keyWordCash
                        Range("L2") = Range("F12")
                        
                    Case Is = keyWordTopOn
                        Range("K2") = Range("F12")
                    
              End Select


Попутный вопрос.
Select case работает "сверху вниз". При выполнении первого "если" остальные пропускаются. При невыполнении первого "если" программа переходит ко второму "если". У меня же выдает ошибку: В ячейке отсутствует ключевое слово "снятие", а VBA не дает "перепрыгнуть" первый первый Case "keyWordCash" и перейти ко второму "keyWordTopOn".  Как с этим бороться? Скрины и файл с кодом прилагаю. Спасибо!
VBA. Автоматическое изменение имени рабочего файла.
 
Цитата
МатросНаЗебре написал:
SaveAs newNameKill oldName
Это нужно делать в отдельном модуле или свойствах "ЭтойКниги"?
VBA. Автоматическое изменение имени рабочего файла.
 
Всем доброго дня!
Появилась необходимость автоматического изменения (присвоения) имени рабочей книги (файла) перед закрытием, сохранением и т.д.

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

Пожалуйста, направьте в нужную сторону.
Действия на скринах не помогли.

Спасибо!

Файлы удалены - превышение допустимого размера вложения. Для такого вопроса не нужен объем более 400 КБ, Создайте простой пример [МОДЕРАТОР]
Подсчет суммы за предыдущий месяц
 
Всем спасибо!
Включил голову и разобрался.
Результат в файле
Подсчет суммы за предыдущий месяц
 
Всем доброго дня!
Выручайте, сломал голову...
Необходимо в графе Н отображать сумму начислений (графа D) за месяц, предыдущий значению в графе Е, но только в том случае, если в графе Е стоит дата. Далее, нарастающим итогом.
Если в графе Е стоит прочерк, то будет простая формула вычитания. Количество строк в периоде может быть любым, но период начинается и заканчивается началом и концом календарного месяца.
В общем, основная проблема - распознать начисления в предыдущем месяце.
Благодарю за помощь!
Автоматический перенос данных по временным интервалам, выбор нужного значения исходя из временного периода
 
Цитата
arty_om написал:
=ЕСЛИ(И(A9>=$E$9;B9 =$E$10;B9<=F10);$G$10;$G$11))
Благодарю!
Но функция "Если "в данном случае не подходит, т.к. эталонных значений (периодов) будет более 100
Автоматический перенос данных по временным интервалам, выбор нужного значения исходя из временного периода
 
Цитата
arty_om написал:
=ЕСЛИ(И(A9-E9>=0;B9-F9>=0);G9;0)
Благодарю, но если тут не поможет, т.к. периодов начисления может быть больше, чем эталонных
Автоматический перенос данных по временным интервалам, выбор нужного значения исходя из временного периода
 
Цитата
a.i.mershik написал:
ну может вам просто нужен впр или индекс+поискпоз...
Подскажете, как делать?
Автоматический перенос данных по временным интервалам, выбор нужного значения исходя из временного периода
 
Всем доброго дня!
В таблице 2 указаны эталонные значения: применения определенной ставки в определенный интервал.
Задача: необходимо автоматически определять нужную ставку в таблице 1 (столбец "С") исходя из временного интервала в столбцах А и В таблицы 1.
Подойдет как функция, так и простой макрос.
Благодарю!
Выборочный перенос данных по 2ум условиям, Выбор нужных значений из массива
 
Добрый день!
Пожалуйста помогите!
Из столбца J таблицы 1 автоматически переносятся данные (при условии, что значение >0) в столбец С таблицы 2.
Необходим перенос дат из таблицы 1 (столбца G или H) в таблицу 2 (в столбец b) по следующим условиям:
1. Значение в столбце J таблицы 1 > 0. (J12, J13). Это условие обязательно для соблюдения.
2. =ЕСЛИ(I13>0;H13;B13), т.е. если при этом значение в столбце I строкой ниже (I13) значение >0, то дату берем из столбца H (ячейка H14)....если значение в I <= (не больше) 0, то значение берем из столбца G (строка на 1 ниже суммы из J) - ячейка G13.
Даты должны переноситься именно по 2ум условиям.

В таблице 2 красным выделены ячейки с формулой массива, но они переносят только даты из столбца G.

Благодарю за помощь!
Горизонтальное перемещение ячейки в определенную графу. Макрос
 
Благодарю!
Вопрос задача решена :)
Горизонтальное перемещение ячейки в определенную графу. Макрос
 
Всем доброго дня!
Пожалуйста, помогите решить задачу.
Есть макрос, который добавляет пустую строку, переносит ячейку и протягивает формулу.
Сам макрос:

Код
Sub Добавлление_строк_протяжка()
'
' Добавлление_строк_протяжка Макрос
' Добавляет строку, протягивает ячейку в графе 9
'
' Сочетание клавиш: Ctrl+ь
'
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(-1, 9).Range("A1").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:A3"), Type:= _
xlFillDefault
ActiveCell.Range("A1:A3").Select
End Sub


Данный макрос переносит ячейку на 1 строку вверх и на 9 вправо.
Необходимо, чтобы ячейка переносилась на 1 строку вверх и строго в графу J.
Изначально выделенная ячейка может быть любой.

Пожалуйста, подскажите, что нужно изменить?
Благодарю!
Изменено: Gipsy14 - 31.08.2017 15:24:59
Автоматическое добавление заданного количества строк. Макрос
 
Добрый день!
Очень нужна ваша помощь!
Необходимо сформировать автоматическое добавление строк в таблицу.
Во вкладке "данные" в поле "срок кредита" указывается значение (в данном случае 27).
Необходимо, чтобы в выделенный диапазон во вкладке "Расчет" добавлялось строк 25 строк (27-2): строки должны добавляться начиная с 13ой. Нижняя строка должна быть нетронута. Формулы во всех ячейках должны соответствовать формулам из строки 12 (то есть автоматически протягиваться).

Благодарю за помощь!
Изменено: Gipsy14 - 19.06.2017 17:48:07
Выборочный перенос данных из одного диапазона в другой.
 
Больше не буду цитировать.
По задаче: получилось сделать автоматическое подтягивание начала периода просрочки.
Конец периода не получается, т.к. там больше условий
Выборочный перенос данных из одного диапазона в другой.
 
Конечный период указан, т.к. 20.06. должен быть платеж на сумму 67200, но т.к. платежа не было, то 36000+67200=103200 (ячейка D39)
в 37ой строке дата начала 22.04.16, дата окончания 28.04.16
Выборочный перенос данных из одного диапазона в другой.
 
Цитата
Bema написал:
Как выделить? Залить цветом? По какой логике?
Выделить Отобразить интервалы, как отмечено желтым в табл. 3.
Только даты должны подтягиваться автоматом, и только те, которые попадают в период просрочки (т.е. графа G в табл. 1>0)
Для отображения даты, закрывающей период должны быть соблюдены условия: С36=ЕСЛИ(И(E11>0;G10>0);D11;C11)
Для отображения даты начала периода должно быть соблюдено условие: В36=ЕСЛИ(И(G10>0;E10=0);C10+1;D10+1)
Изменено: Gipsy14 - 24.04.2017 16:11:06
Выборочный перенос данных из одного диапазона в другой.
 
Снова прошу помощи:
Можно ли проделать аналогичную операцию с датами, чтобы в табл. 3 выделить интервалы просрочки?
Благодарю!  
Выборочный перенос данных из одного диапазона в другой.
 
Благодарность и низкий поклон от меня! :)  
Выборочный перенос данных из одного диапазона в другой.
 
Благодарю!
В данном файле работает.
При копировании в нужный не пашет (#ЗНАЧ!)
=ИНДЕКС($G$6:$G$29;НАИМЕНЬШИЙ(ЕСЛИ($G$6:$G$29<>0;СТРОКА($G$6:$G$29)-5);СТРОКА(1:1)))
Подскажите, что значит -5 в формуле?
Если ее удаляю и снова вписываю в формулу, то и в учебной таблице появляется знач.
Как с этим бороться?
Выборочный перенос данных из одного диапазона в другой.
 
Добрый день, сенсеи Экселя!
Часто приходится переносить данные из одной таблицы в другую (в рамках одного листа).
Данные прописаны в столбцах. Я делаю ссылку на ячейку из "первичного" столбца и протягиваю за нижний правый угол.
Но проблема в том, что мне не нужны значения, равные нулю.
Приходится удалять строки (которых в таблице может быть до 500).
Подскажите, как при помощи формулы или простого макроса перенести только те данные, которые соответствуют условию (х>0).

Благодарю!

пример во вложении: первичные данные желтые, новые - голубые. Формат ячеек сохранен.
Страницы: 1
Наверх