Hollib
@Hollib

Как сказать vba userform в excel, если данные не введены в строку возьми их из ячейки?

Всем привет
Есть у меня маленький макрос (Modules) по смещению данных из одной строки в другую, тупо говорят из строки 3 скинь данные в строку 4 но в нужном порядке.
Sub Смещение()
Range("A4").Value = CDate(Format(Range("A3").Value, "dd.mm.yyyy")) 'Время
Range("B4") = Range("C3") 
Range("C4") = Range("R3") 
Range("D4") = Range("S3") 
Range("E4") = Range("T3") 
Range("F4") = Range("U3")
Range("G4") = Range("W3") 
Range("H4") = Range("X3")
Range("I4") = Range("Y3") 
Range("J4") = Range("AL3")
Range("K4") = Range("AM3")
Range("L4") = Range("AN3")
Range("M4") = Range("AO3")
Range("N4") = Range("Z3") 
Range("O4") = Range("AA3") 
Range("P4") = Range("AB3")
Range("Q4") = Range("AC3") 
Range("R4") = Range("AE3") 
Range("S4") = Range("AF3")
End Sub

К этому коду решил сделать UserForm где при внесении денных заполняться строка 3
Private Sub CommandButton4_Click()
    Range("A3").Value = Me.TextBox1.Value
    Range("C3").Value = Me.TextBox2.Value
    Range("T3").Value = Me.TextBox3.Value
    Range("R3").Value = Me.TextBox4.Value
    Range("S3").Value = Me.TextBox5.Value
    Range("U3").Value = Me.TextBox6.Value
    Range("Y3").Value = Me.TextBox11.Value
    Range("W3").Value = Me.TextBox12.Value
    Range("X3").Value = Me.TextBox13.Value
    Range("Z3").Value = Me.TextBox14.Value
    Range("AA3").Value = Me.TextBox15.Value
    Range("AB3").Value = Me.TextBox16.Value
    Range("AC3").Value = Me.TextBox17.Value
    Range("AE3").Value = Me.TextBox18.Value
    Range("AF3").Value = Me.TextBox19.Value
    Range("AL3").Value = Me.TextBox9.Value
    Range("AM3").Value = Me.TextBox10.Value
    Range("AN3").Value = Me.TextBox7.Value
    Range("AO3").Value = Me.TextBox8.Value
    Range("E3").Value = "31.12.2022"
    
    Range("B3").Value = ComboBox1.Value
    Range("AH3").Value = ComboBox2.Value
End Sub


Проблема в том что если изначально вставить в строку 3 данные и запустить второй код, то есть UserForm тут он должен по хорошему запустить первый макрос с переносом данных, но он не перекинет данные в строку 4, а тупо заменит строку 3 пустыми ячейками.
Подскажите как сделать так что бы если данные небыли внесении в UserForm, то возьми данные из ячейки 3 и уже тогда перенеси их в 4 строку.
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
Hollib
@Hollib Автор вопроса
Смог решить проблему таким методом:
Данная функция срабатывает вторая при условии нажатии на кнопку. она записывает те данные в ячейку, которые вы вписали в userform TextBox1
Private Sub CommandButton4_Click()
  With UserForm1
    Range("A3").Value = Me.TextBox1.Value
  End With
End Sub

---------------------------------------------------------------------
Первым делом срабатывает эта функция, она читает данные в ячейках и вносит их в строку в строку ввода userform.
Private Sub UserForm_Initialize()
Dim adr, str
    str = ActiveCell.row
    adr = "A" & str
    TextBox1.Value = Range("A3").Value
End Sub


Изложил как сам понял, извините зеленый в этом деле.
Но свою проблему решил :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы