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

Вход

Регистрация

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

 

= Мир MS Excel/Добавление данных макросом в архив - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Добавление данных макросом в архив
Мур Дата: Пятница, 05.10.2012, 12:56 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Добрый день! участникам форума.
Имеется книга с двумя листами "Промежуточный" и "Архив" (См пример)
По заполнению диапазона данных на листе "Промежуточный" необходимо скопировать
этот диапазон а некий архив, на листе "Архив", в строку следующую за предыдущей, заполненной ранее.
Раньше я обращался с подобным вопросом, но сейчас найти не могу.
Пытался самостоятельно решить, но споткнулся на месте с переменной, которая будет определять место для вставки данных.
К сообщению приложен файл: 8179585.xls (37.5 Kb)
 
Ответить
СообщениеДобрый день! участникам форума.
Имеется книга с двумя листами "Промежуточный" и "Архив" (См пример)
По заполнению диапазона данных на листе "Промежуточный" необходимо скопировать
этот диапазон а некий архив, на листе "Архив", в строку следующую за предыдущей, заполненной ранее.
Раньше я обращался с подобным вопросом, но сейчас найти не могу.
Пытался самостоятельно решить, но споткнулся на месте с переменной, которая будет определять место для вставки данных.

Автор - Мур
Дата добавления - 05.10.2012 в 12:56
ABC Дата: Пятница, 05.10.2012, 13:50 | Сообщение № 2
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
Мур, еще можно http://www.excelworld.ru/forum/2-2485-1, смотрите посты Сергея
[vba]
Code
Sub www()
      Dim x&
      x = Sheets(2).Cells(Rows.Count, 2).End(xlUp).Row + 1
      Sheets(2).Cells(x, 2) = x - 4
      Sheets(1).[A3:I3].Copy Sheets(2).Cells(x, 3)
End Sub
[/vba]


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет


Сообщение отредактировал ABC - Пятница, 05.10.2012, 13:50
 
Ответить
СообщениеМур, еще можно http://www.excelworld.ru/forum/2-2485-1, смотрите посты Сергея
[vba]
Code
Sub www()
      Dim x&
      x = Sheets(2).Cells(Rows.Count, 2).End(xlUp).Row + 1
      Sheets(2).Cells(x, 2) = x - 4
      Sheets(1).[A3:I3].Copy Sheets(2).Cells(x, 3)
End Sub
[/vba]

Автор - ABC
Дата добавления - 05.10.2012 в 13:50
Мур Дата: Пятница, 05.10.2012, 16:22 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Уважаемый Даулет,
Вы переоцениваете мои способности. Я не могу разобраться в постах Сергея.
Посмотрите мой код, эта максимум, что у меня получилось.
 
Ответить
СообщениеУважаемый Даулет,
Вы переоцениваете мои способности. Я не могу разобраться в постах Сергея.
Посмотрите мой код, эта максимум, что у меня получилось.

Автор - Мур
Дата добавления - 05.10.2012 в 16:22
Мур Дата: Пятница, 05.10.2012, 16:28 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Уважаемый Даулет,
простите меня, вроде заработало, осталось разобраться как?
Большое спасибо Вам, и, конечно, Сергею.
 
Ответить
СообщениеУважаемый Даулет,
простите меня, вроде заработало, осталось разобраться как?
Большое спасибо Вам, и, конечно, Сергею.

Автор - Мур
Дата добавления - 05.10.2012 в 16:28
Мур Дата: Пятница, 05.10.2012, 16:48 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

В примере выложенном в первом посте все работает.
Вставил код в рабочий файл, поменял номера листов и координаты копируемого диапазона.
Выдает "метод copy из класса range завершен неверно".
Если не трудно закоментируйте, пожалуйста, код, а то я понимаю, что, что-то не понимаю.
 
Ответить
СообщениеВ примере выложенном в первом посте все работает.
Вставил код в рабочий файл, поменял номера листов и координаты копируемого диапазона.
Выдает "метод copy из класса range завершен неверно".
Если не трудно закоментируйте, пожалуйста, код, а то я понимаю, что, что-то не понимаю.

Автор - Мур
Дата добавления - 05.10.2012 в 16:48
ABC Дата: Пятница, 05.10.2012, 19:16 | Сообщение № 6
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
Мур, думаю здесь можно комментировать x = Sheets(2).Cells(Rows.Count, 2).End(xlUp).Row [находим последнюю не пустую строку во 2-ом столбце]
так будет понятнее: замените Sheets(2) на Sheets("Архив") и Sheets(1) на Sheets("Промежуточный")
еще, добавлю Cells(строка, столбец)


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет


Сообщение отредактировал ABC - Суббота, 06.10.2012, 09:05
 
Ответить
СообщениеМур, думаю здесь можно комментировать x = Sheets(2).Cells(Rows.Count, 2).End(xlUp).Row [находим последнюю не пустую строку во 2-ом столбце]
так будет понятнее: замените Sheets(2) на Sheets("Архив") и Sheets(1) на Sheets("Промежуточный")
еще, добавлю Cells(строка, столбец)

Автор - ABC
Дата добавления - 05.10.2012 в 19:16
Мур Дата: Понедельник, 08.10.2012, 10:20 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Добрый день всем!
Даулет, спасибо за комменты к коду!
Во многом стало понятнее.
Сейчас заработало, только немного не так как надо, где ошибка?
Высылаю кусочек рабочего файла.
Заранее благодарен не только Вам, но и любому кто поможет разобраться.
К сообщению приложен файл: 2028986.xlsm (21.2 Kb)
 
Ответить
СообщениеДобрый день всем!
Даулет, спасибо за комменты к коду!
Во многом стало понятнее.
Сейчас заработало, только немного не так как надо, где ошибка?
Высылаю кусочек рабочего файла.
Заранее благодарен не только Вам, но и любому кто поможет разобраться.

Автор - Мур
Дата добавления - 08.10.2012 в 10:20
_Boroda_ Дата: Понедельник, 08.10.2012, 11:52 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16715
Репутация: 6504 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
немного добавил в код уважаемого Даулета
[vba]
Code
SSub Для_копирования_диапазона()
       Dim x&, n_&
       n_ = 6 'последняя строка шапки
       x = WorksheetFunction.Max(n_, Sheets("Архив").Cells(Rows.Count, 1).End(xlUp).Row) + 1
       Sheets("Архив").Cells(x, 1) = x - n_
       Sheets("Архив").Cells(x, 2).Resize(, 12) = Sheets("Промежуточный").[B7:M7].Value
End Sub
[/vba]
Правда, не совсем понятно - на лист архив Вам нужно значениями вставлять или формулами? Вставил значениями.
К сообщению приложен файл: 2028986_1.xlsm (24.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениенемного добавил в код уважаемого Даулета
[vba]
Code
SSub Для_копирования_диапазона()
       Dim x&, n_&
       n_ = 6 'последняя строка шапки
       x = WorksheetFunction.Max(n_, Sheets("Архив").Cells(Rows.Count, 1).End(xlUp).Row) + 1
       Sheets("Архив").Cells(x, 1) = x - n_
       Sheets("Архив").Cells(x, 2).Resize(, 12) = Sheets("Промежуточный").[B7:M7].Value
End Sub
[/vba]
Правда, не совсем понятно - на лист архив Вам нужно значениями вставлять или формулами? Вставил значениями.

Автор - _Boroda_
Дата добавления - 08.10.2012 в 11:52
Мур Дата: Понедельник, 08.10.2012, 12:44 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Большое спасибо! Все так, нужны были именно значения.
 
Ответить
СообщениеБольшое спасибо! Все так, нужны были именно значения.

Автор - Мур
Дата добавления - 08.10.2012 в 12:44
  • Страница 1 из 1
  • 1
Поиск:

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