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

Вход

Регистрация

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

 

= Мир MS Excel/Сохранение выделеного в файл - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Сохранение выделеного в файл
aydar Дата: Пятница, 22.03.2013, 12:34 | Сообщение № 1
Группа: Гости
Добрый день, есть список, его сотрудники пополняют и в конце рабочего дня они выделяют все записи за день и нажимаю кнопку, запись выделенного (на нем макрос)
суть макроса копирование выделенной области на др лист (уже сделал) и копирование выделенных данных в отдельный файл и его пополнение (не сделал) и хочу еще отчищать раб область (лист куда сотрудники в течение дня вводят записи). Очень нужна ваша помощь Макросы эксель только начал изучать.

вот код макроса, копия на др лист

[vba]
Код
Selection.Copy
Sheets("База данных").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets("Исходные данные").Select
Selection.ClearContents
Range("A3").Select
[/vba]
 
Ответить
СообщениеДобрый день, есть список, его сотрудники пополняют и в конце рабочего дня они выделяют все записи за день и нажимаю кнопку, запись выделенного (на нем макрос)
суть макроса копирование выделенной области на др лист (уже сделал) и копирование выделенных данных в отдельный файл и его пополнение (не сделал) и хочу еще отчищать раб область (лист куда сотрудники в течение дня вводят записи). Очень нужна ваша помощь Макросы эксель только начал изучать.

вот код макроса, копия на др лист

[vba]
Код
Selection.Copy
Sheets("База данных").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets("Исходные данные").Select
Selection.ClearContents
Range("A3").Select
[/vba]

Автор - aydar
Дата добавления - 22.03.2013 в 12:34
aydat Дата: Пятница, 22.03.2013, 12:37 | Сообщение № 2
Группа: Гости
вот ссылка на исходный файл
http://files.mail.ru/377697DEDBE945D88048EB1788797111
 
Ответить
Сообщениевот ссылка на исходный файл
http://files.mail.ru/377697DEDBE945D88048EB1788797111

Автор - aydat
Дата добавления - 22.03.2013 в 12:37
Alex_ST Дата: Пятница, 22.03.2013, 13:02 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Ваш файл не смотрел (у меня на работе сисадмины, собаки, скачивать файлы с макросами запретили).
Но посмотрите, в топике Макрос "Copy_ROWs_to_EXT_FILE" не то, что Вам нужно?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеВаш файл не смотрел (у меня на работе сисадмины, собаки, скачивать файлы с макросами запретили).
Но посмотрите, в топике Макрос "Copy_ROWs_to_EXT_FILE" не то, что Вам нужно?

Автор - Alex_ST
Дата добавления - 22.03.2013 в 13:02
aydar Дата: Пятница, 22.03.2013, 13:20 | Сообщение № 4
Группа: Гости
помоему то, а как делать очистку листа с определенной строки
 
Ответить
Сообщениепомоему то, а как делать очистку листа с определенной строки

Автор - aydar
Дата добавления - 22.03.2013 в 13:20
Alex_ST Дата: Пятница, 22.03.2013, 13:24 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Выделить ячейку, Ctrl+Shift+End, Delete



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеВыделить ячейку, Ctrl+Shift+End, Delete

Автор - Alex_ST
Дата добавления - 22.03.2013 в 13:24
aydar Дата: Пятница, 22.03.2013, 13:43 | Сообщение № 6
Группа: Гости
понял вас, значит так по скрипту вашему

[vba]
Код
If Not TypeName(Selection) = "Range" Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject("c:\test.xls") 'путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.EntireRow.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ' закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing
[/vba]

копирует замечательно, но копирует всю строку а не выделенную область.

хотел объединить мое копирование в лист и ваше в файл не получилось

[vba]
Код
Sub ЗаписьВОбщийЖурнал()
'
' Макрос2 Макрос
' Макрос записан 15.10.2007 (VladimirovAV)
'

Selection.Copy
Sheets("База данных").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets("Исходные данные").Select
Selection.ClearContents
Range("A3").Select

If Not TypeName(Selection) = "Range" Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject("c:\test.xls") 'путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.EntireRow.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ' закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing

End Sub
[/vba]

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

[vba]
Код
If Not TypeName(Selection) = "Range" Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject("c:\test.xls") 'путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.EntireRow.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ' закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing
[/vba]

копирует замечательно, но копирует всю строку а не выделенную область.

хотел объединить мое копирование в лист и ваше в файл не получилось

[vba]
Код
Sub ЗаписьВОбщийЖурнал()
'
' Макрос2 Макрос
' Макрос записан 15.10.2007 (VladimirovAV)
'

Selection.Copy
Sheets("База данных").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets("Исходные данные").Select
Selection.ClearContents
Range("A3").Select

If Not TypeName(Selection) = "Range" Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject("c:\test.xls") 'путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.EntireRow.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ' закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing

End Sub
[/vba]

отказывается копировать

Автор - aydar
Дата добавления - 22.03.2013 в 13:43
RAN Дата: Пятница, 22.03.2013, 14:00 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Макрос называется копирование строк. Вот он и копирует строки.
Уберите EntireRow - будет копировать выделение.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеМакрос называется копирование строк. Вот он и копирует строки.
Уберите EntireRow - будет копировать выделение.

Автор - RAN
Дата добавления - 22.03.2013 в 14:00
aydar Дата: Понедельник, 25.03.2013, 12:36 | Сообщение № 8
Группа: Гости
убрал, не получилось

[vba]
Код
Selection.Copy
Sheets("Áàçà äàííûõ").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets("Èñõîäíûå äàííûå").Select
Selection.ClearContents
Range("A3").Select
[/vba]

[vba]
Код
If Not TypeName(Selection) = "Range" Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject("c:\test.xls") 'ïóòü ê ôàéëó-íàêîïèòåëþ
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ' çàêðûòü ñ ñîõðàíåíèåì
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing
[/vba]
[admin]aydar,оформляйте коды тегами и копируйте их из VBA при русской раскладке[/admin]
 
Ответить
Сообщениеубрал, не получилось

[vba]
Код
Selection.Copy
Sheets("Áàçà äàííûõ").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets("Èñõîäíûå äàííûå").Select
Selection.ClearContents
Range("A3").Select
[/vba]

[vba]
Код
If Not TypeName(Selection) = "Range" Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject("c:\test.xls") 'ïóòü ê ôàéëó-íàêîïèòåëþ
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ' çàêðûòü ñ ñîõðàíåíèåì
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing
[/vba]
[admin]aydar,оформляйте коды тегами и копируйте их из VBA при русской раскладке[/admin]

Автор - aydar
Дата добавления - 25.03.2013 в 12:36
aydar Дата: Вторник, 26.03.2013, 11:36 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Цитата

Sub ЗаписьВОбщийЖурнал()
'
' Макрос2 Макрос

Selection.Copy
Sheets("База данных").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets("Исходные данные").Select
Selection.ClearContents
Range("A3").Select

'это часть работает замечательно

' это копирования выделения в другой файл
If Not TypeName(Selection) = "Range" Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject("c:\test.xls") 'путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ' закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing


End Sub


копирование в другой файл работает криво, копируется вся строка а не выделение,иногда не все данные копируются
 
Ответить
Сообщение
Цитата

Sub ЗаписьВОбщийЖурнал()
'
' Макрос2 Макрос

Selection.Copy
Sheets("База данных").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets("Исходные данные").Select
Selection.ClearContents
Range("A3").Select

'это часть работает замечательно

' это копирования выделения в другой файл
If Not TypeName(Selection) = "Range" Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject("c:\test.xls") 'путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ' закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing


End Sub


копирование в другой файл работает криво, копируется вся строка а не выделение,иногда не все данные копируются

Автор - aydar
Дата добавления - 26.03.2013 в 11:36
RAN Дата: Вторник, 26.03.2013, 12:07 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Во первых - зачем себя цитировать?
Во вторых, такого
Цитата (aydar)
копируется вся строка а не выделение,иногда не все данные копируются

в приведенном коде быть не может.
Единственное, что он может скопировать, это Range("A3") на листе Исходные данные


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВо первых - зачем себя цитировать?
Во вторых, такого
Цитата (aydar)
копируется вся строка а не выделение,иногда не все данные копируются

в приведенном коде быть не может.
Единственное, что он может скопировать, это Range("A3") на листе Исходные данные

Автор - RAN
Дата добавления - 26.03.2013 в 12:07
KuklP Дата: Вторник, 26.03.2013, 12:20 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Alex_ST Дата: Вторник, 26.03.2013, 12:39 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну вот, зарегистрировались, теперь можно и попытаться разобраться.

У меня на моих файлах работает. Но у меня макрос уже "допиленный"
Проблема может быть в структуре данных.
Например, в приведённом Вами фрагменте кода
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row определяет ряд с первой пустой ячейкой В ПЕРВОМ СТОЛБЦЕ.
Поэтому если Вы копируете диапазон, где в ячейках первого столбца есть пустые, то lr определится не правильно и следующая запись наложится на предыдущую. Об этом, к стати, всё расписано в том топике, откуда Вы брали фрагмент. Вы дальше первого топика читали? Ну, например, ЭТО.

Приложите пример. Тогда кто-нибудь попробует разобраться почему у Вас не работает. (Я не смогу - на работе завал, да ещё и сисадмины закрыли скачивание файлов с макросами, собаки!)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНу вот, зарегистрировались, теперь можно и попытаться разобраться.

У меня на моих файлах работает. Но у меня макрос уже "допиленный"
Проблема может быть в структуре данных.
Например, в приведённом Вами фрагменте кода
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row определяет ряд с первой пустой ячейкой В ПЕРВОМ СТОЛБЦЕ.
Поэтому если Вы копируете диапазон, где в ячейках первого столбца есть пустые, то lr определится не правильно и следующая запись наложится на предыдущую. Об этом, к стати, всё расписано в том топике, откуда Вы брали фрагмент. Вы дальше первого топика читали? Ну, например, ЭТО.

Приложите пример. Тогда кто-нибудь попробует разобраться почему у Вас не работает. (Я не смогу - на работе завал, да ещё и сисадмины закрыли скачивание файлов с макросами, собаки!)

Автор - Alex_ST
Дата добавления - 26.03.2013 в 12:39
aydar Дата: Вторник, 26.03.2013, 14:30 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

вопрос решен, спс за помощь
 
Ответить
Сообщениевопрос решен, спс за помощь

Автор - aydar
Дата добавления - 26.03.2013 в 14:30
  • Страница 1 из 1
  • 1
Поиск:

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