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

Вход

Регистрация

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

 

= Мир MS Excel/Автосохранение построчно с выбором строк. - Мир MS Excel

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

Excel 2010
Здравствуйте Подскажите какой нибудь макрос для Exel10 чтобы как только заполнялись строки скажем 30 автоматически сохранялся фаил с датой . (Желательно чтобы можно было выставлять число 10,11,12 и т.д. на какой строке сохранять ). Зарание благодарен.
[moder]Причем здесь сводные таблицы?
И нужен файл-пример и более конкретное описание процесса.


Сообщение отредактировал _Boroda_ - Четверг, 07.01.2016, 15:14
 
Ответить
СообщениеЗдравствуйте Подскажите какой нибудь макрос для Exel10 чтобы как только заполнялись строки скажем 30 автоматически сохранялся фаил с датой . (Желательно чтобы можно было выставлять число 10,11,12 и т.д. на какой строке сохранять ). Зарание благодарен.
[moder]Причем здесь сводные таблицы?
И нужен файл-пример и более конкретное описание процесса.

Автор - DenisR
Дата добавления - 07.01.2016 в 14:52
mathiax90 Дата: Четверг, 07.01.2016, 18:08 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 198
Репутация: 24 ±
Замечаний: 0% ±

Excel 2007
Проявлю свои экстрасенсорные способности, а вы скажите "попал в цель" или нет.
Файл во вложении.
Макрос можете посмотреть в коде самой книги.
Я ориентируюсь на событие Workbook_SheetChange.

Вот код для интересующихся:
[vba]
Код
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)

Dim LastRow As Long

'указывает кратность строки
Dim rwNum As Long

'операция производиться при заполнении каждой 15 строк
rwNum = 15

If sh.Name = "Лист1" Then
    LastRow = sh.UsedRange.Row + sh.UsedRange.Rows.Count - 1
    LastChangedRow = Target.Row
    'изменена последняя ячейка?
    If LastChangedRow >= LastRow Then
        'изменена новая ячейка (ниже последней), проверим требуется ли сохранение
        If LastRow Mod rwNum = 0 Then
            Application.DisplayAlerts = False
            ThisWorkbook.SaveCopyAs (ThisWorkbook.Path & "\" & rwNum & "_" & ThisWorkbook.Name)
            Application.DisplayAlerts = True
        End If
    End If
End If
End Sub
[/vba]
Плюс в репу приветствуется
[moder]Прочтение Правил форума приветствуется также. 3-е замечание.
К сообщению приложен файл: 20160107.xlsm (18.2 Kb)


webmoney: R242692021885
ЯД:410013877261817


Сообщение отредактировал _Boroda_ - Четверг, 07.01.2016, 18:28
 
Ответить
СообщениеПроявлю свои экстрасенсорные способности, а вы скажите "попал в цель" или нет.
Файл во вложении.
Макрос можете посмотреть в коде самой книги.
Я ориентируюсь на событие Workbook_SheetChange.

Вот код для интересующихся:
[vba]
Код
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)

Dim LastRow As Long

'указывает кратность строки
Dim rwNum As Long

'операция производиться при заполнении каждой 15 строк
rwNum = 15

If sh.Name = "Лист1" Then
    LastRow = sh.UsedRange.Row + sh.UsedRange.Rows.Count - 1
    LastChangedRow = Target.Row
    'изменена последняя ячейка?
    If LastChangedRow >= LastRow Then
        'изменена новая ячейка (ниже последней), проверим требуется ли сохранение
        If LastRow Mod rwNum = 0 Then
            Application.DisplayAlerts = False
            ThisWorkbook.SaveCopyAs (ThisWorkbook.Path & "\" & rwNum & "_" & ThisWorkbook.Name)
            Application.DisplayAlerts = True
        End If
    End If
End If
End Sub
[/vba]
Плюс в репу приветствуется
[moder]Прочтение Правил форума приветствуется также. 3-е замечание.

Автор - mathiax90
Дата добавления - 07.01.2016 в 18:08
DenisR Дата: Четверг, 07.01.2016, 19:12 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Спасибо что ответили .
Выполняю условия модератора Сначала извиняюсь что попал не в ту ветку(сводные таблицы)
Прикрепляю фаил.
К сообщению приложен файл: 123.xlsm (40.1 Kb)
 
Ответить
СообщениеСпасибо что ответили .
Выполняю условия модератора Сначала извиняюсь что попал не в ту ветку(сводные таблицы)
Прикрепляю фаил.

Автор - DenisR
Дата добавления - 07.01.2016 в 19:12
DenisR Дата: Четверг, 07.01.2016, 19:16 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Значит условия такие с контроллера летят данные в EXCEL с переодичностью (какую я могу сделать каждую минуту каждый час неделю и т.д.) данные выстраиваются в колонку номер 2 и только заполняют строки так вот когда достигнет скажем 30 строчки должно быть авто сохранение с числом месяцем ну и годом если можно.
 
Ответить
СообщениеЗначит условия такие с контроллера летят данные в EXCEL с переодичностью (какую я могу сделать каждую минуту каждый час неделю и т.д.) данные выстраиваются в колонку номер 2 и только заполняют строки так вот когда достигнет скажем 30 строчки должно быть авто сохранение с числом месяцем ну и годом если можно.

Автор - DenisR
Дата добавления - 07.01.2016 в 19:16
DenisR Дата: Четверг, 07.01.2016, 19:19 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
mathiax90
Спасибо что попробовали и думаю вы не плохой экстрасенс просто я наверное не очень хороший пользователь EXCELа я не понял где ложатся сохранения если не сложно то просто сделайте чтоб скажем на диск С: в корень.
 
Ответить
Сообщениеmathiax90
Спасибо что попробовали и думаю вы не плохой экстрасенс просто я наверное не очень хороший пользователь EXCELа я не понял где ложатся сохранения если не сложно то просто сделайте чтоб скажем на диск С: в корень.

Автор - DenisR
Дата добавления - 07.01.2016 в 19:19
mathiax90 Дата: Пятница, 08.01.2016, 06:35 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 198
Репутация: 24 ±
Замечаний: 0% ±

Excel 2007
Сохранения ложатся в ту же папку с новым именем
На 15 строке документ сохраниться 15_имя_исходного_файла
на 30_имя_исходного файла
...


webmoney: R242692021885
ЯД:410013877261817
 
Ответить
СообщениеСохранения ложатся в ту же папку с новым именем
На 15 строке документ сохраниться 15_имя_исходного_файла
на 30_имя_исходного файла
...

Автор - mathiax90
Дата добавления - 08.01.2016 в 06:35
mathiax90 Дата: Пятница, 08.01.2016, 06:39 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 198
Репутация: 24 ±
Замечаний: 0% ±

Excel 2007
Но этот вариант работает только при ручном изменении файла.
Если при работе вашего контроллера события вызываются (т.е. контроллер "эмулирует" ручную работу в файле эксель), то макрос будет работать.
Иначе - нет.


webmoney: R242692021885
ЯД:410013877261817
 
Ответить
СообщениеНо этот вариант работает только при ручном изменении файла.
Если при работе вашего контроллера события вызываются (т.е. контроллер "эмулирует" ручную работу в файле эксель), то макрос будет работать.
Иначе - нет.

Автор - mathiax90
Дата добавления - 08.01.2016 в 06:39
DenisR Дата: Пятница, 08.01.2016, 19:11 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
mathiax90[/b]
Все хорошо только есть один нюанс после того как прошли скажем 15 строк она сохраняет все окей , но если снова начать с 1 строки то она сохраняет в тот же фаил . Я бы хотел чтобы напечатал 15 строк он сохранил со временем (время день месяц ) затем я сам все убераю все 15 строк и начинаю с первой печатать и как только дохожу до 15 он опять сохраняет в другой фаил. А так мне пока нравится. Большое спасибо. Сделайте дополнения если не сложно. :(
 
Ответить
Сообщениеmathiax90[/b]
Все хорошо только есть один нюанс после того как прошли скажем 15 строк она сохраняет все окей , но если снова начать с 1 строки то она сохраняет в тот же фаил . Я бы хотел чтобы напечатал 15 строк он сохранил со временем (время день месяц ) затем я сам все убераю все 15 строк и начинаю с первой печатать и как только дохожу до 15 он опять сохраняет в другой фаил. А так мне пока нравится. Большое спасибо. Сделайте дополнения если не сложно. :(

Автор - DenisR
Дата добавления - 08.01.2016 в 19:11
mathiax90 Дата: Суббота, 09.01.2016, 11:09 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 198
Репутация: 24 ±
Замечаний: 0% ±

Excel 2007
Попробуйте
К сообщению приложен файл: 15_20160107.xlsm (18.9 Kb)


webmoney: R242692021885
ЯД:410013877261817
 
Ответить
СообщениеПопробуйте

Автор - mathiax90
Дата добавления - 09.01.2016 в 11:09
mathiax90 Дата: Суббота, 09.01.2016, 11:11 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 198
Репутация: 24 ±
Замечаний: 0% ±

Excel 2007
Рекомендую такой формат даты и времени, т.к. он упрощает сортировку файлов.


webmoney: R242692021885
ЯД:410013877261817
 
Ответить
СообщениеРекомендую такой формат даты и времени, т.к. он упрощает сортировку файлов.

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

2010
mathiax90,
[vba]
Код
aa = Format(Now, "yyyy-mm-dd hh-nn")
[/vba]
Не проще?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениеmathiax90,
[vba]
Код
aa = Format(Now, "yyyy-mm-dd hh-nn")
[/vba]
Не проще?

Автор - RAN
Дата добавления - 09.01.2016 в 11:22
DenisR Дата: Суббота, 09.01.2016, 12:33 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Большое спасибо все кто ответил особенно mathiax90 возникла другая проблема похоже с контроллера как то непонятно работает очистка страницы. Объясняю как только строки заполняются данными до 15 ваш макрос сохраняет один раз затем у меня летит команда с контроллера очистить столбцы они очищаются я это вижу а похоже макрос это не видит и следующее заполнение строк он не сохраняет. Просьба такая можно ли сделать чтобы макрос скажем на 15 сохранял и сразу очищал строки так должно я думаю получится. Заранее большое спасибо.
 
Ответить
СообщениеБольшое спасибо все кто ответил особенно mathiax90 возникла другая проблема похоже с контроллера как то непонятно работает очистка страницы. Объясняю как только строки заполняются данными до 15 ваш макрос сохраняет один раз затем у меня летит команда с контроллера очистить столбцы они очищаются я это вижу а похоже макрос это не видит и следующее заполнение строк он не сохраняет. Просьба такая можно ли сделать чтобы макрос скажем на 15 сохранял и сразу очищал строки так должно я думаю получится. Заранее большое спасибо.

Автор - DenisR
Дата добавления - 09.01.2016 в 12:33
mathiax90 Дата: Суббота, 09.01.2016, 13:39 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 198
Репутация: 24 ±
Замечаний: 0% ±

Excel 2007
mathiax90,

aa = Format(Now, "yyyy-mm-dd hh-nn")

Не проще?

Проще. Спсибо! Буду иметь ввиду.


webmoney: R242692021885
ЯД:410013877261817
 
Ответить
Сообщение
mathiax90,

aa = Format(Now, "yyyy-mm-dd hh-nn")

Не проще?

Проще. Спсибо! Буду иметь ввиду.

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

2010
После сохранения
[vba]
Код
sh.UsedRange.Clear
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПосле сохранения
[vba]
Код
sh.UsedRange.Clear
[/vba]

Автор - RAN
Дата добавления - 09.01.2016 в 13:50
DenisR Дата: Суббота, 09.01.2016, 14:56 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
RANБольшое спасибо все работает только в нормальных условиях Excela доходит до нужной строки сохраняет потом все очищает вобщем работает как надо. Но с моим контроллером не хочет похоже программа мешает . Наверное надо было сразу с нее начинать . В общем работает так запускаем программу Plx-daq она как макрос включаем контроллер и начинают идти данные в строчки . Я посмотрел в Visual Basic как она выглядит:
[vba]
Код
Private Sub Workbook_Open()
frmStampDAQ.Show
End Sub
[/vba]
Так как я не черта не понимаю в программировании то спрашиваю а можно ли сюда добавить фаил который сделал mathiax90
[moder]Код макроса нужно заворачивать в специальный тег - кнопка #. Об этом в Правилах форума есть. На первый раз попровил Вам.
К сообщению приложен файл: PLX-DAQ.xlsm (49.1 Kb)


Сообщение отредактировал _Boroda_ - Суббота, 09.01.2016, 19:51
 
Ответить
СообщениеRANБольшое спасибо все работает только в нормальных условиях Excela доходит до нужной строки сохраняет потом все очищает вобщем работает как надо. Но с моим контроллером не хочет похоже программа мешает . Наверное надо было сразу с нее начинать . В общем работает так запускаем программу Plx-daq она как макрос включаем контроллер и начинают идти данные в строчки . Я посмотрел в Visual Basic как она выглядит:
[vba]
Код
Private Sub Workbook_Open()
frmStampDAQ.Show
End Sub
[/vba]
Так как я не черта не понимаю в программировании то спрашиваю а можно ли сюда добавить фаил который сделал mathiax90
[moder]Код макроса нужно заворачивать в специальный тег - кнопка #. Об этом в Правилах форума есть. На первый раз попровил Вам.

Автор - DenisR
Дата добавления - 09.01.2016 в 14:56
RAN Дата: Суббота, 09.01.2016, 15:37 | Сообщение № 16
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Хотя вы и не соображаете в программировании, могли бы догадаться, что у нас ваш файл работать не будет.
Попробуйте в форме заменить код очистки на этот
[vba]
Код
Private Sub clearSheet()
        Worksheets(1).UsedRange.Offset(1).Clear
        txtStatus2.Caption = "Cells cleared"
        Row = 1
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеХотя вы и не соображаете в программировании, могли бы догадаться, что у нас ваш файл работать не будет.
Попробуйте в форме заменить код очистки на этот
[vba]
Код
Private Sub clearSheet()
        Worksheets(1).UsedRange.Offset(1).Clear
        txtStatus2.Caption = "Cells cleared"
        Row = 1
End Sub
[/vba]

Автор - RAN
Дата добавления - 09.01.2016 в 15:37
RAN Дата: Суббота, 09.01.2016, 15:45 | Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Интересный код!
[vba]
Код
'*   PLX-DAQ Data Acquisition for Excel              *
'*   Copyright 2007, Parallax Inc.                   *
'*   PLX-DAQ is a trademark of Parallax, Inc.        *
'*   www.parallax.com  
[/vba]
И такие перлы!
[vba]
Код
Dim Row
[/vba]
тип вариант для переменной счетчика
[vba]
Код
Range(Chr(64 + x) & CStr(1))
[/vba]
вообще чуть въехал :D
[vba]
Код
Worksheets(1).Range("A2:" & Chr(64 + (cc Mod 27)) & CStr(Row + 10)).Value = Null
[/vba]
против Null ничего не имею, но такое в Excel вижу впервые.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИнтересный код!
[vba]
Код
'*   PLX-DAQ Data Acquisition for Excel              *
'*   Copyright 2007, Parallax Inc.                   *
'*   PLX-DAQ is a trademark of Parallax, Inc.        *
'*   www.parallax.com  
[/vba]
И такие перлы!
[vba]
Код
Dim Row
[/vba]
тип вариант для переменной счетчика
[vba]
Код
Range(Chr(64 + x) & CStr(1))
[/vba]
вообще чуть въехал :D
[vba]
Код
Worksheets(1).Range("A2:" & Chr(64 + (cc Mod 27)) & CStr(Row + 10)).Value = Null
[/vba]
против Null ничего не имею, но такое в Excel вижу впервые.

Автор - RAN
Дата добавления - 09.01.2016 в 15:45
DenisR Дата: Суббота, 09.01.2016, 16:14 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
RAN Много уважаемый RAN Вы наверное гуру в программировании , а я простой пользователь так что сильно не пинайте не соизволите ли вставить код в фаил вам будет сподручнее и поправте время Вы говорили что так будет лучше (mathiax90, aa = Format(Now, "yyyy-mm-dd hh-nn")
К сообщению приложен файл: 8156500.xlsm (14.3 Kb)
 
Ответить
СообщениеRAN Много уважаемый RAN Вы наверное гуру в программировании , а я простой пользователь так что сильно не пинайте не соизволите ли вставить код в фаил вам будет сподручнее и поправте время Вы говорили что так будет лучше (mathiax90, aa = Format(Now, "yyyy-mm-dd hh-nn")

Автор - DenisR
Дата добавления - 09.01.2016 в 16:14
RAN Дата: Суббота, 09.01.2016, 17:48 | Сообщение № 19
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
не соизволите ли вставить код

Нет. Я уже писал, что у меня ваш файл не работает.
Исходя из №8, вы и сами вставить с усами.
В коде mathiax90 замените Format(Date,...) & Format(Time,....) на Format(Now...)
Найдите в коде вашей формы
[vba]
Код
Private Sub clearSheet()
[/vba]
и замените.

Вы наверное гуру в программировании , а я простой пользователь

Кто вам гурой стать мешает? Давайте его сюда, мы ему наваляем!


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 09.01.2016, 17:50
 
Ответить
Сообщение
не соизволите ли вставить код

Нет. Я уже писал, что у меня ваш файл не работает.
Исходя из №8, вы и сами вставить с усами.
В коде mathiax90 замените Format(Date,...) & Format(Time,....) на Format(Now...)
Найдите в коде вашей формы
[vba]
Код
Private Sub clearSheet()
[/vba]
и замените.

Вы наверное гуру в программировании , а я простой пользователь

Кто вам гурой стать мешает? Давайте его сюда, мы ему наваляем!

Автор - RAN
Дата добавления - 09.01.2016 в 17:48
DenisR Дата: Суббота, 09.01.2016, 20:29 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Долго сидел изучал и пришел к такому выводу я думал что у меня программа которая принимает данные с контроллера сама по себе и не в макросах не Visual Basice посмотреть код не получается
Найдите в коде вашей формы
Private Sub clearSheet()
Заметил такое макрос написанный mathiax90 работает один раз сохранил и все просьба такая как в фаил ниже вставить код запуска снова макроса заново после как он сделает сохранение.
К сообщению приложен файл: 9149437.xlsm (15.9 Kb)
 
Ответить
СообщениеДолго сидел изучал и пришел к такому выводу я думал что у меня программа которая принимает данные с контроллера сама по себе и не в макросах не Visual Basice посмотреть код не получается
Найдите в коде вашей формы
Private Sub clearSheet()
Заметил такое макрос написанный mathiax90 работает один раз сохранил и все просьба такая как в фаил ниже вставить код запуска снова макроса заново после как он сделает сохранение.

Автор - DenisR
Дата добавления - 09.01.2016 в 20:29
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автосохранение построчно с выбором строк. (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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