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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос: сохранение копии рабочей книги c автонумерацией - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос: сохранение копии рабочей книги c автонумерацией (Формулы/Formulas)
Макрос: сохранение копии рабочей книги c автонумерацией
sdart Дата: Суббота, 20.09.2014, 22:52 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Как доработать макрос в этой ветке форума, чтобы на уникальность проверялся только порядковый номер файла в имени. Например: в ячейке A1 исходного файла находится текст Samsung SA850, при выполнении макроса сохраняется копия исходного файла под именем: 1 Samsung SA850. При повторном открытии исходного файла текст в ячейке A1 может быть введен другой, например, Sony Bravia, копию требуется сохранить под именем: 2 Sony Bravia. Максимальный порядковый номер может быть 9999


Сообщение отредактировал sdart - Суббота, 20.09.2014, 22:56
 
Ответить
СообщениеКак доработать макрос в этой ветке форума, чтобы на уникальность проверялся только порядковый номер файла в имени. Например: в ячейке A1 исходного файла находится текст Samsung SA850, при выполнении макроса сохраняется копия исходного файла под именем: 1 Samsung SA850. При повторном открытии исходного файла текст в ячейке A1 может быть введен другой, например, Sony Bravia, копию требуется сохранить под именем: 2 Sony Bravia. Максимальный порядковый номер может быть 9999

Автор - sdart
Дата добавления - 20.09.2014 в 22:52
Alex_ST Дата: Суббота, 20.09.2014, 23:31 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
А Вы хорошо продумали такой принцип нумерации файлов?
Ведь в эксплорере Виндов файлы в папке по умолчанию сортируются по имени.
Значит в Вас будут идти примерно так:
0001 Nokia
0001 Samsung
0001 Sony
0002 Nokia
0002 Samsung
0002 Sony
0003 Nokia
0003 Sony
0004 Nokia

Т.е. модели будут идти в перемешку. Это очень не удобно для визуального восприятия. Особенно, если моделей с десяток, а количества по каждой модели разные.
Если уж делать, то, наверное, принцип наименования файлов должен быть такой: "Название модели"&"разделитель"&"4-х значный номер" . При этом номера всегда должны быть из 4-х цифр, как я и указал в примере выше. Иначе опять будет путаница, т.к. последовательность текстовой сортировки при числе больше 10 будет такой: 1 10 100 1000 11 110 1100 12 120 1200

При применении предложенного мною принципа нумерации файлы в открываемой папке будут сгруппированы по моделям по алфавиту. А уже внутри модели - по номеру:
Nokia - 0001
Nokia - 0002
Nokia - 0003
Nokia - 0004
Samsung - 0001
Samsung - 0002
Sony - 0001
Sony - 0002
Sony - 0003

А кроме этого, чтобы подправить, например, ЭТОТ МАКРОС, проблем, кажется нет кроме отсутствия сейчас свободного времени.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеА Вы хорошо продумали такой принцип нумерации файлов?
Ведь в эксплорере Виндов файлы в папке по умолчанию сортируются по имени.
Значит в Вас будут идти примерно так:
0001 Nokia
0001 Samsung
0001 Sony
0002 Nokia
0002 Samsung
0002 Sony
0003 Nokia
0003 Sony
0004 Nokia

Т.е. модели будут идти в перемешку. Это очень не удобно для визуального восприятия. Особенно, если моделей с десяток, а количества по каждой модели разные.
Если уж делать, то, наверное, принцип наименования файлов должен быть такой: "Название модели"&"разделитель"&"4-х значный номер" . При этом номера всегда должны быть из 4-х цифр, как я и указал в примере выше. Иначе опять будет путаница, т.к. последовательность текстовой сортировки при числе больше 10 будет такой: 1 10 100 1000 11 110 1100 12 120 1200

При применении предложенного мною принципа нумерации файлы в открываемой папке будут сгруппированы по моделям по алфавиту. А уже внутри модели - по номеру:
Nokia - 0001
Nokia - 0002
Nokia - 0003
Nokia - 0004
Samsung - 0001
Samsung - 0002
Sony - 0001
Sony - 0002
Sony - 0003

А кроме этого, чтобы подправить, например, ЭТОТ МАКРОС, проблем, кажется нет кроме отсутствия сейчас свободного времени.

Автор - Alex_ST
Дата добавления - 20.09.2014 в 23:31
sdart Дата: Суббота, 20.09.2014, 23:54 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Предложенный Вами принцип нумерации логичнее, но мне не часто нужно будет обращаться к созданным файлам, также если файлов в окне проводника будет больше 100, то искать их, как мне кажется, всё равно будет проще поиском
При нумерации мне не нужно чтобы повторялся порядковый номер. В Вашем макросе если изменяется имя, то присваивается новый порядковый номер, хотелось бы оставить уникальным порядковый номер в папке
 
Ответить
СообщениеПредложенный Вами принцип нумерации логичнее, но мне не часто нужно будет обращаться к созданным файлам, также если файлов в окне проводника будет больше 100, то искать их, как мне кажется, всё равно будет проще поиском
При нумерации мне не нужно чтобы повторялся порядковый номер. В Вашем макросе если изменяется имя, то присваивается новый порядковый номер, хотелось бы оставить уникальным порядковый номер в папке

Автор - sdart
Дата добавления - 20.09.2014 в 23:54
Alex_ST Дата: Понедельник, 22.09.2014, 16:07 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
Неожиданно на работе образовалась пара часов свободного времени.
Пот Ваши "хотелки", не дающие универсальности и применяемости делать не стал.
Сделал так, как предлагал раньше
"Название модели"&"разделитель"&"4-х значный номер"
Вам всё равно, а мне не в пустую работать - может где-нибудь пригодиться.
Выкладывать файлы с макросами с работы не могу. Поэтому выкладываю тексты процедур.
Их можно разместить как в стандартном модуле самого файла, так и в Personal или вообще в какой-нибудь надстройке.
Имя файла (без разделителя и индекса, конечно) задаётся в ячейке, на которую указывает имя ROOT. Его сразу задавать не обязательно. Само создастся после первого запуска процедуры как "Модель не задана", но не привязанное к ячейке. Просто перепривяжите его в диспетчере имён к той ячейке, где у Вас будут указываться названия моделей.
Также в именах задастся после первого запуска разделитель по умолчанию " #". Он к ячейкам листа не привязан. Его значение тоже можно просто поменять в диспетчере имён.
В именах же сохраняется и путь к папке сохранения копий.
В общем, для пробы можно взять любой даже совсем пустой файл. Если не хотите настраивать имена потом, то можете это и не делать. Сами создадутся. Но пока не привяжете имя ROOT к какой-нибудь ячейке листа, копии файлов будут сохраняться с корнем "Модель не задана".
Текст процедур надо скопипастить в стандартный модуль книги.
В процедурах предусмотрена замена недопустимых в именах файлов символов на _
Из-за ограничений форума тексты процедур приложу в следующем посте.
Пробуйте. Если не получится, вечером из дома попробую скинуть файл-пример.
Но сразу предупреждаю: переделывать так, чтобы не задавало вопросов при сохранении я не буду - это нарушает логику сохранения и задания пути к папке бэкапов.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНеожиданно на работе образовалась пара часов свободного времени.
Пот Ваши "хотелки", не дающие универсальности и применяемости делать не стал.
Сделал так, как предлагал раньше
"Название модели"&"разделитель"&"4-х значный номер"
Вам всё равно, а мне не в пустую работать - может где-нибудь пригодиться.
Выкладывать файлы с макросами с работы не могу. Поэтому выкладываю тексты процедур.
Их можно разместить как в стандартном модуле самого файла, так и в Personal или вообще в какой-нибудь надстройке.
Имя файла (без разделителя и индекса, конечно) задаётся в ячейке, на которую указывает имя ROOT. Его сразу задавать не обязательно. Само создастся после первого запуска процедуры как "Модель не задана", но не привязанное к ячейке. Просто перепривяжите его в диспетчере имён к той ячейке, где у Вас будут указываться названия моделей.
Также в именах задастся после первого запуска разделитель по умолчанию " #". Он к ячейкам листа не привязан. Его значение тоже можно просто поменять в диспетчере имён.
В именах же сохраняется и путь к папке сохранения копий.
В общем, для пробы можно взять любой даже совсем пустой файл. Если не хотите настраивать имена потом, то можете это и не делать. Сами создадутся. Но пока не привяжете имя ROOT к какой-нибудь ячейке листа, копии файлов будут сохраняться с корнем "Модель не задана".
Текст процедур надо скопипастить в стандартный модуль книги.
В процедурах предусмотрена замена недопустимых в именах файлов символов на _
Из-за ограничений форума тексты процедур приложу в следующем посте.
Пробуйте. Если не получится, вечером из дома попробую скинуть файл-пример.
Но сразу предупреждаю: переделывать так, чтобы не задавало вопросов при сохранении я не буду - это нарушает логику сохранения и задания пути к папке бэкапов.

Автор - Alex_ST
Дата добавления - 22.09.2014 в 16:07
Alex_ST Дата: Понедельник, 22.09.2014, 16:08 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Понедельник, 22.09.2014, 16:08
 
Ответить
Сообщение

Автор - Alex_ST
Дата добавления - 22.09.2014 в 16:08
sdart Дата: Понедельник, 22.09.2014, 20:07 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Спасибо за макрос, все работает как описали.
Не могу требовать большего, но если сделать нумерацию уникальной и не привязанной к ячейке, связанной с ROOT, то будет вообще прекрасно.
 
Ответить
СообщениеСпасибо за макрос, все работает как описали.
Не могу требовать большего, но если сделать нумерацию уникальной и не привязанной к ячейке, связанной с ROOT, то будет вообще прекрасно.

Автор - sdart
Дата добавления - 22.09.2014 в 20:07
Alex_ST Дата: Понедельник, 22.09.2014, 20:44 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
если сделать нумерацию уникальной и не привязанной к ячейке
Ну уж Вы всё-таки определитесь наконец, откуда у Вас должны браться имена? Ведь сами же в первом посте писали:
в ячейке A1 исходного файла находится текст Samsung SA850, при выполнении макроса сохраняется копия исходного файла под именем: 1 Samsung SA850.

Именно так и сделано в моих процедурах. Имя берётся из ЯЧЕЙКИ. Только ячейка эта не жёстко фиксирована на определённом листе, как Вам хотелось изначально, а на ячейку указывает имя ROOT. Поэтому процедура стала гибкой, т.к. это имя Вы можете по своему усмотрению присвоить любой ячейке на любом листе.
А обещанный файл я всё-таки добил. Там все три процедуры: Сохранение копии с суффиксом "Дата-Время", Сохранение копии с суффиксом "Индекс", сохранение копии с именем из ячейки и суффиксом "Индекс".

И к стати! Уникальную и не привязанную к ячейке нумерацию копий делает макрос Save_Copy_As_Now, сохраняющий копии с суффиксом "Дата-Время" :)
К сообщению приложен файл: Save_Copy_As_No.xls (60.5 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Понедельник, 22.09.2014, 21:27
 
Ответить
Сообщение
если сделать нумерацию уникальной и не привязанной к ячейке
Ну уж Вы всё-таки определитесь наконец, откуда у Вас должны браться имена? Ведь сами же в первом посте писали:
в ячейке A1 исходного файла находится текст Samsung SA850, при выполнении макроса сохраняется копия исходного файла под именем: 1 Samsung SA850.

Именно так и сделано в моих процедурах. Имя берётся из ЯЧЕЙКИ. Только ячейка эта не жёстко фиксирована на определённом листе, как Вам хотелось изначально, а на ячейку указывает имя ROOT. Поэтому процедура стала гибкой, т.к. это имя Вы можете по своему усмотрению присвоить любой ячейке на любом листе.
А обещанный файл я всё-таки добил. Там все три процедуры: Сохранение копии с суффиксом "Дата-Время", Сохранение копии с суффиксом "Индекс", сохранение копии с именем из ячейки и суффиксом "Индекс".

И к стати! Уникальную и не привязанную к ячейке нумерацию копий делает макрос Save_Copy_As_Now, сохраняющий копии с суффиксом "Дата-Время" :)

Автор - Alex_ST
Дата добавления - 22.09.2014 в 20:44
sdart Дата: Понедельник, 22.09.2014, 23:36 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
По-моему у меня не получается правильно выразить свою мысль, попробую:
Имя файла должно состоять из: суффикс "Индекс" + имя из ячейки
Save_Copy_As_Now не сохраняет "Индекс"
Save_Copy_As_Index не обращается к ячейке
Save_Copy_As_Name_And_Index не увеличивает "Индекс" при изменении значения в ячейке
Нужно увеличить "Индекс" не зависимо от значения в ячейке
 
Ответить
СообщениеПо-моему у меня не получается правильно выразить свою мысль, попробую:
Имя файла должно состоять из: суффикс "Индекс" + имя из ячейки
Save_Copy_As_Now не сохраняет "Индекс"
Save_Copy_As_Index не обращается к ячейке
Save_Copy_As_Name_And_Index не увеличивает "Индекс" при изменении значения в ячейке
Нужно увеличить "Индекс" не зависимо от значения в ячейке

Автор - sdart
Дата добавления - 22.09.2014 в 23:36
Alex_ST Дата: Вторник, 23.09.2014, 08:41 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
Save_Copy_As_Now сохраняет копию файла под именем, составленным из имени рабочего файла, даты и времени сохранения копии
Save_Copy_As_Index сохраняет копию файла под именем, составленным из имени рабочего файла и индекса (номера копии)
Save_Copy_As_Name_And_Index сохраняет копию файла под именем, составленным из имени, заданного в ячейке именованного диапазона ROOT и индекса (номера копии)
А по поводу
Нужно увеличить "Индекс" не зависимо от значения в ячейке
, так повторяю: в первом посте написано
в ячейке A1 исходного файла находится текст Samsung SA850, при выполнении макроса сохраняется копия исходного файла под именем: 1 Samsung SA850
Именно это и делает макрос Save_Copy_As_Name_And_Index (только индекс 4-значный и ставится в конце имени файла).
А если Вам всё-таки нужно не изменять корень имени сохраняемого файла, то либо просто используйте Save_Copy_As_Index, либо Save_Copy_As_Name_And_Index, изменив значение имени ROOT вместо ссылки на ячейку на то постоянное, которое Вам нужно.
Правда, тогда я не понимаю сути Вашего замечания:
Save_Copy_As_Index не обращается к ячейке
Зачем ему обращаться к ячейке кроме как за именем файла? А как раз это и делает Save_Copy_As_Name_And_Index.

Save_Copy_As_Name_And_Index не увеличивает "Индекс" при изменении значения в ячейке
А он и не должен этого делать. В ячейке задаётся основа (корень) имени файла. А при сохранении каждой следующей копии с такой же основой её индекс увеличивается.
И после нескольких сохранений как раз и получается, что в папке сохранения копий будут лежать файлы:
Nokia [0001]
Nokia [0002]
Nokia [0003]
Nokia [0004]
Samsung [0001]
Samsung [0002]
Sony [0001]
Sony [0002]
Sony [0003]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 23.09.2014, 08:42
 
Ответить
СообщениеSave_Copy_As_Now сохраняет копию файла под именем, составленным из имени рабочего файла, даты и времени сохранения копии
Save_Copy_As_Index сохраняет копию файла под именем, составленным из имени рабочего файла и индекса (номера копии)
Save_Copy_As_Name_And_Index сохраняет копию файла под именем, составленным из имени, заданного в ячейке именованного диапазона ROOT и индекса (номера копии)
А по поводу
Нужно увеличить "Индекс" не зависимо от значения в ячейке
, так повторяю: в первом посте написано
в ячейке A1 исходного файла находится текст Samsung SA850, при выполнении макроса сохраняется копия исходного файла под именем: 1 Samsung SA850
Именно это и делает макрос Save_Copy_As_Name_And_Index (только индекс 4-значный и ставится в конце имени файла).
А если Вам всё-таки нужно не изменять корень имени сохраняемого файла, то либо просто используйте Save_Copy_As_Index, либо Save_Copy_As_Name_And_Index, изменив значение имени ROOT вместо ссылки на ячейку на то постоянное, которое Вам нужно.
Правда, тогда я не понимаю сути Вашего замечания:
Save_Copy_As_Index не обращается к ячейке
Зачем ему обращаться к ячейке кроме как за именем файла? А как раз это и делает Save_Copy_As_Name_And_Index.

Save_Copy_As_Name_And_Index не увеличивает "Индекс" при изменении значения в ячейке
А он и не должен этого делать. В ячейке задаётся основа (корень) имени файла. А при сохранении каждой следующей копии с такой же основой её индекс увеличивается.
И после нескольких сохранений как раз и получается, что в папке сохранения копий будут лежать файлы:
Nokia [0001]
Nokia [0002]
Nokia [0003]
Nokia [0004]
Samsung [0001]
Samsung [0002]
Sony [0001]
Sony [0002]
Sony [0003]

Автор - Alex_ST
Дата добавления - 23.09.2014 в 08:41
Alex_ST Дата: Вторник, 23.09.2014, 08:49 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
К стати, sdart, уточняющие вопросы:
1. А Вы именованными диапазонами пользоваться умеете и что такое диспетчер имён представляете?
2. А как с синтаксисом VBA? Прочесть и понять процедуру с примечаниями можете?

А то может быть я зря всё это пытаюсь так подробно объяснить. Ведь я основываюсь на предположении, что уровень знаний у Вас "выше секретарши".



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеК стати, sdart, уточняющие вопросы:
1. А Вы именованными диапазонами пользоваться умеете и что такое диспетчер имён представляете?
2. А как с синтаксисом VBA? Прочесть и понять процедуру с примечаниями можете?

А то может быть я зря всё это пытаюсь так подробно объяснить. Ведь я основываюсь на предположении, что уровень знаний у Вас "выше секретарши".

Автор - Alex_ST
Дата добавления - 23.09.2014 в 08:49
sdart Дата: Вторник, 23.09.2014, 11:01 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Alex_ST
1,2 - ответы положительные. Поменять переменные в Ваших макросах пытался, но вылетает ошибка.
Только сейчас понял почему Вы не можете меня понять. Такого наименования файлов в папке не будет
Nokia [0001]
Nokia [0002]
Samsung [0001]
Samsung [0002]
Sony [0001]
Модели уникальны и не повторяются, файлы в папке будут располагаться так:
[0001] Nokia X1
[0002] Nokia X222
[0003] Samsung A1
[0004] Samsung A123
[0005] Sony 11
Важен только индекс, чего собственно я и хочу добиться от поведения макроса


Сообщение отредактировал sdart - Вторник, 23.09.2014, 11:02
 
Ответить
СообщениеAlex_ST
1,2 - ответы положительные. Поменять переменные в Ваших макросах пытался, но вылетает ошибка.
Только сейчас понял почему Вы не можете меня понять. Такого наименования файлов в папке не будет
Nokia [0001]
Nokia [0002]
Samsung [0001]
Samsung [0002]
Sony [0001]
Модели уникальны и не повторяются, файлы в папке будут располагаться так:
[0001] Nokia X1
[0002] Nokia X222
[0003] Samsung A1
[0004] Samsung A123
[0005] Sony 11
Важен только индекс, чего собственно я и хочу добиться от поведения макроса

Автор - sdart
Дата добавления - 23.09.2014 в 11:01
Alex_ST Дата: Вторник, 23.09.2014, 11:56 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
Кажется, понял.
Но тогда всё существенно изменяется.
В цикле по Dir(FileName) находить очередной индекс не надо.
Вся проблема тогда в том, как по именам файлов в директории определить последний присвоенный номер чтобы по нему можно было вычислить очередной.
Но это, мне кажется, достаточно сложно. По крайней мере мне сейчас с этим возиться некогда. Нужно вспоминать объектную модель и методы FileSystemObject. А я их использую очень редко и потому совсем не помню.
Можно, например, в папке хранить какой-то специальный файл, в котором хранится последний присвоенный индекс.
При создании каждой копии сначала открывается этот файл, индекс считывается, вычисляется новый индекс, записывается в этот файл и файл закрывается с сохранением. Опять же нужно обращаться к FileSystemObject…

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



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеКажется, понял.
Но тогда всё существенно изменяется.
В цикле по Dir(FileName) находить очередной индекс не надо.
Вся проблема тогда в том, как по именам файлов в директории определить последний присвоенный номер чтобы по нему можно было вычислить очередной.
Но это, мне кажется, достаточно сложно. По крайней мере мне сейчас с этим возиться некогда. Нужно вспоминать объектную модель и методы FileSystemObject. А я их использую очень редко и потому совсем не помню.
Можно, например, в папке хранить какой-то специальный файл, в котором хранится последний присвоенный индекс.
При создании каждой копии сначала открывается этот файл, индекс считывается, вычисляется новый индекс, записывается в этот файл и файл закрывается с сохранением. Опять же нужно обращаться к FileSystemObject…

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

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

Excel 2003
Вот, в первом посте, я написал:
Цитата
Как доработать макрос в этой ветке форума, чтобы на уникальность проверялся только порядковый номер файла в имени.

а это имел ввиду:
Цитата
Вся проблема тогда в том, как по именам файлов в директории определить последний присвоенный номер чтобы по нему можно было вычислить очередной.

Огромное спасибо Вам за готовые решения, буду копать FileSystemObject

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

Можно в папке создать файл и сделать его скрытым - такая реализация была бы приемлемой
 
Ответить
СообщениеВот, в первом посте, я написал:
Цитата
Как доработать макрос в этой ветке форума, чтобы на уникальность проверялся только порядковый номер файла в имени.

а это имел ввиду:
Цитата
Вся проблема тогда в том, как по именам файлов в директории определить последний присвоенный номер чтобы по нему можно было вычислить очередной.

Огромное спасибо Вам за готовые решения, буду копать FileSystemObject

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

Можно в папке создать файл и сделать его скрытым - такая реализация была бы приемлемой

Автор - sdart
Дата добавления - 23.09.2014 в 12:19
Alex_ST Дата: Вторник, 23.09.2014, 12:25 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
А может быть проще перебороть свою хотелку (если она, конечно, не очень принципиальная для работы) и отказаться от суффикса-модели устройства и хранить просто файлы с именами-номерами?
Тогда всё было бы элементарно просто.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеА может быть проще перебороть свою хотелку (если она, конечно, не очень принципиальная для работы) и отказаться от суффикса-модели устройства и хранить просто файлы с именами-номерами?
Тогда всё было бы элементарно просто.

Автор - Alex_ST
Дата добавления - 23.09.2014 в 12:25
sdart Дата: Вторник, 23.09.2014, 12:54 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
В том-то и дело - нужно для работы. Сейчас открываем документ-шаблон, вписываем следующий порядковый номер(предыдущий смотрим предварительно в папке) и сохраняем копию с помощью кнопки-макроса как порядковый номер + модель. Затем открываем созданный документ и в нем работаем
 
Ответить
СообщениеВ том-то и дело - нужно для работы. Сейчас открываем документ-шаблон, вписываем следующий порядковый номер(предыдущий смотрим предварительно в папке) и сохраняем копию с помощью кнопки-макроса как порядковый номер + модель. Затем открываем созданный документ и в нем работаем

Автор - sdart
Дата добавления - 23.09.2014 в 12:54
Alex_ST Дата: Вторник, 23.09.2014, 21:47 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
Интересный вариант в голову пришёл.
Попробуйте-ка в проводнике папки копий сделать вид "Таблица" , а потом отобразить столбец "Заголовок".
А теперь примените к оригиналу этот макрос:
Такой вариант Вам не подойдёт?
К сообщению приложен файл: Save_Copy_As_In.xls (41.5 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 23.09.2014, 22:18
 
Ответить
СообщениеИнтересный вариант в голову пришёл.
Попробуйте-ка в проводнике папки копий сделать вид "Таблица" , а потом отобразить столбец "Заголовок".
А теперь примените к оригиналу этот макрос:
Такой вариант Вам не подойдёт?

Автор - Alex_ST
Дата добавления - 23.09.2014 в 21:47
sdart Дата: Пятница, 26.09.2014, 01:04 | Сообщение № 17
Группа: Гости
Извиняюсь за долгий ответ, света в городе не было:(
Макрос сохраняет в таком виде " [0001].xls". Присваивание имени TITLE ячейки A1, результата не даёт
 
Ответить
СообщениеИзвиняюсь за долгий ответ, света в городе не было:(
Макрос сохраняет в таком виде " [0001].xls". Присваивание имени TITLE ячейки A1, результата не даёт

Автор - sdart
Дата добавления - 26.09.2014 в 01:04
Alex_ST Дата: Пятница, 26.09.2014, 09:05 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
А это Вы сделали:
в проводнике папки копий сделать вид "Таблица" , а потом отобразить столбец "Заголовок"
?
По умолчанию столбец "Заголовок" в проводнике скрыт. Но чтобы вывести его нужно всего 2 клика (1 ПКМ + 1 ЛКМ).
Именно в столбце "Заготовок" проводника форточек отображается встроенное свойство документа "Название" (.BuiltinDocumentProperties("Title") ), которое я заполняю из ячейки, имеющей имя TITLE.
------------
Только что проверил. Всё отлично работает.
Только одна тонкость: дома на Висте столбец в проводнике назывался "Заголовок", на на работе под Семёркой - "Название".
Но это, наверное, Вам помешать было не должно :)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 26.09.2014, 10:01
 
Ответить
СообщениеА это Вы сделали:
в проводнике папки копий сделать вид "Таблица" , а потом отобразить столбец "Заголовок"
?
По умолчанию столбец "Заголовок" в проводнике скрыт. Но чтобы вывести его нужно всего 2 клика (1 ПКМ + 1 ЛКМ).
Именно в столбце "Заготовок" проводника форточек отображается встроенное свойство документа "Название" (.BuiltinDocumentProperties("Title") ), которое я заполняю из ячейки, имеющей имя TITLE.
------------
Только что проверил. Всё отлично работает.
Только одна тонкость: дома на Висте столбец в проводнике назывался "Заголовок", на на работе под Семёркой - "Название".
Но это, наверное, Вам помешать было не должно :)

Автор - Alex_ST
Дата добавления - 26.09.2014 в 09:05
sdart Дата: Пятница, 26.09.2014, 19:32 | Сообщение № 19
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Блин %), быстро прочитав, почему-то подумал как: просто отсортировать по столбцу название
Отличная реализация
Только поиск по моделям в проводнике не работает


Сообщение отредактировал sdart - Пятница, 26.09.2014, 19:33
 
Ответить
СообщениеБлин %), быстро прочитав, почему-то подумал как: просто отсортировать по столбцу название
Отличная реализация
Только поиск по моделям в проводнике не работает

Автор - sdart
Дата добавления - 26.09.2014 в 19:32
Alex_ST Дата: Пятница, 26.09.2014, 20:25 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3198
Репутация: 606 ±
Замечаний: 0% ±

2003
Только поиск по моделям в проводнике не работает
Зато сортировка по столбцу все модели группирует :)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Только поиск по моделям в проводнике не работает
Зато сортировка по столбцу все модели группирует :)

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

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