Нужна помощь в решении следующей проблемы. Необходимо создать автоматический счетчик, чтобы он вставлялся при определённом условии, например написании "вх.", то есть человек в ячейке начинает писать вх. и Эксель автоматически вставил, например, вх. 123, в следующей ячейке опять начинают писать вх. и он заменил бы или добавил вх. 124. Как сделать я представляю, но как это написать в эксель - не знаю. Нужна переменная, которая хранила бы последнюю цифру счетчика и слежка за сочетаниями клавиш (или что то другое... даже и не знаю, например менять сочетание @count) и при определении этого сочетания менять на цифру счетчика+1.
Нужна помощь в решении следующей проблемы. Необходимо создать автоматический счетчик, чтобы он вставлялся при определённом условии, например написании "вх.", то есть человек в ячейке начинает писать вх. и Эксель автоматически вставил, например, вх. 123, в следующей ячейке опять начинают писать вх. и он заменил бы или добавил вх. 124. Как сделать я представляю, но как это написать в эксель - не знаю. Нужна переменная, которая хранила бы последнюю цифру счетчика и слежка за сочетаниями клавиш (или что то другое... даже и не знаю, например менять сочетание @count) и при определении этого сочетания менять на цифру счетчика+1.misterleks
Приложил пример, бухгалтера делают списки документов и у них реестр счетов и при написании они каждый раз ищут какой был последний входящий, он мог быть в любой ячейке, причем не по порядку, да и файл огромный, искать по нему очень сложно, так как разница в ячейках может достигать до 50 ячеек. Людям будет сказано, чтобы включился счетчик, пишите определённое словосочетание. Это решаемо. Главное то автоматический счетчик, чтобы не искать последний номер. Да и проблема ещё в том, что и столбцы бывают разные, в примере у меня в одном столбце, но у них в разных бывает. Счетчик всегда последовательный +1, никаких скачков не бывает.
Приложил пример, бухгалтера делают списки документов и у них реестр счетов и при написании они каждый раз ищут какой был последний входящий, он мог быть в любой ячейке, причем не по порядку, да и файл огромный, искать по нему очень сложно, так как разница в ячейках может достигать до 50 ячеек. Людям будет сказано, чтобы включился счетчик, пишите определённое словосочетание. Это решаемо. Главное то автоматический счетчик, чтобы не искать последний номер. Да и проблема ещё в том, что и столбцы бывают разные, в примере у меня в одном столбце, но у них в разных бывает. Счетчик всегда последовательный +1, никаких скачков не бывает.misterleks
У них это в тексте идет, вот в чем проблема. Например: Работы исполнены по (вх. 224 от 17.07.2020) и это вх. должно замениться счетчиком, чтобы не искать последний входящий.
У них это в тексте идет, вот в чем проблема. Например: Работы исполнены по (вх. 224 от 17.07.2020) и это вх. должно замениться счетчиком, чтобы не искать последний входящий.misterleks
я бы ЮзерФорму нарисовал, вызываемую по выделению пустой ячейки в нужном диапазоне, в текстбоксе отслеживал бы 3 правых символа или 4 со скобкой, далее Application.Count +1 Application.CountIf +1
я бы ЮзерФорму нарисовал, вызываемую по выделению пустой ячейки в нужном диапазоне, в текстбоксе отслеживал бы 3 правых символа или 4 со скобкой, далее Application.Count +1 Application.CountIf +1Nic70y
ЮMoney 41001841029809
Сообщение отредактировал Nic70y - Пятница, 17.07.2020, 10:32
Да, скрыть ячейку можно в любом месте. Проблема только в том, что у них уже есть эта громадная таблица и форму её менять нельзя. Надо внедрить это. Если бы таблицы не было, я бы создал и сказал как заполнять по ячейкам, но они ведут её с начала года и вопрос только сейчас встал такой.
Да, скрыть ячейку можно в любом месте. Проблема только в том, что у них уже есть эта громадная таблица и форму её менять нельзя. Надо внедрить это. Если бы таблицы не было, я бы создал и сказал как заполнять по ячейкам, но они ведут её с начала года и вопрос только сейчас встал такой.misterleks
не понял вопроса, но все можно. АпДэйт сразу все писать в текстбокс юзерформы. АпДэйт чет на работе затишье, аж скучно стало, держите: Модуль листа: [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub 'при выделении более 1й ячейки - выход из макроса u_1 = Cells(Rows.Count, "a").End(xlUp).Row 'последняя заполненная строка столбца A u_2 = Target.Row 'строка выбранной ячейки u_3 = Target.Column 'столбец выбранной ячейки u_4 = Target.Value 'значение (содержание) If u_2 <= u_1 And u_3 = 5 And u_4 = "" Then UserForm1.Show End Sub
[/vba] Модуль Юзерформы [vba]
Код
Private Sub TextBox1_Change() u_1 = TextBox1.Value u_2 = Right(u_1, 3) If u_2 = "вх." Then u_3 = Cells(Rows.Count, "a").End(xlUp).Row u_4 = Application.CountIf(Range("e2:e" & u_3), "*вх.*") + 1 TextBox1 = u_1 & " " & u_4 End If End Sub Private Sub CommandButton1_Click() Selection = TextBox1.Value Unload UserForm1 End Sub
[/vba]ну я так вижу)) АпДэйт при желании можно и "от сегодня" вставить
не понял вопроса, но все можно. АпДэйт сразу все писать в текстбокс юзерформы. АпДэйт чет на работе затишье, аж скучно стало, держите: Модуль листа: [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub 'при выделении более 1й ячейки - выход из макроса u_1 = Cells(Rows.Count, "a").End(xlUp).Row 'последняя заполненная строка столбца A u_2 = Target.Row 'строка выбранной ячейки u_3 = Target.Column 'столбец выбранной ячейки u_4 = Target.Value 'значение (содержание) If u_2 <= u_1 And u_3 = 5 And u_4 = "" Then UserForm1.Show End Sub
[/vba] Модуль Юзерформы [vba]
Код
Private Sub TextBox1_Change() u_1 = TextBox1.Value u_2 = Right(u_1, 3) If u_2 = "вх." Then u_3 = Cells(Rows.Count, "a").End(xlUp).Row u_4 = Application.CountIf(Range("e2:e" & u_3), "*вх.*") + 1 TextBox1 = u_1 & " " & u_4 End If End Sub Private Sub CommandButton1_Click() Selection = TextBox1.Value Unload UserForm1 End Sub
[/vba]ну я так вижу)) АпДэйт при желании можно и "от сегодня" вставитьNic70y
Я имел в виду, что в примере, который скинули Вы, изменения невозможны, к сожалению. (это я к Вашему первому сообщению писал) Если всё возможно, то можете подсказать как это сделать?
Upd. Спасибо.
Я имел в виду, что в примере, который скинули Вы, изменения невозможны, к сожалению. (это я к Вашему первому сообщению писал) Если всё возможно, то можете подсказать как это сделать?
Nic70y, мы сейчас запутаемся )) Извините меня, просто отвлекают, начинаю одно писать, потом продолжаю, а в это время Вы уже сделали запись. Я про первую запись писал про изменения - Вы скинули 19 файл. В 18 файле реально дату вставить?
Nic70y, мы сейчас запутаемся )) Извините меня, просто отвлекают, начинаю одно писать, потом продолжаю, а в это время Вы уже сделали запись. Я про первую запись писал про изменения - Вы скинули 19 файл. В 18 файле реально дату вставить?misterleks
Nic70y, очень классно! А подскажите ещё такую вещь, где задать начальное значение? И как распространить на определённые столбцы, то есть у них ЮзерФорма должна отрабатывать через 3 столбца Upd. Обнаружили, что если в одной юзерформе писать несколько раз вх., то он проставляет один номер. Можно ли как то сделать, чтобы проставлялся следующий? Или счетчик запоминает только по нажатию Энтер?
Nic70y, очень классно! А подскажите ещё такую вещь, где задать начальное значение? И как распространить на определённые столбцы, то есть у них ЮзерФорма должна отрабатывать через 3 столбца Upd. Обнаружили, что если в одной юзерформе писать несколько раз вх., то он проставляет один номер. Можно ли как то сделать, чтобы проставлялся следующий? Или счетчик запоминает только по нажатию Энтер?misterleks
Сообщение отредактировал misterleks - Пятница, 17.07.2020, 14:07