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

Вход

Регистрация

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

 

= Мир MS Excel/Добавление данных из одного листа в другой с накоплением - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавление данных из одного листа в другой с накоплением (Формулы/Formulas)
Добавление данных из одного листа в другой с накоплением
Savra Дата: Четверг, 16.10.2014, 13:36 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Здравствуйте!
Подскажите пожалуйста.
Возможно ли реализовать такую задачу.
Допустим на одном листе мы имеем какие то данные в течении дня. И имеем сводную таблиц по таким же данным с формулами на другом листе.

Необходимо накопленные данные в конце дня перенести в другой лист, то есть добавить к уже существующим данным за другие дни.

Если тут есть подобные темы ткните пожалуйста кто сталкивался.
За ранее благодарю.
[moder]Читайте правила форума.
Прикладывайте пример файла.
К сообщению приложен файл: Balans_temp.rar (22.6 Kb)


Сообщение отредактировал Savra - Четверг, 16.10.2014, 14:03
 
Ответить
СообщениеЗдравствуйте!
Подскажите пожалуйста.
Возможно ли реализовать такую задачу.
Допустим на одном листе мы имеем какие то данные в течении дня. И имеем сводную таблиц по таким же данным с формулами на другом листе.

Необходимо накопленные данные в конце дня перенести в другой лист, то есть добавить к уже существующим данным за другие дни.

Если тут есть подобные темы ткните пожалуйста кто сталкивался.
За ранее благодарю.
[moder]Читайте правила форума.
Прикладывайте пример файла.

Автор - Savra
Дата добавления - 16.10.2014 в 13:36
Rustem Дата: Четверг, 16.10.2014, 22:20 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 281
Репутация: 48 ±
Замечаний: 0% ±

Excel 2013
Так устроит?
К сообщению приложен файл: 1429444.rar (27.9 Kb)


WMR: R183220163895
 
Ответить
СообщениеТак устроит?

Автор - Rustem
Дата добавления - 16.10.2014 в 22:20
Savra Дата: Пятница, 17.10.2014, 13:39 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Так устроит?


спасибо большое Rustem!

интересно бы узнать как вы это сделали. Интересуюсь, так немного, экселем. Вот применять макросы не приходилось еще.
Может быть вы подскажете на "пальцах" (или посоветуете какой нить учебник для чайников), возможно в дальнейшем надо усовершенствовать таблицу.(разбивать по дням с выводом итогов по дням, чтобы можно было прикрутить график доходности)

И еще вопросик, я так понял кнопка копирует данные с первого листа на другой, а можно сделать чтобы вырезало данные.(потому как при работе експорта, на другой день данные пишутся поверх предыдуших и возможно что могут оставаться данные с прошлого дня если их было больше чем переписаных
....както так, если будет понятно
За ранее благодарю, спасибо еще раз

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

добавлено: попробовал в макросе поменять на вырезать, вырезает и вставляет нормально, но на втором листе, куда вставляются данные , ломаются формулы
что можно сделать?

добавлено: при копировании все "ровно", может быть добавить еще команду в макрос, чтобы после копирования удалялись данные с первого листа?


Сообщение отредактировал Savra - Пятница, 17.10.2014, 19:16
 
Ответить
Сообщение
Так устроит?


спасибо большое Rustem!

интересно бы узнать как вы это сделали. Интересуюсь, так немного, экселем. Вот применять макросы не приходилось еще.
Может быть вы подскажете на "пальцах" (или посоветуете какой нить учебник для чайников), возможно в дальнейшем надо усовершенствовать таблицу.(разбивать по дням с выводом итогов по дням, чтобы можно было прикрутить график доходности)

И еще вопросик, я так понял кнопка копирует данные с первого листа на другой, а можно сделать чтобы вырезало данные.(потому как при работе експорта, на другой день данные пишутся поверх предыдуших и возможно что могут оставаться данные с прошлого дня если их было больше чем переписаных
....както так, если будет понятно
За ранее благодарю, спасибо еще раз

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

добавлено: попробовал в макросе поменять на вырезать, вырезает и вставляет нормально, но на втором листе, куда вставляются данные , ломаются формулы
что можно сделать?

добавлено: при копировании все "ровно", может быть добавить еще команду в макрос, чтобы после копирования удалялись данные с первого листа?

Автор - Savra
Дата добавления - 17.10.2014 в 13:39
Savra Дата: Воскресенье, 19.10.2014, 02:22 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Вроде разобрался немного....
добавил код в макрос, после копирования инфо с первого листа на второй, на первом листе все удаляется.

прилагаю файл, может кому пригодится.......
К сообщению приложен файл: Balans_temp_1.rar (24.6 Kb)
 
Ответить
СообщениеВроде разобрался немного....
добавил код в макрос, после копирования инфо с первого листа на второй, на первом листе все удаляется.

прилагаю файл, может кому пригодится.......

Автор - Savra
Дата добавления - 19.10.2014 в 02:22
Savra Дата: Воскресенье, 19.10.2014, 12:21 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Добрый день!
Rustem, а можно реализовать такую задачу?. так сказать, такая логическая заготовка. (не знаю, в этой теме задавать такой вопрос или начать новую тему с другим названием для поиска?)

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

и как только появляется запись на первом листе, происходит проверка значения из колонки "Номер",
и если на втором листе в колонке "Номер" нет такого же значения, то запись добавляется к списку на втором листе, а на первом эта же запись удаляется
(если новая запись на первом листе не попадает под это условие, то есть номер такой же уже есть на втором листе, то эта запись на первом листе тоже удаляется)

(Если вдруг одновременно появляется несколько записей, то наверно поочередно проверяются переносятся(удаляются строки) не знаю как это критично для, скрипта)

и макрос опять в ожидании появления новой записи на первом листе.(не знаю, наверно тайминг для проверки не слишком короткий, раз в секунду например?)

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


Сообщение отредактировал Savra - Воскресенье, 19.10.2014, 12:34
 
Ответить
СообщениеДобрый день!
Rustem, а можно реализовать такую задачу?. так сказать, такая логическая заготовка. (не знаю, в этой теме задавать такой вопрос или начать новую тему с другим названием для поиска?)

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

и как только появляется запись на первом листе, происходит проверка значения из колонки "Номер",
и если на втором листе в колонке "Номер" нет такого же значения, то запись добавляется к списку на втором листе, а на первом эта же запись удаляется
(если новая запись на первом листе не попадает под это условие, то есть номер такой же уже есть на втором листе, то эта запись на первом листе тоже удаляется)

(Если вдруг одновременно появляется несколько записей, то наверно поочередно проверяются переносятся(удаляются строки) не знаю как это критично для, скрипта)

и макрос опять в ожидании появления новой записи на первом листе.(не знаю, наверно тайминг для проверки не слишком короткий, раз в секунду например?)

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

Автор - Savra
Дата добавления - 19.10.2014 в 12:21
LordAlah Дата: Воскресенье, 19.10.2014, 12:41 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 100% ±

Excel 2003
Rustem,

А как вы зделали эту кнопку (переместить).. И как прописать в гугле чтоб посмотреть видео с созданием этих кнопок???


Сообщение отредактировал LordAlah - Воскресенье, 19.10.2014, 12:42
 
Ответить
СообщениеRustem,

А как вы зделали эту кнопку (переместить).. И как прописать в гугле чтоб посмотреть видео с созданием этих кнопок???

Автор - LordAlah
Дата добавления - 19.10.2014 в 12:41
Savra Дата: Воскресенье, 19.10.2014, 17:50 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

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

1. Код определяющий появление данных на листе.

Sub Export()
Cycle1:
Sheets("Экспорт").Activate
If Cells(1,10).Value<>0 Then GoTo Cycle2
Sleep 3000
Else GoTo Cycle1

Cycle2:

End Sub


добавленно:
наверно правилнее будет так?

Sub Export()
Cycle1:
Sleep 3000
Sheets("Экспорт").Activate
If Cells(1,10).Value<>0 Then GoTo Cycle2        

Else GoTo Cycle1

Cycle2:

End Sub


добавленно:
наверно все таки так?

Sub Export()
Cycle1:
Sleep 3000
Sheets("Экспорт").Activate
If Cells(1,10).Value="" Then GoTo Cycle1        

End If

End Sub


Добавленно:
Это все неправильно было
вот так вроде боле менее
[vba]
Код
Sub Poisk()
     Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"   ' Делается пауза 10 сек.

If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Export

  End Sub

Sub Export()

  End Sub
[/vba]


Сообщение отредактировал Savra - Понедельник, 20.10.2014, 07:53
 
Ответить
СообщениеЗначит попробуем что нибудь смастерить...
Подсказывайте добрые люди, что не правильно, или как оптимизировать код.

1. Код определяющий появление данных на листе.

Sub Export()
Cycle1:
Sheets("Экспорт").Activate
If Cells(1,10).Value<>0 Then GoTo Cycle2
Sleep 3000
Else GoTo Cycle1

Cycle2:

End Sub


добавленно:
наверно правилнее будет так?

Sub Export()
Cycle1:
Sleep 3000
Sheets("Экспорт").Activate
If Cells(1,10).Value<>0 Then GoTo Cycle2        

Else GoTo Cycle1

Cycle2:

End Sub


добавленно:
наверно все таки так?

Sub Export()
Cycle1:
Sleep 3000
Sheets("Экспорт").Activate
If Cells(1,10).Value="" Then GoTo Cycle1        

End If

End Sub


Добавленно:
Это все неправильно было
вот так вроде боле менее
[vba]
Код
Sub Poisk()
     Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"   ' Делается пауза 10 сек.

If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Export

  End Sub

Sub Export()

  End Sub
[/vba]

Автор - Savra
Дата добавления - 19.10.2014 в 17:50
Pelena Дата: Воскресенье, 19.10.2014, 17:53 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19195
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Savra, перенести тему в раздел ВОПРОСЫ ПО VBA?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеSavra, перенести тему в раздел ВОПРОСЫ ПО VBA?

Автор - Pelena
Дата добавления - 19.10.2014 в 17:53
Savra Дата: Воскресенье, 19.10.2014, 17:57 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Да, пожалуйста перенесите
 
Ответить
СообщениеДа, пожалуйста перенесите

Автор - Savra
Дата добавления - 19.10.2014 в 17:57
Savra Дата: Понедельник, 20.10.2014, 08:00 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Теперь если значение в ячейке появилось попробуем присвоить это значение переменной.

[vba]
Код
Sub Poisk()
       Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"

If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Export

End Sub

Sub Export()
Dim Number As Long
Number=""
If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Number = Sheets("Экспорт").Cells(1, 10).Value
       
    End Sub
[/vba]


Сообщение отредактировал Savra - Понедельник, 20.10.2014, 12:09
 
Ответить
СообщениеТеперь если значение в ячейке появилось попробуем присвоить это значение переменной.

[vba]
Код
Sub Poisk()
       Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"

If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Export

End Sub

Sub Export()
Dim Number As Long
Number=""
If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Number = Sheets("Экспорт").Cells(1, 10).Value
       
    End Sub
[/vba]

Автор - Savra
Дата добавления - 20.10.2014 в 08:00
Savra Дата: Вторник, 21.10.2014, 16:26 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Теперь если значение в ячейке появилось попробуем присвоить это значение переменной.

Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"
If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Export
End Sub
Sub Export()
Dim Number As Long
Number=""
If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Number = Sheets("Экспорт").Cells(1, 10).Value
End Sub


не так немного...
вот так
[vba]
Код
Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"

If Sheets("Экспорт").Cells(1, 10) <> Empty Then Export

End Sub

Sub Export()
Dim Number As Long
Number=""
If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Number = Sheets("Экспорт").Cells(1, 10).Value

End Sub
[/vba]


Сообщение отредактировал Savra - Вторник, 21.10.2014, 16:34
 
Ответить
Сообщение
Теперь если значение в ячейке появилось попробуем присвоить это значение переменной.

Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"
If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Export
End Sub
Sub Export()
Dim Number As Long
Number=""
If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Number = Sheets("Экспорт").Cells(1, 10).Value
End Sub


не так немного...
вот так
[vba]
Код
Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"

If Sheets("Экспорт").Cells(1, 10) <> Empty Then Export

End Sub

Sub Export()
Dim Number As Long
Number=""
If Sheets("Экспорт").Cells(1, 10).Value <> "" Then Number = Sheets("Экспорт").Cells(1, 10).Value

End Sub
[/vba]

Автор - Savra
Дата добавления - 21.10.2014 в 16:26
Savra Дата: Среда, 22.10.2014, 12:07 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Теперь проверяем на совпадение переменной, со списком на втором листе (то есть чтобы не было совпадения записей на втором листе)

И если совпадений нет, то первая строка из первого листа, добавляется на второй лист в конец списка, и она же удаляется с первого листа.

Если совпадение есть(то есть такая же запись присутствует на втором листе), то строка с этой записью просто удаляется с первого листа.

И так по всем строка присутствующим(или появляющимся) на первом листе.

Скрипт работает с промежутками 10 секунд. Проверка на совпадении происходит по значению в колонке "Номер"

[vba]
Код
Option Explicit

Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"

If Sheets("Экспорт").Cells(1, 10) <> Empty Then Export

End Sub

Sub Export()
Dim Number As Long

If Sheets("Экспорт").Cells(1, 10) <> Empty Then
Number = Sheets("Экспорт").Cells(1, 10).Value

If Sheets("Таблица сделок").Columns("K:K").Find(Number) Is Nothing Then

  With Worksheets("Экспорт")
  .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Copy
  End With
   
  With Worksheets("Таблица сделок")
  .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
  End With
   
  Application.CutCopyMode = False

  Sheets("Экспорт").Rows(1).Delete

Else
Sheets("Экспорт").Rows(1).Delete

End If

Else

End If
End Sub
[/vba]


Сообщение отредактировал Savra - Среда, 22.10.2014, 12:11
 
Ответить
СообщениеТеперь проверяем на совпадение переменной, со списком на втором листе (то есть чтобы не было совпадения записей на втором листе)

И если совпадений нет, то первая строка из первого листа, добавляется на второй лист в конец списка, и она же удаляется с первого листа.

Если совпадение есть(то есть такая же запись присутствует на втором листе), то строка с этой записью просто удаляется с первого листа.

И так по всем строка присутствующим(или появляющимся) на первом листе.

Скрипт работает с промежутками 10 секунд. Проверка на совпадении происходит по значению в колонке "Номер"

[vba]
Код
Option Explicit

Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"

If Sheets("Экспорт").Cells(1, 10) <> Empty Then Export

End Sub

Sub Export()
Dim Number As Long

If Sheets("Экспорт").Cells(1, 10) <> Empty Then
Number = Sheets("Экспорт").Cells(1, 10).Value

If Sheets("Таблица сделок").Columns("K:K").Find(Number) Is Nothing Then

  With Worksheets("Экспорт")
  .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Copy
  End With
   
  With Worksheets("Таблица сделок")
  .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
  End With
   
  Application.CutCopyMode = False

  Sheets("Экспорт").Rows(1).Delete

Else
Sheets("Экспорт").Rows(1).Delete

End If

Else

End If
End Sub
[/vba]

Автор - Savra
Дата добавления - 22.10.2014 в 12:07
Savra Дата: Среда, 22.10.2014, 12:14 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Теперь чтобы макрос автоматически запускался при программном открытии файла
добавляем запись в модуль "ЭтаКнига"

[vba]
Код
Private Sub Workbook_Open()
Poisk

End Sub
[/vba]
 
Ответить
СообщениеТеперь чтобы макрос автоматически запускался при программном открытии файла
добавляем запись в модуль "ЭтаКнига"

[vba]
Код
Private Sub Workbook_Open()
Poisk

End Sub
[/vba]

Автор - Savra
Дата добавления - 22.10.2014 в 12:14
Savra Дата: Среда, 22.10.2014, 12:17 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Вот предварительный, рабочий файл. Может кто, заметит ошибки, или как оптимизировать код. Подскажите пожалуйста
К сообщению приложен файл: Balans.rar (30.6 Kb)
 
Ответить
СообщениеВот предварительный, рабочий файл. Может кто, заметит ошибки, или как оптимизировать код. Подскажите пожалуйста

Автор - Savra
Дата добавления - 22.10.2014 в 12:17
Savra Дата: Четверг, 23.10.2014, 12:46 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Добрый день.
Подскажите пожалуйста. Как прикрутить код для резервного копирования данных в log.txt
[vba]
Код
Option Explicit

Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"
If Sheets("Экспорт").Cells(1, 10) <> Empty Then Export
End Sub

Sub Export()
Dim Number As Long
If Sheets("Экспорт").Cells(1, 10) <> Empty Then
      Number = Sheets("Экспорт").Cells(1, 10).Value
If Sheets("Таблица сделок").Columns("K:K").Find(Number) Is Nothing Then
With Worksheets("Экспорт")
.Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Copy
End With
With Worksheets("Таблица сделок")
.Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
End With
    ' + Копировать в balans_log.txt
Application.CutCopyMode = False
Sheets("Экспорт").Rows(1).Delete
Else
Sheets("Экспорт").Rows(1).Delete
End If
Else
End If
End Sub
[/vba]


Сообщение отредактировал Savra - Четверг, 23.10.2014, 12:48
 
Ответить
СообщениеДобрый день.
Подскажите пожалуйста. Как прикрутить код для резервного копирования данных в log.txt
[vba]
Код
Option Explicit

Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"
If Sheets("Экспорт").Cells(1, 10) <> Empty Then Export
End Sub

Sub Export()
Dim Number As Long
If Sheets("Экспорт").Cells(1, 10) <> Empty Then
      Number = Sheets("Экспорт").Cells(1, 10).Value
If Sheets("Таблица сделок").Columns("K:K").Find(Number) Is Nothing Then
With Worksheets("Экспорт")
.Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Copy
End With
With Worksheets("Таблица сделок")
.Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
End With
    ' + Копировать в balans_log.txt
Application.CutCopyMode = False
Sheets("Экспорт").Rows(1).Delete
Else
Sheets("Экспорт").Rows(1).Delete
End If
Else
End If
End Sub
[/vba]

Автор - Savra
Дата добавления - 23.10.2014 в 12:46
Savra Дата: Воскресенье, 09.11.2014, 17:46 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Ну вот, вопрос разрешился. Нужно только создать соответствующий текстовый файл, в соответствующем месте.
[vba]
Код
Option Explicit

Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"
If Sheets("Экспорт").Cells(1, 10) <> Empty Then Export
     End Sub
Sub Export()
Dim Number As Long, i
If Sheets("Экспорт").Cells(1, 10) <> Empty Then
Number = Sheets("Экспорт").Cells(1, 10).Value
If Sheets("Таблица сделок").Columns("K:K").Find(Number) Is Nothing Then
       With Worksheets("Экспорт")
        .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Copy
        With .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft))
                           .Copy
                           Open "C:\1_My_Files_\TradeSystem\balans_log.txt" For Append As #1  ' тут путь и имя файла лога
                           For i = 1 To .Columns.Count
                     Print #1, .Cells(1, i) & vbTab;
                           Next i
                           Print #1, ""
                           Close #1
                      End With
        End With            
        With Worksheets("Таблица сделок")
        .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
        End With
               
        Application.CutCopyMode = False

        Sheets("Экспорт").Rows(1).Delete
Else
Sheets("Экспорт").Rows(1).Delete
End If
Else
End If
End Sub
[/vba]

ну и предварительный рабочий файл.....
К сообщению приложен файл: 6391216.rar (30.8 Kb)


Сообщение отредактировал Savra - Воскресенье, 09.11.2014, 18:26
 
Ответить
СообщениеНу вот, вопрос разрешился. Нужно только создать соответствующий текстовый файл, в соответствующем месте.
[vba]
Код
Option Explicit

Sub Poisk()
Application.OnTime Now + TimeSerial(0, 0, 10), "Poisk"
If Sheets("Экспорт").Cells(1, 10) <> Empty Then Export
     End Sub
Sub Export()
Dim Number As Long, i
If Sheets("Экспорт").Cells(1, 10) <> Empty Then
Number = Sheets("Экспорт").Cells(1, 10).Value
If Sheets("Таблица сделок").Columns("K:K").Find(Number) Is Nothing Then
       With Worksheets("Экспорт")
        .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Copy
        With .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft))
                           .Copy
                           Open "C:\1_My_Files_\TradeSystem\balans_log.txt" For Append As #1  ' тут путь и имя файла лога
                           For i = 1 To .Columns.Count
                     Print #1, .Cells(1, i) & vbTab;
                           Next i
                           Print #1, ""
                           Close #1
                      End With
        End With            
        With Worksheets("Таблица сделок")
        .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
        End With
               
        Application.CutCopyMode = False

        Sheets("Экспорт").Rows(1).Delete
Else
Sheets("Экспорт").Rows(1).Delete
End If
Else
End If
End Sub
[/vba]

ну и предварительный рабочий файл.....

Автор - Savra
Дата добавления - 09.11.2014 в 17:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавление данных из одного листа в другой с накоплением (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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