Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Запись данных не в ту ячейку - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запись данных не в ту ячейку (Макросы/Sub)
Запись данных не в ту ячейку
sboy Дата: Пятница, 29.07.2016, 11:26 | Сообщение № 21
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
данный код прописывает данные в строку 2

на том файле в начале топа вроде норм работал, но не суть) в коде, где через строку записывает уберите +1 при присвоении значений
[vba]
Код

LastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
If TextBox1.Value <> "" Then Cells(LastRow, 1) = TextBox1.Value
If TextBox3.Value <> "" Then Cells(LastRow, 17) = TextBox3.Value
' и т.д.
[/vba]


Яндекс: 410016850021169
 
Ответить
Сообщение
данный код прописывает данные в строку 2

на том файле в начале топа вроде норм работал, но не суть) в коде, где через строку записывает уберите +1 при присвоении значений
[vba]
Код

LastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
If TextBox1.Value <> "" Then Cells(LastRow, 1) = TextBox1.Value
If TextBox3.Value <> "" Then Cells(LastRow, 17) = TextBox3.Value
' и т.д.
[/vba]

Автор - sboy
Дата добавления - 29.07.2016 в 11:26
lebensvoll Дата: Пятница, 29.07.2016, 12:15 | Сообщение № 22
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
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 выделил желтым цветом
К сообщению приложен файл: _--4.xlsb (75.1 Kb)


Кто бы ты ни был, мир в твоих руках
 
Ответить
Сообщение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
Дата добавления - 29.07.2016 в 12:15
RAN Дата: Пятница, 29.07.2016, 12:26 | Сообщение № 23
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
lebensvoll, т.е. учиться вы не желаете.
Где та строка, про которую я писал ранее?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениеlebensvoll, т.е. учиться вы не желаете.
Где та строка, про которую я писал ранее?

Автор - RAN
Дата добавления - 29.07.2016 в 12:26
Manyasha Дата: Пятница, 29.07.2016, 12:31 | Сообщение № 24
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
lebensvoll, а Вы понимаете, что делает данная строчка?
[vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
[/vba]
Можете расписать в своем следующем посте, что означает
Rows.Count
Cells(Rows.Count, 1)
.End(xlUp)
.Row
?
Когда напишите, подумайте, чему будет равно LastRow для случая с пустой таблицей и для случая с заполненной 1-й строкой (в Вашем файле 6-я).
Чтобы было нагляднее, снимите объединение ячеек шапки таблицы (потом вернете, когда макрос заработает).

И вот тогда, когда Вы все это проделаете, сразу станет понятно, что такое
Если А меньше Б, значит А равно Б.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеlebensvoll, а Вы понимаете, что делает данная строчка?
[vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
[/vba]
Можете расписать в своем следующем посте, что означает
Rows.Count
Cells(Rows.Count, 1)
.End(xlUp)
.Row
?
Когда напишите, подумайте, чему будет равно LastRow для случая с пустой таблицей и для случая с заполненной 1-й строкой (в Вашем файле 6-я).
Чтобы было нагляднее, снимите объединение ячеек шапки таблицы (потом вернете, когда макрос заработает).

И вот тогда, когда Вы все это проделаете, сразу станет понятно, что такое
Если А меньше Б, значит А равно Б.

Автор - Manyasha
Дата добавления - 29.07.2016 в 12:31
lebensvoll Дата: Пятница, 29.07.2016, 12:51 | Сообщение № 25
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
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]
Тот же код с объединенными ячейками вписывает также в пятую но лишь дату :( потому как все другие столбцы данной строки объеденные (т.е. заполненные)
:'(


Кто бы ты ни был, мир в твоих руках
 
Ответить
Сообщение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
Дата добавления - 29.07.2016 в 12:51
RAN Дата: Пятница, 29.07.2016, 13:11 | Сообщение № 26
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Почему вы считаете, что если один способ при не правильном использовании не работает, то второй при не правильном использовании будет работать?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПочему вы считаете, что если один способ при не правильном использовании не работает, то второй при не правильном использовании будет работать?

Автор - RAN
Дата добавления - 29.07.2016 в 13:11
lebensvoll Дата: Пятница, 29.07.2016, 13:20 | Сообщение № 27
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
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. Под нее и добавляет.

Подскажите более понятней для моего понимания %) а не
Цитата
Если А меньше Б, значит А равно Б.

Автор - lebensvoll
Дата добавления - 29.07.2016 в 13:20
sboy Дата: Пятница, 29.07.2016, 13:37 | Сообщение № 28
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
так он же срабатывает если на конце кода указать +1
[vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row+1
[/vba]
Но он дополняет тогда пустую ячейку ((((

в коде, где через строку записывает уберите +1 при присвоении значений
[vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
If TextBox1.Value <> "" Then Cells(LastRow, 1) = TextBox1.Value
If TextBox3.Value <> "" Then Cells(LastRow, 17) = TextBox3.Value
' и т.д.
[/vba]


Яндекс: 410016850021169
 
Ответить
Сообщение
так он же срабатывает если на конце кода указать +1
[vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row+1
[/vba]
Но он дополняет тогда пустую ячейку ((((

в коде, где через строку записывает уберите +1 при присвоении значений
[vba]
Код
LastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
If TextBox1.Value <> "" Then Cells(LastRow, 1) = TextBox1.Value
If TextBox3.Value <> "" Then Cells(LastRow, 17) = TextBox3.Value
' и т.д.
[/vba]

Автор - sboy
Дата добавления - 29.07.2016 в 13:37
lebensvoll Дата: Пятница, 29.07.2016, 14:03 | Сообщение № 29
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
sboy, да в том то и дело что если убрать
Цитата
в коде, где через строку записывает уберите +1 при присвоении значений

То он и вовсе прописывает все данные в шапку таблицы ((((
Прошу меня извинить, может вам покажется это ХАМСТВОМ: НО, вы открываете файл когда пишите коды на форум!? Просто я уже это действие давно проделывал (((( и то же без результат но получается ((( я прекрасно понимаю что вы знаете что должно это действие сработать и помочь, но почему то у меня оно не идет именно так
вот сами файл смотрите там я выделил желтым цветом ячейку. При применении данного кода только дата записалась ((((
К сообщению приложен файл: 7437473.xlsb (75.3 Kb)


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал lebensvoll - Пятница, 29.07.2016, 14:04
 
Ответить
Сообщениеsboy, да в том то и дело что если убрать
Цитата
в коде, где через строку записывает уберите +1 при присвоении значений

То он и вовсе прописывает все данные в шапку таблицы ((((
Прошу меня извинить, может вам покажется это ХАМСТВОМ: НО, вы открываете файл когда пишите коды на форум!? Просто я уже это действие давно проделывал (((( и то же без результат но получается ((( я прекрасно понимаю что вы знаете что должно это действие сработать и помочь, но почему то у меня оно не идет именно так
вот сами файл смотрите там я выделил желтым цветом ячейку. При применении данного кода только дата записалась ((((

Автор - lebensvoll
Дата добавления - 29.07.2016 в 14:03
lebensvoll Дата: Пятница, 29.07.2016, 14:05 | Сообщение № 30
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
Я вот честно сказать все думаю что тут не строки должны быть указаны а диапазон все же (((


Кто бы ты ни был, мир в твоих руках
 
Ответить
СообщениеЯ вот честно сказать все думаю что тут не строки должны быть указаны а диапазон все же (((

Автор - lebensvoll
Дата добавления - 29.07.2016 в 14:05
lebensvoll Дата: Пятница, 29.07.2016, 14:09 | Сообщение № 31
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
sboy, RAN, Manyasha, вот так вот этот код срабатывает на ура!!! hands hands hands hands
[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, вот так вот этот код срабатывает на ура!!! hands hands hands hands
[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]

Автор - lebensvoll
Дата добавления - 29.07.2016 в 14:09
sboy Дата: Пятница, 29.07.2016, 14:11 | Сообщение № 32
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
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
[/vba]


Яндекс: 410016850021169
 
Ответить
Сообщение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
[/vba]

Автор - sboy
Дата добавления - 29.07.2016 в 14:11
lebensvoll Дата: Пятница, 29.07.2016, 14:15 | Сообщение № 33
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
sboy, RAN, Manyasha, СПАСИБО ВАМ ОГРОМНЕЙШЕЕ!!!
Только я одного понять не могу (((( ведь этот код я уже применял ((( и он почему то у меня первую запись прописывал верно а следующую он прописывал в конец таблицы (((( вот смотрите пост
Цитата
Дата: Пятница, 29.07.2016, 11:15 | Сообщение № 20

Скорее всего из -за того что моя не внимательность снова дала свои плоды (((( потому как. Когда я применял этот код диапазон А4:5 был не объединен ((((( вот он и прописывал мне сикась накось ((((
Честно признаюсь что я бы не смог ну ни как это реализовать...Даже ваши подсказки до меня доходили просто с трудом (а возможно даже и вовсе не до понимались).
СПАСИБО ВАМ ЕЩЕ РАЗ ОГРОМНЕЙШЕЕ!!!


Кто бы ты ни был, мир в твоих руках
 
Ответить
Сообщениеsboy, RAN, Manyasha, СПАСИБО ВАМ ОГРОМНЕЙШЕЕ!!!
Только я одного понять не могу (((( ведь этот код я уже применял ((( и он почему то у меня первую запись прописывал верно а следующую он прописывал в конец таблицы (((( вот смотрите пост
Цитата
Дата: Пятница, 29.07.2016, 11:15 | Сообщение № 20

Скорее всего из -за того что моя не внимательность снова дала свои плоды (((( потому как. Когда я применял этот код диапазон А4:5 был не объединен ((((( вот он и прописывал мне сикась накось ((((
Честно признаюсь что я бы не смог ну ни как это реализовать...Даже ваши подсказки до меня доходили просто с трудом (а возможно даже и вовсе не до понимались).
СПАСИБО ВАМ ЕЩЕ РАЗ ОГРОМНЕЙШЕЕ!!!

Автор - lebensvoll
Дата добавления - 29.07.2016 в 14:15
Manyasha Дата: Пятница, 29.07.2016, 14:42 | Сообщение № 34
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Подозреваю, что у Вас в 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
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеПодозреваю, что у Вас в 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
[/vba]

Автор - Manyasha
Дата добавления - 29.07.2016 в 14:42
RAN Дата: Пятница, 29.07.2016, 15:30 | Сообщение № 35
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
вот этот код срабатывает на ура!

В вашем файле, если только случайно, и для одной записи.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
вот этот код срабатывает на ура!

В вашем файле, если только случайно, и для одной записи.

Автор - RAN
Дата добавления - 29.07.2016 в 15:30
lebensvoll Дата: Пятница, 29.07.2016, 15:56 | Сообщение № 36
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
Manyasha, это я перевод делал в яндекс переводчике :'( как мне переводит так и понимаю (((( я с английским не дружу (мне то с русским то сложно иной раз) :( .
Вот честно сказать я бы реально не смог бы додуматься что следует дополнить еще одной строкой формулу ((((
[vba]
Код
If LastRow < 6 Then LastRow = 6 'Если А меньше Б, значит А равно Б.
[/vba]
RAN, да вы правы я заметил что иной раз есть сбои в записывании записи данных (((( приходится удалять их и записывать заново.


Кто бы ты ни был, мир в твоих руках
 
Ответить
СообщениеManyasha, это я перевод делал в яндекс переводчике :'( как мне переводит так и понимаю (((( я с английским не дружу (мне то с русским то сложно иной раз) :( .
Вот честно сказать я бы реально не смог бы додуматься что следует дополнить еще одной строкой формулу ((((
[vba]
Код
If LastRow < 6 Then LastRow = 6 'Если А меньше Б, значит А равно Б.
[/vba]
RAN, да вы правы я заметил что иной раз есть сбои в записывании записи данных (((( приходится удалять их и записывать заново.

Автор - lebensvoll
Дата добавления - 29.07.2016 в 15:56
alex77755 Дата: Суббота, 30.07.2016, 18:28 | Сообщение № 37
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Цитата
Но он последующую запись прописывает под таблицей

У меня пишет корректно
К сообщению приложен файл: -22.xlsb (61.4 Kb)


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение
Цитата
Но он последующую запись прописывает под таблицей

У меня пишет корректно

Автор - alex77755
Дата добавления - 30.07.2016 в 18:28
alex77755 Дата: Суббота, 30.07.2016, 18:29 | Сообщение № 38
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

два файла не цепляются?
К сообщению приложен файл: 7959071.png (68.7 Kb)


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщениедва файла не цепляются?

Автор - alex77755
Дата добавления - 30.07.2016 в 18:29
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запись данных не в ту ячейку (Макросы/Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!