Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2019, 17:13   #1
FecherS
Новичок
Джуниор
 
Регистрация: 18.12.2019
Сообщений: 3
Восклицание VBA - Макрос копирования данных кнопкой на другой лист в пустую ячейку

Добрый день.

Читал форум и видел похожие темы , но неразобрался. Помогите пожалуйста.

Суть.
Есть расчётная таблица на листе "AD01" в диапозоне A4:J9 при нажатии на кнопку "Button1_Peredat" (кнопка находится на том же листе "AD01") данные из области ячеек копируются в лист "Заказ-детали" в следующую пустую строку(в столбец 3).

У меня выходит копирование данных в тот же лист... но это не то.

Работаю в Excel 2016 / 2010

Пример моего кода:

Код:
Private Sub Button1_Peredat_Click()
     Range("A4:J9").Copy
     Dim NextRow As Long
     With Worksheets("Заказ-детали")
         NextRow = Cells(Rows.Count, 3).End(xlUp).Row + 1            'определение следующей пустой строки
         Range("C" & NextRow).PasteSpecial Paste:=xlPasteValues    'Вставка скопированного
     End With
End Sub
FecherS вне форума Ответить с цитированием
Старый 18.12.2019, 18:25   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

With Worksheets("Заказ-детали") никак не используете!
Когда начнёте использовать - возможно получится. Полезно использовать и при определении Rows.Count
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 18.12.2019, 19:36   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

если на другом листе много пустых ячеек в которую из них копировать?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.12.2019, 10:12   #4
FecherS
Новичок
Джуниор
 
Регистрация: 18.12.2019
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
With Worksheets("Заказ-детали") никак не используете!
Когда начнёте использовать - возможно получится. Полезно использовать и при определении Rows.Count
Смысл я понял, а можете объяснить на моем примере ?? Где я должен использовать, в какое место должен вставить координаты вставки??



Цитата:
Сообщение от IgorGO Посмотреть сообщение
если на другом листе много пустых ячеек в которую из них копировать?
Вставить нужно в следующую пустую ячейку после занятых третьего столбика на листе "Заказ-детали" (третий столбик, это колонка "С") и я указываю её координаты: Range("C" & NextRow)
FecherS вне форума Ответить с цитированием
Старый 19.12.2019, 10:39   #5
yuresku
Пользователь
 
Регистрация: 01.06.2011
Сообщений: 72
По умолчанию

Приложите файл пример
yuresku вне форума Ответить с цитированием
Старый 19.12.2019, 11:07   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
With Worksheets("Заказ-детали")
         NextRow = .Cells(.Rows.Count, 3).End(xlUp).Row + 1            'определение следующей пустой строки
         .Range("C" & NextRow).PasteSpecial Paste:=xlPasteValues    'Вставка скопированного
     End With
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 19.12.2019, 11:17   #7
FecherS
Новичок
Джуниор
 
Регистрация: 18.12.2019
Сообщений: 3
По умолчанию

Всем спасибо!!
Спасибо, что наталкнули на решение. Пришлось повозится чтобы понять куда вставлять координаты позиционирования.
Вот работающий код :

Код:
Private Sub Button1_Peredat_Click()
'  работает копирование данных в след свободную на листе "Заказ-детали"
    Range("A4:J9").Copy
    Dim NextRow As Long
    With Worksheets("Заказ-детали")
        Sheets("Заказ-детали").Select  ' Переносит экран в зону копирования
        NextRow = Sheets("Заказ-детали").Cells(Rows.Count, 3).End(xlUp).Row + 1            'Определение следующей пустой строки
        Sheets("Заказ-детали").Range("C" & NextRow).PasteSpecial Paste:=xlPasteValues      'Вставить диапазон,
    End With

End Sub



Aleksandr H. - спасибо за решение. глядая на ваше решения понял как происходит обращения в VBA. Глубокий Вам поклон.
FecherS вне форума Ответить с цитированием
Старый 19.12.2019, 18:06   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от FecherS Посмотреть сообщение
глядая на ваше решения понял как происходит обращения в VBA
- что-то не видно.
Я вот потому и не давал точный пример кода, думаю что мой подход должен заставить подумать, самому найти примеры такого обращения, понять... А если нет, то и точный код не поможет...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос копирования строк по условию на другой лист Zolberg101 Microsoft Office Excel 1 01.03.2017 18:13
Добавление в ячейку содержимого другой ячейки кнопкой Vovankin Microsoft Office Excel 0 07.02.2015 16:46
Как копировать ячейки в другой лист кнопкой 5mrs Microsoft Office Excel 3 30.01.2015 13:49
Нужен Макрос для ввода данных в перую пустую ячейку диапазона valik65 Microsoft Office Excel 4 16.12.2010 16:01
Копирование данных на первую пустую ячейку kzld Microsoft Office Excel 8 15.07.2009 14:06