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

Страницы: 1 2 3 4 5 6 След.
Объединение ячеек по условию, Объединение ячеек по условию с помощью макроса
 
Sanim, Формулами указать первый и последний день месяца, проблемм нет. Проставить везде 31, а в зависимости от месяца прописывать фактически сколько дней можно, но это только шапка айсберга. Из 3 строки собираются данные по дням и окрашиваются ячейки графика. Выложил часть, с которой у меня сложности. Всё остальное реализовано.

Приходится выкручиваться с постоянным объединением. Если бы ещё не было высокостного года... а так много условий. Вот и подумал, что можно было бы объединить ячейки макросом по условию.
Создать кнопку и в зависимости от месяца начала и продолжительности графика, объединить ячейки в 1 и 2 строках. В интернете нашёл только такой вариант: https://exceltable.com/vba-macros/kak-obedinit-yacheyki-makros, но к решению  моей задачи применить не смог.
Объединение ячеек по условию, Объединение ячеек по условию с помощью макроса
 
Всем доброго времени суток!

Сталкнулся со следующей задачей, как реализовать, не знаю. Может кто подскажет, буду крайне благодарен.

Есть строка, в которой указывается дата начала, и далее все ячейки +1 к данной дате. Получается период начала и окончания. (это строка 3)
В строке 1, объединённые ячейки групируют месяц, и формулой я подгружаю из строки 3, имя месяца и год
В строке 2, в объединённых ячейках указываю периоды месяца: 1-10, 11-20, 21 - 30(31, 28, 29)
В зависимости от того, какой месяц, мне приходится в ручную переобъединять ячейки с месяцем и датами.

Вопрос, можно ли, в зависимости от месяца, по условию макросом объединять ячейки в 1 строке (1-30, 1-31, 1-28 (29)) и во второй строке аналогично?
Файл прилагаю.
Изменено: Sheriff - 08.04.2024 20:25:50
Имя Умной таблицы в ячейке
 
ddmax, а можно поинтересоваться, как указали имя умной таблицы с помощью формулы?

А по вашему вопросу, я через фунццию ДВССЫЛ() ссылку прописываю. Если "Умная таблица" из одного столбца, то просто указываю ссылку на ячейку где её имя, если несколько, то комбинирую.

например имя Умной таблицы - QWA и у меё 3 столбца: Столбец_1, Столбец_2 и Столбец_3.
Мне нужно найти значение в Столбец_3 на основании данных из Столбец_1.
В ячейке скажем A1 указано имя Умной таблицы. Формула следующая:

Код
=ВПР(Искомое_значение;ДВССЫЛ(A1&"[Столбец_1]");3;)


И всё будет работать. Но лучше пользоваться через ИНДЕКС, больше возможностей и гибче:

Код
=ИНДЕКС(ДВССЫЛ(A1);ПОИСКПОЗ(Искомое_значение;ДВССЫЛ(A1&"[Столбец_1]"););3)
Изменено: Sheriff - 07.02.2024 17:43:13
Разбить строку на 2 части по количеству символов, запустить цикл по разделению длинной строки на части
 
New, спасибо!!!!!
Разбить строку на 2 части по количеству символов, запустить цикл по разделению длинной строки на части
 
Jack Famous, Да не нужны мне ячейки, сам с ними справлюсь.
Не получается переделать, как только не пробовал.
И так:
Код
Sub test()
Dim x, tx$
    tx = UserForm1.TextBox1.Value
    x = SplitBy58(tx): If Not IsArray(x) Then UserForm1.TextBox2.Value x = vbInformation: Exit Sub
    UserForm1.TextBox2.Value x(1) = vbInformation: UserForm1.TextBox3.Value x(2) = vbInformation
End Sub
И так:
Код
Sub test()
Dim x, tx$
    tx = UserForm1.TextBox1.Value
    x = SplitBy58(tx): If Not IsArray(x) Then UserForm1.TextBox2.Value = x, vbInformation: Exit Sub
    UserForm1.TextBox2.Value = x(1), vbInformation: UserForm1.TextBox3.Value = x(2), vbInformation
End Sub
И так:
Код
Sub test()
Dim x, tx$
    tx = UserForm1.TextBox1.Value
    x = SplitBy58(tx): If Not IsArray(x) Then UserForm1.TextBox2.Value = vbInformation: Exit Sub
    UserForm1.TextBox2.Value = vbInformation
    UserForm1.TextBox3.Value = vbInformation
End Sub
Какие ещё есть варианты?
Разбить строку на 2 части по количеству символов, запустить цикл по разделению длинной строки на части
 
Msi2102, Я вас услышал. Но как из textbox перенести в ячейку, я знаю, а как при этом обработать запрос и разделить в разные ячейки таблицы, для меня тёмный лес.  
Разбить строку на 2 части по количеству символов, запустить цикл по разделению длинной строки на части
 
Msi2102, Да я так и собирался. Но что бы проще объяснить что мне нужно, описал суть проблемы, что нужно и как разбить.
Но как это сделать с вашими примерами, я так и не понял. Пока понимаю VBA на примитивном уровне.

Jack Famous, отлично написан макрос! в окнах выскакивает как мне нужно! И я вместо MsgBox прописываю UserForm1.TextBox2.Value - И у меня ошибка.
Понимаю, что ни так как то нужно. А как правильно, не знаю.

Всем спасибо.  
Разбить строку на 2 части по количеству символов, запустить цикл по разделению длинной строки на части
 
Jack Famous, То что нужно, работает отлично, но это окна, а как с textbox связать?

Подскажите, файл во вложении.
Разбить строку на 2 части по количеству символов, запустить цикл по разделению длинной строки на части
 
Msi2102, нет, там не ручной ввод. Я ComboBox-ами выбираю, город, улицу, объект.
все данные соединяются  в textbox1. И должны по нажатию кнопки заполнить форму в excel. Но длина строки в форме вмещает не более 58 символов.
вот и нужно сделать перенос на другую строку.
Разбить строку на 2 части по количеству символов, запустить цикл по разделению длинной строки на части
 
Всем доброго времени!

Есть три textBox. В один, скажем textbox1 записывается адрес. Если адрес более определённого количества символов (более 58), то нужно разделить текст на 2 части. До 58 символов в textbox2 и весь остаток в textbox3.

Но есть одна заковырка, если 59 символ является продолжением не законченного слова, то нужно найти начало этого слова, и перенести его в textbox3 целиком, а в textbox2 записать соответственно не 58 символов, а меньше, до начало слова.

Пример:
г. Санкт-Петербург, ул. Бухарестская, 27 корп.12, (м-н Старая Деревня)          'текст который в textbox1. Всего 71 символ
г. Санкт-Петербург, ул. Бухарестская, 27 корп.12, (м-н                                        'текст который должен попасть в textbox2 - 55 символов
Старая Деревня)                                                                                                     'остальной текст в textbox3

Мои мысли, проверить 59 символ, если пробел, то всё ОК. 58 символов в textbox2, остальное в textbox3. Если нет, то проверяем 57 символ, потом 56, 55, 54 и т.д. пока не найдём пробел. Как только пробел найден, то осуществляем деление на 2 части.
Но как это написать кодом? Подскажите пожалуйста.
Изменено: Юрий М - 30.08.2022 16:02:14
=ВПР ошибка #Н/Д, В чём может быть причина? =ВПР ошибка #Н/Д
 
Руслан Колесниченко, ВПР не работает слева на право. Тебе нужно поменять столбцы местами или формулу другую применить, не ВПР а ИНДЕКС:

=ИНДЕКС(A2:B5;ПОИСКПОЗ(G5;B2:B5;);1)

Заполнение TextBox, Значение в TextBox из таблицы в зависимости от значения в ComboBox
 
Нашёл решение другим способом обработать запрос. Так правда и не понял, почему мой способ не работает..., ну да ладно.

Вот кусок кода, вдруг кому не будь пригодится:
Код
   Set Cell_k = ShopListObj.ListColumns.Item(1).Range.Find(FormShop.CBoxGP.Value, LookAt:=xlWhole)
    If Not Cell_k Is Nothing Then    'Если компания найдена
        FormShop.tb_INN.Value = Cell_k.Cells(1, 2)
    End If
Тему можно считать закрытой.
Заполнение TextBox, Значение в TextBox из таблицы в зависимости от значения в ComboBox
 
Всем доброго!
Есть умная таблица. В ней несколько столбцов. В первый я ввожу наименование организации. Во второй её ИНН
Если такая компания уже есть, то ИНН должен автоматом заполнить TextBox. Если нет, то я в ручном вводе вношу и компанию и ИНН.
Прописал в Коде к форме, по клику по TextBox, вызов функции из модуля.
Вот код в модуле:
Код
Sub AddINN() 'Заполняем textbox значением ИНН в зависимости от выбора компании
    Set ShopSheet = ThisWorkbook.Worksheets("Покупатель")
    Set ShopListObj = ShopSheet.ListObjects("UTBShop")
    
    If IfNa(Match(FormShop.CBoxGP, ShopListObj.ListColumns(1), 0), 0) > 0 Then
        FormShop.tb_INN = Application.VLookup(FormShop.CBoxGP, ShopListObj.Range, 2, 0)
    End If
End Sub
Если убрать "ЕСЛИ", то из списка в ComboBox я выбираю компанию, появляется в TextBox её ИНН. Но если компании в списке нет, то у меня выскакивает ошибка. Прописал условие If, вообще всё перестало работать.
Ногами сильно не бейте, просто укажите, где ошибка? Я только учусь.
Изменено: Sheriff - 06.08.2022 22:08:31
Значение textbox по формуле
 
RAN, СПАСИБО!!!!
Значение textbox по формуле
 
Пробовал в модуле прописать, тоже ни чего не выходит:
Код
Sub AddINN() 
    Set ShopSheet = ThisWorkbook.Worksheets("Покупатель")
    Set ShopListObj = ShopSheet.ListObjects("UTBShop")
    FormShop.tb_INN = Application.VLookup(FormShop.CBoxGP, ShopListObj, 2, 0)
End Sub
Значение textbox по формуле
 
Пробую применить у себя, но как то не выходит каменный цветок.
У меня есть combobox: CBoxGP
В него я из выпадающего списка ввожу название компании, если она есть. Если нет, то заполняю вручную
А в textbox (tb_INN) я хочу, что бы автоматом прописывался ИНН компании, если естественно такая компания присутствует в списке. Если нет, то ввожу соответственно вручную.
Данные беру из умной таблицы: UTBShop на листе "Покупатель"

Вот мой код:
Код
Private Sub CBoxGP_Change()
    tb_INN = Application.VLookup(CBoxGP, ListObjects("UTBShop"), 2, 0)
End Sub

Что делаю нет?

Извините, за глупые вопросы, но VBA только постигаю.

Формула ЕСЛИ с множеством условий, формула ЕСЛИ, расписала условия по сменным графикам в зависимости от времени явки/ухода, но формула не срабатывает.
 
Цитата
Мне необходимо, чтобы подтягивал номер смены в зависимости от явки. Например 1 смена это явка 00 ночи до 7 утра, далее 5ДН явка с 6,8 часов до 8 часов, далее 2* смена явка с 12,8 часов до 14,0, еще одна 2 смена явка с 18 до 22.  И если время с 14 до 18 , то чтобы выдал ОШИБКУ/ЛОЖЬ, так как это или опоздание или сверхурочка. Время перевела в число.

Во первых есть несколько конфликтов в данном описании:
1. Числовые значения от 6,8 до 7 - по вашим данным дублируются. Т.е значение к примеру 6,9 актуально и для Смены 1, и для смены 5ДН. Я в формуле внёс диапазон с 0 до 6,8 и следующий с 6,8 до 8 - так данные не пересекаются.

2. Есть данные, которые не вошли не в один из намеченных вами диапазоном, например такие как: 21,58 или 20,57.... У себя в формуле я их пометил как "Недопустимое значение"

В остальном работает всё исправно. Проверяйте.
Изменено: Sheriff - 18.07.2022 07:23:12
Нумерация без повторов, Нумерация строк в умной таблице без повторов
 
Ігор Гончаренко, да в textbox номер будет следующий, но если ввели данные не корректно, и нужно изменить строку. То предполагается, что введя уже существующий номер, программа предложит заменить ранее введённые данные. Т.е. должна быть ещё проверка при вводе, на уникальность номеров.
В самом начале я описал подробно, что должно получится..., но как это сделать мне не доходит. Я к сожалению только начал изучать VBA.
Поиск и консолидация, Поиск и консолидация
 
Ну теперь всё понятно. Забирай
Поиск и консолидация, Поиск и консолидация
 
Может я что то не догоняю, но что нужно сделать, из описания, даже просмотрев файл, я к сожалению так и не понял...

Можно пример сделать, как должно получиться, для наглядности?
Формула ЕСЛИ с множеством условий, формула ЕСЛИ, расписала условия по сменным графикам в зависимости от времени явки/ухода, но формула не срабатывает.
 
Ирина Медведева, у вас в формуле значение сразу и больше 0 и больше или равно 7... Это как? Может быть оно должно быть в пределах между 0 и 7?

Пропишите просто: от 0 до 7(включительно) - 1
От 7 до 14 (включительно) - 2
если 8 - 5ДН
Если больше 22 - 2*

Примерно так, можете прописать?
Изменено: Sheriff - 17.07.2022 20:36:39
Формула ЕСЛИ с множеством условий, формула ЕСЛИ, расписала условия по сменным графикам в зависимости от времени явки/ухода, но формула не срабатывает.
 
Ирина Медведева, и теперь по русски, без формул, при каких условиях что должно проставляться? А то там так на мудрено, что я голову сломал разбираться. При каких параметрах должны быть значения: 1, 2, 2* и 5ДН
Изменено: Sheriff - 17.07.2022 20:31:30
Связанный впадающий список в каждой ячейке столбца, В зависимости от выбранного поставщика и типа товара выпадать должен соответствующий список с артикулами. Особенность в том, что выпадающий список должен быть в каждой ячейке столбца, а не только в одной.
 
Вот тут есть решения данной задачи: https://www.planetaexcel.ru/techniques/1/38/
Нумерация без повторов, Нумерация строк в умной таблице без повторов
 
Юрий М,  приложенный файл, это часть большой программы. Запускается макрос не с активного листа.
формулы, их много будет, хочу прописывать не в коде Формы или листе, а в Module1. Вызываться формулы будут тоже по разным событиям.
Некоторые при загрузке формы, другие после ввода данных в Combobox и пр.

Поэтому мне мой код нужно исправить....
Изменено: Sheriff - 17.07.2022 19:46:36
Нумерация без повторов, Нумерация строк в умной таблице без повторов
 
Юрий М, А в модуле как то можно прописать? а в коде формы вызвать по событию?
Формула ЕСЛИ с множеством условий, формула ЕСЛИ, расписала условия по сменным графикам в зависимости от времени явки/ухода, но формула не срабатывает.
 
Цитата
Файл прилагаю
Где файл?
Ошибка в формуле, проще исправить в файле, чем объяснять
Изменено: Sheriff - 18.07.2022 07:22:49
Выделение ячейки определенным цветом в зависимости от текущей даты
 
Забирай
Нумерация без повторов, Нумерация строк в умной таблице без повторов
 
Что я делаю не так?
Код
Option Explicit
Dim ShopSheet As Worksheet 'Лист Заказ
Dim ShopListObj As ListObject

Sub NOrder()
    Set ShopSheet = ThisWorkbook.Worksheets("Заказ")
    Set ShopListObj = ZakSheet.ListObjects("utb_Company")
    
    FormZak.tb_NZak.Value = Max(ShopListObj.Range(1)) + 1
    
End Sub
Нумерация без повторов, Нумерация строк в умной таблице без повторов
 
Ігор Гончаренко, Формулой в таблицу, я тоже так прописываю, но как это в textbox прописать?  
Нумерация без повторов, Нумерация строк в умной таблице без повторов
 
Всем форумчанам доброго времени суток!

Задача такая, есть форма для заполнения заказа (часть кода во вложении). При её вызове, в TextBox (№ Заказа) должен по умолчанию отображаться следующий номер из столбца (№ Order) в умной таблице.
В таблице столбцы: № Order; Data; Company и т.д.
Если заполнено к примеру 16 строк с различными данными, то при вызове формы, в TextBox (№ Заказа) по умолчанию стоит - 17...
Если же при нажатии на кнопку ввода данных в таблицу номер к примеру уже существует в таблице, то выскочить должно предупреждение типа: «Данный номер присутствует в базе, желаете его переписать?»
Соответственно если «ОК», то строка с этим номером переписывается, если «Cancel» то возврат к форме.

P.S. И у меня ошибка в работе макроса AddGp(), вроде всё правильно написал, но он ListObjects - не определяет... Не могу понять причину. Но это не особо важно, Но если кто укажет на ошибку, буду тоже крайне признателен.

Спасибо!!!
Страницы: 1 2 3 4 5 6 След.
Наверх