Страницы: 1
RSS
Автоматическое генерирование номера заявки при вводе данных UserForm
 
Добрый день всем! Здесь сидит много очень умных людей, много полезной информации здесь нахожу!
Столкнулась с такой проблемой!

Подскажите как сделать авто заполнение "Серия ГП №" при добавлении строчки в UserForm
Нужно что бы номер по порядку автоматически подставлялся в форме и записывался в строчку в соответствующий столбик Серия ГП №

И еще один момент как сделать выбор даты из календаря!

Буду очень признательна любой помощи!!!
Мир, дружба, жвачка!!!
 
Анастасия... Форма у вас красивая получилось...
Советы:
1. Заголовок формы лучше заменить. Сейчас у вас это UserForm4 (изменить можно в свойствах или так в модуле формы Me.Caption = "Добавление заявок")
2. Вот такие строки в коде желательно удалять - это вы записывали код макрорекордером и делали скроллинг колёсиком мышки по листу вверх-вниз. Они не нужны в коде
Код
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8

3. Объявление "Option Explicit" должно быть указано самой первой строкой в модуле

4. В коде лучше не использовать TextBox1, TextBox2, TextBox3 - вы не знаете что это такое (неосмысленные название контролов). Поменяйте название, например, на такое
TextBox1 замените название на TextBox_GPNomer
TextBox2 замените название на TextBox_Zakazchik
TextBox3 замените на TextBox_Address
и т.д

5. В коде с данными на листе лучше работать вот так
Код
    With Worksheets("Управление")
         'тут считываете и записываете данные на лист. Но обязательно нужно ставить точку перед адресом ячейки
         iLastRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1 'вот тут стоит точно перед Cells 
   End With

Ответ на ваш вопрос - я предлагаю такой

Код
Private Sub UserForm_Initialize()
    Dim iLastRow As Long
    Dim LastGPNumber As String, NewGPNumber As String
       
    With Worksheets("Управление")
        iLastRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
        LastGPNumber = .Cells(iLastRow - 2, 2) 'последний записанный номер Серии ГП
    End With
    
    NewGPNumber = CLng(Split(LastGPNumber, "-")(1)) + 1 'выдёргиваем цифру номера и прибавляем 1 к номеру
    NewGPNumber = Format(NewGPNumber, "01-00000") 'форматируем новый номер в нужном вам формате
    Me.TextBox1.Text = NewGPNumber 'подставляем новый номер в Форму

End Sub
Изменено: New - 15.09.2020 21:31:24
 
Спасибо большое, старалась)
Если есть возможность, подскажите пожалуйста!

Буду безмерно благодарна!
Знаний в кодировании exel не очень много, но есть)
Мир, дружба, жвачка!!!
 
Спасибо большое за подсказки!
;) Это конечно немного нагло будет с моей стороны, но Вы не могли бы мне файл мой скинуть с поправками!
Пожалуйста! :oops:  
Мир, дружба, жвачка!!!
 
См. файл
 
Спасибо огромное при огромное!!!!
Все работает!
Мир, дружба, жвачка!!!
Страницы: 1
Наверх