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

Вход

Регистрация

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

 

= Мир MS Excel/Форма по созданию резервных копий книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Форма по созданию резервных копий книги (Макросы/Sub)
Форма по созданию резервных копий книги
Otter Дата: Воскресенье, 31.05.2015, 12:10 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Доброго здоровья всем или Здравствуйте.

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

1 Из модуля все убрать (при необходимости) в форму, чтобы она работала без модуля Module_SaveBook
2 Заменить "Использовать BAK расширение" на "Использовать формат Name yy-mm-dd hh-mm"
Соответственно путь сохранения копии должен сохранятся посде выбора папки как и сейчас
Код для сохранения в формате "Name yy-mm-dd hh-mm" прилагаю ниже.

[vba]
Код
Private Sub CommandButton5_Click()
        'Резервное копирование с датой и временем копирования в папку D:/BACUP
            Dim x As String
        Dim strDate, strPath, BookName, bookextension, j, FileNameXls 'объявили переменные
            
        strPath = " D:\BACUP"     'папка для сохранения резервной копии
            If Err = 0 Then ' если путь существует - сохраняем копию книги, добавляя дату-время
            strDate = Format(Now, "yy-mm-dd hh-mm")
                 'WorkbookName()
                    BookName = ActiveWorkbook.Name
            'задаем расширение по умолчанию если файл еще ни разу не сохранялся
            If Application.Version = "12.0" Or Application.Version = "14.0" Then
                bookextension = "xlsx"
            Else
                bookextension = "xls"
            End If
            'вытаскиваем настоящее расширение
            For j = Len(BookName) To 1 Step -1
                If Mid(BookName, j, 1) = "." Then
                    bookextension = Right(BookName, Len(BookName) - j)
                    BookName = Left(BookName, j - 1)
                    Exit For
                End If
            Next j
            'сохраняем резервную копию
            FileNameXls = strPath & "\" & BookName & " " & strDate & "." & bookextension
            ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
            MsgBox "Создана копия файла  " & BookName & " " & strDate & " в папку " & strPath
        Else 'если путь не существует - выводим сообщение
            MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical
        End If
End Sub
[/vba]

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

P.S. Все вопросы для одной темы. Если модератор скажет готов создать еще две темы по второму и третьему вопросу. А есть ли смысл?
Заранее Спасибо всем кто поможет.
К сообщению приложен файл: 19_.xlsm (32.1 Kb) · 9904847.jpg (33.8 Kb)


Сообщение отредактировал Otter - Воскресенье, 31.05.2015, 12:24
 
Ответить
СообщениеДоброго здоровья всем или Здравствуйте.

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

1 Из модуля все убрать (при необходимости) в форму, чтобы она работала без модуля Module_SaveBook
2 Заменить "Использовать BAK расширение" на "Использовать формат Name yy-mm-dd hh-mm"
Соответственно путь сохранения копии должен сохранятся посде выбора папки как и сейчас
Код для сохранения в формате "Name yy-mm-dd hh-mm" прилагаю ниже.

[vba]
Код
Private Sub CommandButton5_Click()
        'Резервное копирование с датой и временем копирования в папку D:/BACUP
            Dim x As String
        Dim strDate, strPath, BookName, bookextension, j, FileNameXls 'объявили переменные
            
        strPath = " D:\BACUP"     'папка для сохранения резервной копии
            If Err = 0 Then ' если путь существует - сохраняем копию книги, добавляя дату-время
            strDate = Format(Now, "yy-mm-dd hh-mm")
                 'WorkbookName()
                    BookName = ActiveWorkbook.Name
            'задаем расширение по умолчанию если файл еще ни разу не сохранялся
            If Application.Version = "12.0" Or Application.Version = "14.0" Then
                bookextension = "xlsx"
            Else
                bookextension = "xls"
            End If
            'вытаскиваем настоящее расширение
            For j = Len(BookName) To 1 Step -1
                If Mid(BookName, j, 1) = "." Then
                    bookextension = Right(BookName, Len(BookName) - j)
                    BookName = Left(BookName, j - 1)
                    Exit For
                End If
            Next j
            'сохраняем резервную копию
            FileNameXls = strPath & "\" & BookName & " " & strDate & "." & bookextension
            ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
            MsgBox "Создана копия файла  " & BookName & " " & strDate & " в папку " & strPath
        Else 'если путь не существует - выводим сообщение
            MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical
        End If
End Sub
[/vba]

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

P.S. Все вопросы для одной темы. Если модератор скажет готов создать еще две темы по второму и третьему вопросу. А есть ли смысл?
Заранее Спасибо всем кто поможет.

Автор - Otter
Дата добавления - 31.05.2015 в 12:10
AndreTM Дата: Воскресенье, 31.05.2015, 14:39 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Без общего модуля где-нибудь (в рабочей книге, в персональной книге), где определяются пользовательские классы и типы - все равно не обойтись, потому что в локальных модулях (листов, форм) - глобальные типы не определить :)
Для таких возможностей (я так понимаю, что вы хотите сделать свой бэкапинг глобальным для любых файлов Excel у себя на компе) как раз и используются предусмотренные механизмы - персональные книги, надстройки...
И совершенно необязательно использовать системные функции... а также писать данные в реестр Windows :)
Вы бы все же рассказали, что за систему предполагаете сделать. Вернее, что это у вас за бэкапинг. А то, может, всё намного проще делается, чем вы придумали.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеБез общего модуля где-нибудь (в рабочей книге, в персональной книге), где определяются пользовательские классы и типы - все равно не обойтись, потому что в локальных модулях (листов, форм) - глобальные типы не определить :)
Для таких возможностей (я так понимаю, что вы хотите сделать свой бэкапинг глобальным для любых файлов Excel у себя на компе) как раз и используются предусмотренные механизмы - персональные книги, надстройки...
И совершенно необязательно использовать системные функции... а также писать данные в реестр Windows :)
Вы бы все же рассказали, что за систему предполагаете сделать. Вернее, что это у вас за бэкапинг. А то, может, всё намного проще делается, чем вы придумали.

Автор - AndreTM
Дата добавления - 31.05.2015 в 14:39
KSV Дата: Воскресенье, 31.05.2015, 14:50 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
см. вложенный файл.
[p.s.]Otter, а что мешало вам самому это сделать? Ведь у вас для этого все было...[/p.s.]
К сообщению приложен файл: 4037737.xlsm (32.2 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениесм. вложенный файл.
[p.s.]Otter, а что мешало вам самому это сделать? Ведь у вас для этого все было...[/p.s.]

Автор - KSV
Дата добавления - 31.05.2015 в 14:50
KSV Дата: Воскресенье, 31.05.2015, 14:52 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Вы бы все же рассказали, что за систему предполагаете сделать. А то, может, всё намного проще делается

Абсолютно точно! Там "половина" лишнего... :)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
Вы бы все же рассказали, что за систему предполагаете сделать. А то, может, всё намного проще делается

Абсолютно точно! Там "половина" лишнего... :)

Автор - KSV
Дата добавления - 31.05.2015 в 14:52
Otter Дата: Воскресенье, 31.05.2015, 15:05 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Да обычный бекап. Сделал работающую версию файла в процессе доработки и делаю промежуточный бекап, чтобы продвинуться дальше и иметь более свежую сохраненку.
Форма не моя просто под себя решил доделать. А код который выложил работает, только хотелось его доработать в выборе папки для сохранения..

Ну а насчет проще думаю так:
Автоматом в папке откуда запущен, сохраняемый файл (Книга) создается папка "Имя файла_bekup" и в нее сохраняются в будущем файлы в формате Имя файла_yy-mm-dd hh-mm. Тогда самое оно будет. Никаких заморочек с окнами и формами. Нажал кнопку и получаешь сообщение Имя файла_yy-mm-dd hh-mm создан в папке: полный путь к папке.
Как то так надо.

Цитата
Там "половина" лишнего..
Согласен. Как начинаю удалять так сразу перестает работать форма.


Сообщение отредактировал Otter - Воскресенье, 31.05.2015, 15:09
 
Ответить
СообщениеДа обычный бекап. Сделал работающую версию файла в процессе доработки и делаю промежуточный бекап, чтобы продвинуться дальше и иметь более свежую сохраненку.
Форма не моя просто под себя решил доделать. А код который выложил работает, только хотелось его доработать в выборе папки для сохранения..

Ну а насчет проще думаю так:
Автоматом в папке откуда запущен, сохраняемый файл (Книга) создается папка "Имя файла_bekup" и в нее сохраняются в будущем файлы в формате Имя файла_yy-mm-dd hh-mm. Тогда самое оно будет. Никаких заморочек с окнами и формами. Нажал кнопку и получаешь сообщение Имя файла_yy-mm-dd hh-mm создан в папке: полный путь к папке.
Как то так надо.

Цитата
Там "половина" лишнего..
Согласен. Как начинаю удалять так сразу перестает работать форма.

Автор - Otter
Дата добавления - 31.05.2015 в 15:05
Otter Дата: Воскресенье, 31.05.2015, 15:20 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Цитата
Otter, а что мешало вам самому это сделать? Ведь у вас для этого все было...
Я же написал ума не хватает пока. Поверьте несколько часов возился с формой пока надеялся ее запустить. Вроде и код небольшой...

KSV Спасибо за помощь. Ваш вариант работает, только:
1 расширение файла некорректно делает. Когда делает сохраненку расширение xlsx, а должно быть как у файла родителя т.е. xlsm
2 если отжать кнопку "Использовать формат Name yy-mm-dd hh-mm", чтобы сохранить файл с произвольным именем, то сохранение не происходит. Получаем ошибку.

AndreTM на Ваше
Цитата
Без общего модуля где-нибудь (в рабочей книге, в персональной книге), где определяются пользовательские классы и типы - все равно не обойтись, потому что в локальных модулях (листов, форм) - глобальные типы не определить ...
Может Вы и правы только посмотрите на пример KSV он сделал без модуля как надо. Осталось совсем немного подправить.


Сообщение отредактировал Otter - Воскресенье, 31.05.2015, 15:50
 
Ответить
Сообщение
Цитата
Otter, а что мешало вам самому это сделать? Ведь у вас для этого все было...
Я же написал ума не хватает пока. Поверьте несколько часов возился с формой пока надеялся ее запустить. Вроде и код небольшой...

KSV Спасибо за помощь. Ваш вариант работает, только:
1 расширение файла некорректно делает. Когда делает сохраненку расширение xlsx, а должно быть как у файла родителя т.е. xlsm
2 если отжать кнопку "Использовать формат Name yy-mm-dd hh-mm", чтобы сохранить файл с произвольным именем, то сохранение не происходит. Получаем ошибку.

AndreTM на Ваше
Цитата
Без общего модуля где-нибудь (в рабочей книге, в персональной книге), где определяются пользовательские классы и типы - все равно не обойтись, потому что в локальных модулях (листов, форм) - глобальные типы не определить ...
Может Вы и правы только посмотрите на пример KSV он сделал без модуля как надо. Осталось совсем немного подправить.

Автор - Otter
Дата добавления - 31.05.2015 в 15:20
KSV Дата: Воскресенье, 31.05.2015, 15:53 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
1 расширение файла некорректно делает. Когда делает сохраненку расширение xlsx, а должно быть как у файла родителя т.е. xlsm

посмотрите в код, там написано, что если нужно сохранить расширение оригинального файла, то раскомментируйте 4 строчки.

если отжать кнопку "Использовать формат Name yy-mm-dd hh-mm", чтобы сохранить фал с произвольным именем

а что значит "с произвольным именем"?
если отжать кнопку "Использовать формат...", то оригинальный файл должен просто сохраняться в выбранной папке?

[p.s.]Только что проверил (раньше не проверял) - при неотмеченном чекбоксе копия сохраняется в выбранной папке.
А если пользователь выбирет ту же папку, где лежит оригинальный файл и при этом не отметит чекбокс, нужно "ругаться", чтобы он выбрал другую папку или молча сохранить ТОЛЬКО оригинальный файл?[/p.s.]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Воскресенье, 31.05.2015, 16:12
 
Ответить
Сообщение
1 расширение файла некорректно делает. Когда делает сохраненку расширение xlsx, а должно быть как у файла родителя т.е. xlsm

посмотрите в код, там написано, что если нужно сохранить расширение оригинального файла, то раскомментируйте 4 строчки.

если отжать кнопку "Использовать формат Name yy-mm-dd hh-mm", чтобы сохранить фал с произвольным именем

а что значит "с произвольным именем"?
если отжать кнопку "Использовать формат...", то оригинальный файл должен просто сохраняться в выбранной папке?

[p.s.]Только что проверил (раньше не проверял) - при неотмеченном чекбоксе копия сохраняется в выбранной папке.
А если пользователь выбирет ту же папку, где лежит оригинальный файл и при этом не отметит чекбокс, нужно "ругаться", чтобы он выбрал другую папку или молча сохранить ТОЛЬКО оригинальный файл?[/p.s.]

Автор - KSV
Дата добавления - 31.05.2015 в 15:53
KSV Дата: Воскресенье, 31.05.2015, 15:55 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Может Вы и правы

конечно, прав!
прочтите его объяснение:
потому что в локальных модулях (листов, форм) - глобальные типы не определить

я просто избавился от глобальных переменных...


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
Может Вы и правы

конечно, прав!
прочтите его объяснение:
потому что в локальных модулях (листов, форм) - глобальные типы не определить

я просто избавился от глобальных переменных...

Автор - KSV
Дата добавления - 31.05.2015 в 15:55
Otter Дата: Воскресенье, 31.05.2015, 16:07 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Цитата
посмотрите в код, там написано, что если нужно сохранить расширение оригинального файла, то раскомментируйте 4 строчки.
Да я уже заметил, но не успел отписаться.

Цитата
я просто избавился от глобальных переменных...
Для меня пока это трудно понять. Опыта маловато. Я увидел только то, что модуля нет и все работает.


Сообщение отредактировал Otter - Воскресенье, 31.05.2015, 16:31
 
Ответить
Сообщение
Цитата
посмотрите в код, там написано, что если нужно сохранить расширение оригинального файла, то раскомментируйте 4 строчки.
Да я уже заметил, но не успел отписаться.

Цитата
я просто избавился от глобальных переменных...
Для меня пока это трудно понять. Опыта маловато. Я увидел только то, что модуля нет и все работает.

Автор - Otter
Дата добавления - 31.05.2015 в 16:07
KSV Дата: Воскресенье, 31.05.2015, 16:15 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
по поводу второго вопроса - посмотрите P.S. в моем посте 7


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениепо поводу второго вопроса - посмотрите P.S. в моем посте 7

Автор - KSV
Дата добавления - 31.05.2015 в 16:15
Otter Дата: Воскресенье, 31.05.2015, 16:20 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Цитата
А если пользователь выбирет ту же папку, где лежит оригинальный файл и при этом не отметит чекбокс, нужно "ругаться", чтобы он выбрал другую папку или молча сохранить ТОЛЬКО оригинальный файл?
Можно конечно и так, но лучше как мои пожелания ниже.
Цитата
молча сохранить только оригинальный файл (.Save)

Большое СПАСИБО за ответы.


Сообщение отредактировал Otter - Воскресенье, 31.05.2015, 16:37
 
Ответить
Сообщение
Цитата
А если пользователь выбирет ту же папку, где лежит оригинальный файл и при этом не отметит чекбокс, нужно "ругаться", чтобы он выбрал другую папку или молча сохранить ТОЛЬКО оригинальный файл?
Можно конечно и так, но лучше как мои пожелания ниже.
Цитата
молча сохранить только оригинальный файл (.Save)

Большое СПАСИБО за ответы.

Автор - Otter
Дата добавления - 31.05.2015 в 16:20
KSV Дата: Воскресенье, 31.05.2015, 16:30 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Да так, но пока файл открыт он не позволит перезаписать сам себя

вы ошибаетесь...
вот эта строчка в вашем коде сохраняет ваш открытый файл :)
[vba]
Код
    ActiveWorkbook.Save
[/vba]

а вот КОПИЮ (методом: .SaveCopyAs) нельзя сохранить в той же папке и с тем же именем, что и оригинальный файл, поэтому я и спросил, как поступать в этом случае - молча сохранить только оригинальный файл (.Save) или "заставить" пользователя выбрать другую папку для сохранения?


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
Да так, но пока файл открыт он не позволит перезаписать сам себя

вы ошибаетесь...
вот эта строчка в вашем коде сохраняет ваш открытый файл :)
[vba]
Код
    ActiveWorkbook.Save
[/vba]

а вот КОПИЮ (методом: .SaveCopyAs) нельзя сохранить в той же папке и с тем же именем, что и оригинальный файл, поэтому я и спросил, как поступать в этом случае - молча сохранить только оригинальный файл (.Save) или "заставить" пользователя выбрать другую папку для сохранения?

Автор - KSV
Дата добавления - 31.05.2015 в 16:30
Otter Дата: Воскресенье, 31.05.2015, 16:33 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Цитата
молча сохранить только оригинальный файл (.Save)
Да так лучше всего будет
 
Ответить
Сообщение
Цитата
молча сохранить только оригинальный файл (.Save)
Да так лучше всего будет

Автор - Otter
Дата добавления - 31.05.2015 в 16:33
KSV Дата: Воскресенье, 31.05.2015, 16:43 | Сообщение № 14
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
так?
К сообщению приложен файл: 0747746.xlsm (36.6 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениетак?

Автор - KSV
Дата добавления - 31.05.2015 в 16:43
Otter Дата: Воскресенье, 31.05.2015, 16:51 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Пробую прилепить[vba]
Код
MsgBox "Создана копия файла  " & BookName & " " & strDate & " в папку " & strPath
[/vba]
Все получилось кроме strPath. Что надо изменить, чтобы писался путь сохранения файла. В моем варианте кода он постоянный и четко прописан как strPath = " D:\BACUP" , а здесь что то другое. Пробую писать path, но чего то путь не пишет. Может потому, что путь длинный и не умещается? Тогда как быть?
К сообщению приложен файл: 0375146.jpg (7.6 Kb)


Сообщение отредактировал Otter - Воскресенье, 31.05.2015, 17:40
 
Ответить
СообщениеПробую прилепить[vba]
Код
MsgBox "Создана копия файла  " & BookName & " " & strDate & " в папку " & strPath
[/vba]
Все получилось кроме strPath. Что надо изменить, чтобы писался путь сохранения файла. В моем варианте кода он постоянный и четко прописан как strPath = " D:\BACUP" , а здесь что то другое. Пробую писать path, но чего то путь не пишет. Может потому, что путь длинный и не умещается? Тогда как быть?

Автор - Otter
Дата добавления - 31.05.2015 в 16:51
KSV Дата: Воскресенье, 31.05.2015, 17:49 | Сообщение № 16
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
посмотрите
К сообщению приложен файл: 8209663.xlsm (37.4 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениепосмотрите

Автор - KSV
Дата добавления - 31.05.2015 в 17:49
Otter Дата: Воскресенье, 31.05.2015, 18:14 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Да так пойдет. Еще раз Большое СПАСИБО.
 
Ответить
СообщениеДа так пойдет. Еще раз Большое СПАСИБО.

Автор - Otter
Дата добавления - 31.05.2015 в 18:14
KSV Дата: Воскресенье, 31.05.2015, 18:41 | Сообщение № 18
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
пожалуйста.


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениепожалуйста.

Автор - KSV
Дата добавления - 31.05.2015 в 18:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Форма по созданию резервных копий книги (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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