sboy, так оно и есть смотрите файл пожалуйста ((((( Ваш код из предыдущих тем сработал на ура и данные перенеслись начинаю применять этот код для заполнения [vba]
Код
Private Sub Butt_ok_Click() 'Данный код для записи данных в нужные нам ячейки в таблицу на листе "Заявка МТ-1 для печати" Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row If TextBox1.Value <> "" Then Cells(LastRow + 1, 1) = TextBox1.Value If TextBox3.Value <> "" Then Cells(LastRow + 1, 17) = TextBox3.Value If ComboBox1.Value <> "" Then Cells(LastRow + 1, 2) = ComboBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow + 1, 3) = ComboBox2.Value If ComboBox3.Value <> "" Then Cells(LastRow + 1, 4) = ComboBox3.Value If ComboBox4.Value <> "" Then Cells(LastRow + 1, 5) = ComboBox4.Value If TextBox2.Value <> "" Then Cells(LastRow + 1, 6) = TextBox2.Value If TextBox4.Value <> "" Then Cells(LastRow + 1, 8) = TextBox4.Value Unload Me End Sub
[/vba] то он вообще прописал данные в ячейку Q5 выделил желтым цветом
sboy, так оно и есть смотрите файл пожалуйста ((((( Ваш код из предыдущих тем сработал на ура и данные перенеслись начинаю применять этот код для заполнения [vba]
Код
Private Sub Butt_ok_Click() 'Данный код для записи данных в нужные нам ячейки в таблицу на листе "Заявка МТ-1 для печати" Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row If TextBox1.Value <> "" Then Cells(LastRow + 1, 1) = TextBox1.Value If TextBox3.Value <> "" Then Cells(LastRow + 1, 17) = TextBox3.Value If ComboBox1.Value <> "" Then Cells(LastRow + 1, 2) = ComboBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow + 1, 3) = ComboBox2.Value If ComboBox3.Value <> "" Then Cells(LastRow + 1, 4) = ComboBox3.Value If ComboBox4.Value <> "" Then Cells(LastRow + 1, 5) = ComboBox4.Value If TextBox2.Value <> "" Then Cells(LastRow + 1, 6) = TextBox2.Value If TextBox4.Value <> "" Then Cells(LastRow + 1, 8) = TextBox4.Value Unload Me End Sub
[/vba] то он вообще прописал данные в ячейку Q5 выделил желтым цветомlebensvoll
lebensvoll, а Вы понимаете, что делает данная строчка? [vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
[/vba] Можете расписать в своем следующем посте, что означает Rows.Count Cells(Rows.Count, 1) .End(xlUp) .Row ? Когда напишите, подумайте, чему будет равно LastRow для случая с пустой таблицей и для случая с заполненной 1-й строкой (в Вашем файле 6-я). Чтобы было нагляднее, снимите объединение ячеек шапки таблицы (потом вернете, когда макрос заработает).
И вот тогда, когда Вы все это проделаете, сразу станет понятно, что такое
lebensvoll, а Вы понимаете, что делает данная строчка? [vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
[/vba] Можете расписать в своем следующем посте, что означает Rows.Count Cells(Rows.Count, 1) .End(xlUp) .Row ? Когда напишите, подумайте, чему будет равно LastRow для случая с пустой таблицей и для случая с заполненной 1-й строкой (в Вашем файле 6-я). Чтобы было нагляднее, снимите объединение ячеек шапки таблицы (потом вернете, когда макрос заработает).
И вот тогда, когда Вы все это проделаете, сразу станет понятно, что такое
И понимаю что именно с этим кодом начинается (направление куда) должно записываться данные из UserForm2 также уже стало понятно что объединение это ЗЛО не только для сводных таблиц но также и для макросов и вообще в целом для экселя. Также я понял (возможно не верно но мою мысль подтвердили ) что скорее всего тут действительно нужно прописать не строки а
Цитата
Range=Диапазон
предложив свой вариант кода [vba]
Код
LastRow = Range("A4").CurrentRegion.Rows.Count
[/vba] и все бы ни чего и точно попал в таблицу куда ему и следует НО ПОСЛЕДУЮЩИЕ ДАННЫЕ БАЦ и вниз таблицы
Код со снятыми объединениями вписывает данные в 5 строку [img][/img] Тот же код с объединенными ячейками вписывает также в пятую но лишь дату потому как все другие столбцы данной строки объеденные (т.е. заполненные)
RAN, Manyasha, Я за это уже писал (((
Цитата
Последнюю Строку
Цитата
Last Row
Строк.Граф
Цитата
Rows.Count
Ячеек(Строк.Граф, 1)
Цитата
Cells(Rows.Count, 1)
Конец(xlUp)
Цитата
End(xlUp)
Строки
Цитата
Row
И понимаю что именно с этим кодом начинается (направление куда) должно записываться данные из UserForm2 также уже стало понятно что объединение это ЗЛО не только для сводных таблиц но также и для макросов и вообще в целом для экселя. Также я понял (возможно не верно но мою мысль подтвердили ) что скорее всего тут действительно нужно прописать не строки а
Цитата
Range=Диапазон
предложив свой вариант кода [vba]
Код
LastRow = Range("A4").CurrentRegion.Rows.Count
[/vba] и все бы ни чего и точно попал в таблицу куда ему и следует НО ПОСЛЕДУЮЩИЕ ДАННЫЕ БАЦ и вниз таблицы
Код со снятыми объединениями вписывает данные в 5 строку [img][/img] Тот же код с объединенными ячейками вписывает также в пятую но лишь дату потому как все другие столбцы данной строки объеденные (т.е. заполненные) lebensvoll
RAN, так он же срабатывает если на конце кода указать +1 [vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row+1
[/vba] Но он дополняет тогда пустую ячейку (((( Если использовать код от alex77755 [vba]
Код
LastRow = Range("A4").CurrentRegion.Rows.Count
[/vba] Где как раз таки идет слова за диапозон то он первую запись прописывает точно (при любом использовании "объединенная ли ячейка или же не объединенная" ) но последующую запись он прописывает под таблицей Как раз там где вы мне поясняли
Цитата
А в столбце 6 на листе последняя строка с данными 23. Под нее и добавляет.
Подскажите более понятней для моего понимания а не
Цитата
Если А меньше Б, значит А равно Б.
RAN, так он же срабатывает если на конце кода указать +1 [vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row+1
[/vba] Но он дополняет тогда пустую ячейку (((( Если использовать код от alex77755 [vba]
Код
LastRow = Range("A4").CurrentRegion.Rows.Count
[/vba] Где как раз таки идет слова за диапозон то он первую запись прописывает точно (при любом использовании "объединенная ли ячейка или же не объединенная" ) но последующую запись он прописывает под таблицей Как раз там где вы мне поясняли
Цитата
А в столбце 6 на листе последняя строка с данными 23. Под нее и добавляет.
Подскажите более понятней для моего понимания а не
в коде, где через строку записывает уберите +1 при присвоении значений
То он и вовсе прописывает все данные в шапку таблицы (((( Прошу меня извинить, может вам покажется это ХАМСТВОМ: НО, вы открываете файл когда пишите коды на форум!? Просто я уже это действие давно проделывал (((( и то же без результат но получается ((( я прекрасно понимаю что вы знаете что должно это действие сработать и помочь, но почему то у меня оно не идет именно так вот сами файл смотрите там я выделил желтым цветом ячейку. При применении данного кода только дата записалась ((((
sboy, да в том то и дело что если убрать
Цитата
в коде, где через строку записывает уберите +1 при присвоении значений
То он и вовсе прописывает все данные в шапку таблицы (((( Прошу меня извинить, может вам покажется это ХАМСТВОМ: НО, вы открываете файл когда пишите коды на форум!? Просто я уже это действие давно проделывал (((( и то же без результат но получается ((( я прекрасно понимаю что вы знаете что должно это действие сработать и помочь, но почему то у меня оно не идет именно так вот сами файл смотрите там я выделил желтым цветом ячейку. При применении данного кода только дата записалась ((((lebensvoll
sboy, RAN, Manyasha, вот так вот этот код срабатывает на ура!!! [vba]
Код
Private Sub Butt_ok_Click() 'Данный код для записи данных в нужные нам ячейки в таблицу на листе "Заявка МТ-1 для печати" Dim LastRow As Long LastRow = Range("A5").CurrentRegion.Rows.Count If TextBox1.Value <> "" Then Cells(LastRow + 1, 1) = TextBox1.Value If TextBox3.Value <> "" Then Cells(LastRow + 1, 17) = TextBox3.Value If ComboBox1.Value <> "" Then Cells(LastRow + 1, 2) = ComboBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow + 1, 3) = ComboBox2.Value If ComboBox3.Value <> "" Then Cells(LastRow + 1, 4) = ComboBox3.Value If ComboBox4.Value <> "" Then Cells(LastRow + 1, 5) = ComboBox4.Value If TextBox2.Value <> "" Then Cells(LastRow + 1, 6) = TextBox2.Value If TextBox4.Value <> "" Then Cells(LastRow + 1, 8) = TextBox4.Value Unload Me End Sub
[/vba]
sboy, RAN, Manyasha, вот так вот этот код срабатывает на ура!!! [vba]
Код
Private Sub Butt_ok_Click() 'Данный код для записи данных в нужные нам ячейки в таблицу на листе "Заявка МТ-1 для печати" Dim LastRow As Long LastRow = Range("A5").CurrentRegion.Rows.Count If TextBox1.Value <> "" Then Cells(LastRow + 1, 1) = TextBox1.Value If TextBox3.Value <> "" Then Cells(LastRow + 1, 17) = TextBox3.Value If ComboBox1.Value <> "" Then Cells(LastRow + 1, 2) = ComboBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow + 1, 3) = ComboBox2.Value If ComboBox3.Value <> "" Then Cells(LastRow + 1, 4) = ComboBox3.Value If ComboBox4.Value <> "" Then Cells(LastRow + 1, 5) = ComboBox4.Value If TextBox2.Value <> "" Then Cells(LastRow + 1, 6) = TextBox2.Value If TextBox4.Value <> "" Then Cells(LastRow + 1, 8) = TextBox4.Value Unload Me End Sub
Private Sub Butt_ok_Click() 'Äàííûé êîä äëÿ çàïèñè äàííûõ â íóæíûå íàì ÿ÷åéêè â òàáëèöó íà ëèñòå "Çàÿâêà ÌÒ-1 äëÿ ïå÷àòè" Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row + 2 If TextBox1.Value <> "" Then Cells(LastRow, 1) = TextBox1.Value If TextBox3.Value <> "" Then Cells(LastRow, 17) = TextBox3.Value If ComboBox1.Value <> "" Then Cells(LastRow, 2) = ComboBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow, 3) = ComboBox2.Value If ComboBox3.Value <> "" Then Cells(LastRow, 4) = ComboBox3.Value If ComboBox4.Value <> "" Then Cells(LastRow, 5) = ComboBox4.Value If TextBox2.Value <> "" Then Cells(LastRow, 6) = TextBox2.Value If TextBox4.Value <> "" Then Cells(LastRow, 8) = TextBox4.Value Unload Me End Sub
[/vba]
lebensvoll, [vba]
Код
Private Sub Butt_ok_Click() 'Äàííûé êîä äëÿ çàïèñè äàííûõ â íóæíûå íàì ÿ÷åéêè â òàáëèöó íà ëèñòå "Çàÿâêà ÌÒ-1 äëÿ ïå÷àòè" Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row + 2 If TextBox1.Value <> "" Then Cells(LastRow, 1) = TextBox1.Value If TextBox3.Value <> "" Then Cells(LastRow, 17) = TextBox3.Value If ComboBox1.Value <> "" Then Cells(LastRow, 2) = ComboBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow, 3) = ComboBox2.Value If ComboBox3.Value <> "" Then Cells(LastRow, 4) = ComboBox3.Value If ComboBox4.Value <> "" Then Cells(LastRow, 5) = ComboBox4.Value If TextBox2.Value <> "" Then Cells(LastRow, 6) = TextBox2.Value If TextBox4.Value <> "" Then Cells(LastRow, 8) = TextBox4.Value Unload Me End Sub
sboy, RAN, Manyasha, СПАСИБО ВАМ ОГРОМНЕЙШЕЕ!!! Только я одного понять не могу (((( ведь этот код я уже применял ((( и он почему то у меня первую запись прописывал верно а следующую он прописывал в конец таблицы (((( вот смотрите пост
Цитата
Дата: Пятница, 29.07.2016, 11:15 | Сообщение № 20
Скорее всего из -за того что моя не внимательность снова дала свои плоды (((( потому как. Когда я применял этот код диапазон А4:5 был не объединен ((((( вот он и прописывал мне сикась накось (((( Честно признаюсь что я бы не смог ну ни как это реализовать...Даже ваши подсказки до меня доходили просто с трудом (а возможно даже и вовсе не до понимались). СПАСИБО ВАМ ЕЩЕ РАЗ ОГРОМНЕЙШЕЕ!!!
sboy, RAN, Manyasha, СПАСИБО ВАМ ОГРОМНЕЙШЕЕ!!! Только я одного понять не могу (((( ведь этот код я уже применял ((( и он почему то у меня первую запись прописывал верно а следующую он прописывал в конец таблицы (((( вот смотрите пост
Цитата
Дата: Пятница, 29.07.2016, 11:15 | Сообщение № 20
Скорее всего из -за того что моя не внимательность снова дала свои плоды (((( потому как. Когда я применял этот код диапазон А4:5 был не объединен ((((( вот он и прописывал мне сикась накось (((( Честно признаюсь что я бы не смог ну ни как это реализовать...Даже ваши подсказки до меня доходили просто с трудом (а возможно даже и вовсе не до понимались). СПАСИБО ВАМ ЕЩЕ РАЗ ОГРОМНЕЙШЕЕ!!!lebensvoll
половину не поняла, другая половина - не правильно! Строк.Граф - что это? Что такое Граф? Cells(i, j) не вернет ячейки и End(xlUp) не вернет конец строки.
[vba]
Код
Private Sub Butt_ok_Click() Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 If LastRow < 6 Then LastRow = 6 'Если А меньше Б, значит А равно Б. If TextBox1.Value <> "" Then Cells(LastRow, 1) = TextBox1.Value If TextBox3.Value <> "" Then Cells(LastRow, 17) = TextBox3.Value If ComboBox1.Value <> "" Then Cells(LastRow, 2) = ComboBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow, 3) = ComboBox2.Value If ComboBox3.Value <> "" Then Cells(LastRow, 4) = ComboBox3.Value If ComboBox4.Value <> "" Then Cells(LastRow, 5) = ComboBox4.Value If TextBox2.Value <> "" Then Cells(LastRow, 6) = TextBox2.Value If TextBox4.Value <> "" Then Cells(LastRow, 8) = TextBox4.Value Unload Me End Sub
[/vba]
Подозреваю, что у Вас в G6:P19 были формулы или еще что-то, а теперь их нет.
половину не поняла, другая половина - не правильно! Строк.Граф - что это? Что такое Граф? Cells(i, j) не вернет ячейки и End(xlUp) не вернет конец строки.
[vba]
Код
Private Sub Butt_ok_Click() Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 If LastRow < 6 Then LastRow = 6 'Если А меньше Б, значит А равно Б. If TextBox1.Value <> "" Then Cells(LastRow, 1) = TextBox1.Value If TextBox3.Value <> "" Then Cells(LastRow, 17) = TextBox3.Value If ComboBox1.Value <> "" Then Cells(LastRow, 2) = ComboBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow, 3) = ComboBox2.Value If ComboBox3.Value <> "" Then Cells(LastRow, 4) = ComboBox3.Value If ComboBox4.Value <> "" Then Cells(LastRow, 5) = ComboBox4.Value If TextBox2.Value <> "" Then Cells(LastRow, 6) = TextBox2.Value If TextBox4.Value <> "" Then Cells(LastRow, 8) = TextBox4.Value Unload Me End Sub
Manyasha, это я перевод делал в яндекс переводчике как мне переводит так и понимаю (((( я с английским не дружу (мне то с русским то сложно иной раз) . Вот честно сказать я бы реально не смог бы додуматься что следует дополнить еще одной строкой формулу (((( [vba]
Код
If LastRow < 6 Then LastRow = 6 'Если А меньше Б, значит А равно Б.
[/vba] RAN, да вы правы я заметил что иной раз есть сбои в записывании записи данных (((( приходится удалять их и записывать заново.
Manyasha, это я перевод делал в яндекс переводчике как мне переводит так и понимаю (((( я с английским не дружу (мне то с русским то сложно иной раз) . Вот честно сказать я бы реально не смог бы додуматься что следует дополнить еще одной строкой формулу (((( [vba]
Код
If LastRow < 6 Then LastRow = 6 'Если А меньше Б, значит А равно Б.
[/vba] RAN, да вы правы я заметил что иной раз есть сбои в записывании записи данных (((( приходится удалять их и записывать заново.lebensvoll