Здравствуйте! Подскажите пожалуйста. Возможно ли реализовать такую задачу. Допустим на одном листе мы имеем какие то данные в течении дня. И имеем сводную таблиц по таким же данным с формулами на другом листе.
Необходимо накопленные данные в конце дня перенести в другой лист, то есть добавить к уже существующим данным за другие дни.
Если тут есть подобные темы ткните пожалуйста кто сталкивался. За ранее благодарю. [moder]Читайте правила форума. Прикладывайте пример файла.
Здравствуйте! Подскажите пожалуйста. Возможно ли реализовать такую задачу. Допустим на одном листе мы имеем какие то данные в течении дня. И имеем сводную таблиц по таким же данным с формулами на другом листе.
Необходимо накопленные данные в конце дня перенести в другой лист, то есть добавить к уже существующим данным за другие дни.
Если тут есть подобные темы ткните пожалуйста кто сталкивался. За ранее благодарю. [moder]Читайте правила форума. Прикладывайте пример файла.Savra
интересно бы узнать как вы это сделали. Интересуюсь, так немного, экселем. Вот применять макросы не приходилось еще. Может быть вы подскажете на "пальцах" (или посоветуете какой нить учебник для чайников), возможно в дальнейшем надо усовершенствовать таблицу.(разбивать по дням с выводом итогов по дням, чтобы можно было прикрутить график доходности)
И еще вопросик, я так понял кнопка копирует данные с первого листа на другой, а можно сделать чтобы вырезало данные.(потому как при работе експорта, на другой день данные пишутся поверх предыдуших и возможно что могут оставаться данные с прошлого дня если их было больше чем переписаных ....както так, если будет понятно За ранее благодарю, спасибо еще раз
добавлено: вроде, там у вас в макросе увидел на счет "вырезать"
добавлено: попробовал в макросе поменять на вырезать, вырезает и вставляет нормально, но на втором листе, куда вставляются данные , ломаются формулы что можно сделать?
добавлено: при копировании все "ровно", может быть добавить еще команду в макрос, чтобы после копирования удалялись данные с первого листа?
интересно бы узнать как вы это сделали. Интересуюсь, так немного, экселем. Вот применять макросы не приходилось еще. Может быть вы подскажете на "пальцах" (или посоветуете какой нить учебник для чайников), возможно в дальнейшем надо усовершенствовать таблицу.(разбивать по дням с выводом итогов по дням, чтобы можно было прикрутить график доходности)
И еще вопросик, я так понял кнопка копирует данные с первого листа на другой, а можно сделать чтобы вырезало данные.(потому как при работе експорта, на другой день данные пишутся поверх предыдуших и возможно что могут оставаться данные с прошлого дня если их было больше чем переписаных ....както так, если будет понятно За ранее благодарю, спасибо еще раз
добавлено: вроде, там у вас в макросе увидел на счет "вырезать"
добавлено: попробовал в макросе поменять на вырезать, вырезает и вставляет нормально, но на втором листе, куда вставляются данные , ломаются формулы что можно сделать?
добавлено: при копировании все "ровно", может быть добавить еще команду в макрос, чтобы после копирования удалялись данные с первого листа?Savra
Сообщение отредактировал Savra - Пятница, 17.10.2014, 19:16
Добрый день! Rustem, а можно реализовать такую задачу?. так сказать, такая логическая заготовка. (не знаю, в этой теме задавать такой вопрос или начать новую тему с другим названием для поиска?)
например, чтобы макрос работал непрерывно или включался, выключался вручную.
и как только появляется запись на первом листе, происходит проверка значения из колонки "Номер", и если на втором листе в колонке "Номер" нет такого же значения, то запись добавляется к списку на втором листе, а на первом эта же запись удаляется (если новая запись на первом листе не попадает под это условие, то есть номер такой же уже есть на втором листе, то эта запись на первом листе тоже удаляется)
(Если вдруг одновременно появляется несколько записей, то наверно поочередно проверяются переносятся(удаляются строки) не знаю как это критично для, скрипта)
и макрос опять в ожидании появления новой записи на первом листе.(не знаю, наверно тайминг для проверки не слишком короткий, раз в секунду например?)
за ранее очень благодарю, извиняюсь за наглость, но может быть другим тоже пригодится
Добрый день! Rustem, а можно реализовать такую задачу?. так сказать, такая логическая заготовка. (не знаю, в этой теме задавать такой вопрос или начать новую тему с другим названием для поиска?)
например, чтобы макрос работал непрерывно или включался, выключался вручную.
и как только появляется запись на первом листе, происходит проверка значения из колонки "Номер", и если на втором листе в колонке "Номер" нет такого же значения, то запись добавляется к списку на втором листе, а на первом эта же запись удаляется (если новая запись на первом листе не попадает под это условие, то есть номер такой же уже есть на втором листе, то эта запись на первом листе тоже удаляется)
(Если вдруг одновременно появляется несколько записей, то наверно поочередно проверяются переносятся(удаляются строки) не знаю как это критично для, скрипта)
и макрос опять в ожидании появления новой записи на первом листе.(не знаю, наверно тайминг для проверки не слишком короткий, раз в секунду например?)
за ранее очень благодарю, извиняюсь за наглость, но может быть другим тоже пригодитсяSavra
Сообщение отредактировал Savra - Воскресенье, 19.10.2014, 12: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
Теперь если значение в ячейке появилось попробуем присвоить это значение переменной.
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
Добрый день. Подскажите пожалуйста. Как прикрутить код для резервного копирования данных в 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]
Добрый день. Подскажите пожалуйста. Как прикрутить код для резервного копирования данных в 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]
Код
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]
ну и предварительный рабочий файл.....
Ну вот, вопрос разрешился. Нужно только создать соответствующий текстовый файл, в соответствующем месте. [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