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

Вход

Регистрация

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

 

= Мир MS Excel/Запретить сохранение если фаил с таким именем уже существует - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запретить сохранение если фаил с таким именем уже существует (Макросы/Sub)
Запретить сохранение если фаил с таким именем уже существует
Александр7034 Дата: Среда, 03.08.2022, 15:37 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 40% ±

Нашел для своих целей уже рабочий макрос, его суть в том что бы брал из ячейки C2 имя и его использовал в имени файла при сохранении на сетевой диск.
Что бы по ошибке потом его не перезаписать помогите с доработкой кода. Нужно что бы в случае присутствия файла с таким именем, выходило сообщение - "Такой фаил уже существует"!
И стандартное меню ms офиса перезаписать фаил даже не появлялось, во избежании.
Сам код такой:

[vba]
Код

ub Кнопка38_Щелчок()

   'Объявление переменных
   Dim CellValue As String
   Dim Path As String
   Dim FinalFileName As String

   'Задаём каталог сохранения файла (в данном случае текущий каталог)
   Path = "X:\Fileserver\ОТЧЕТЫ\"

   'Получаем значение ячейки
   CellValue = Range("C2")

   'Формируем итоговый путь и название файла
   FinalFileName = Path & CellValue

  [color=red][b] 'Тут нужен код проверки присутствия файла который нельзя перезаписывать[/b][/color]

   'Сохраняем файл
   ActiveWorkbook.SaveAs Filename:=FinalFileName & ".xlsx", _
                      FileFormat:=xlOpenXMLWorkbook
                      'FileFormat:=xlOpenXMLWorkbookMacroEnabled 'Для сохранения файла с макросом

  
   'Сообщение с результатом выполнения процедуры
   MsgBox "Файл успешно сохранен с названием - " & CellValue, vbInformation, "Результат"

End Sub

[/vba]
 
Ответить
СообщениеНашел для своих целей уже рабочий макрос, его суть в том что бы брал из ячейки C2 имя и его использовал в имени файла при сохранении на сетевой диск.
Что бы по ошибке потом его не перезаписать помогите с доработкой кода. Нужно что бы в случае присутствия файла с таким именем, выходило сообщение - "Такой фаил уже существует"!
И стандартное меню ms офиса перезаписать фаил даже не появлялось, во избежании.
Сам код такой:

[vba]
Код

ub Кнопка38_Щелчок()

   'Объявление переменных
   Dim CellValue As String
   Dim Path As String
   Dim FinalFileName As String

   'Задаём каталог сохранения файла (в данном случае текущий каталог)
   Path = "X:\Fileserver\ОТЧЕТЫ\"

   'Получаем значение ячейки
   CellValue = Range("C2")

   'Формируем итоговый путь и название файла
   FinalFileName = Path & CellValue

  [color=red][b] 'Тут нужен код проверки присутствия файла который нельзя перезаписывать[/b][/color]

   'Сохраняем файл
   ActiveWorkbook.SaveAs Filename:=FinalFileName & ".xlsx", _
                      FileFormat:=xlOpenXMLWorkbook
                      'FileFormat:=xlOpenXMLWorkbookMacroEnabled 'Для сохранения файла с макросом

  
   'Сообщение с результатом выполнения процедуры
   MsgBox "Файл успешно сохранен с названием - " & CellValue, vbInformation, "Результат"

End Sub

[/vba]

Автор - Александр7034
Дата добавления - 03.08.2022 в 15:37
Nic70y Дата: Среда, 03.08.2022, 17:06 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация: 2272 ±
Замечаний: 0% ±

Excel 2010
при сохранении книги записать ее имя в левую ячейку,
перед сохранением сравнивать C2 и левую,
если они равны - не выполнять сохранение.


ЮMoney 41001841029809
 
Ответить
Сообщениепри сохранении книги записать ее имя в левую ячейку,
перед сохранением сравнивать C2 и левую,
если они равны - не выполнять сохранение.

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

2010
Цитата Александр7034, 03.08.2022 в 15:37, в сообщении № 1 ()
'Тут нужен код проверки присутствия файла который нельзя перезаписывать

[vba]
Код
If Dir(FinalFileName )<>"" Then Exit Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата Александр7034, 03.08.2022 в 15:37, в сообщении № 1 ()
'Тут нужен код проверки присутствия файла который нельзя перезаписывать

[vba]
Код
If Dir(FinalFileName )<>"" Then Exit Sub
[/vba]

Автор - RAN
Дата добавления - 03.08.2022 в 17:23
Александр7034 Дата: Четверг, 04.08.2022, 08:59 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 40% ±

If Dir(FinalFileName )<>"" Then Exit Sub


Не работает, досрочное завершения макроса не произошло, все равно выходит меню перезаписи существующего файла. Строку кода вписал так:
[vba]
Код
Sub Кнопка38_Щелчок()

   'Объявление переменных
   Dim CellValue As String
   Dim Path As String
   Dim FinalFileName As String

   'Задаём каталог сохранения файла
   Path = "X:\Fileserver\ОТЧЕТЫ\"

   'Получаем значение ячейки
   CellValue = Range("C2")

   'Формируем итоговый путь и название файла
   FinalFileName = Path & CellValue
  'проверяем наличие файла
   If Dir(FinalFileName) <> "" Then Exit Sub
   'Сохраняем файл
   ActiveWorkbook.SaveAs Filename:=FinalFileName & ".xlsx", _
   FileFormat:=xlOpenXMLWorkbook
   'Сообщение с результатом выполнения процедуры
   MsgBox "Файл успешно сохранен с названием - " & CellValue, vbInformation, "Результат"

End Sub
[/vba]


Сообщение отредактировал Александр7034 - Четверг, 04.08.2022, 09:01
 
Ответить
Сообщение
If Dir(FinalFileName )<>"" Then Exit Sub


Не работает, досрочное завершения макроса не произошло, все равно выходит меню перезаписи существующего файла. Строку кода вписал так:
[vba]
Код
Sub Кнопка38_Щелчок()

   'Объявление переменных
   Dim CellValue As String
   Dim Path As String
   Dim FinalFileName As String

   'Задаём каталог сохранения файла
   Path = "X:\Fileserver\ОТЧЕТЫ\"

   'Получаем значение ячейки
   CellValue = Range("C2")

   'Формируем итоговый путь и название файла
   FinalFileName = Path & CellValue
  'проверяем наличие файла
   If Dir(FinalFileName) <> "" Then Exit Sub
   'Сохраняем файл
   ActiveWorkbook.SaveAs Filename:=FinalFileName & ".xlsx", _
   FileFormat:=xlOpenXMLWorkbook
   'Сообщение с результатом выполнения процедуры
   MsgBox "Файл успешно сохранен с названием - " & CellValue, vbInformation, "Результат"

End Sub
[/vba]

Автор - Александр7034
Дата добавления - 04.08.2022 в 08:59
Nic70y Дата: Четверг, 04.08.2022, 09:09 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация: 2272 ±
Замечаний: 0% ±

Excel 2010
Александр7034, ну могли б и догадаться)
[vba]
Код
If Dir(FinalFileName & ".xlsx") <> "" Then
    MsgBox "Такой фаил уже существует!"
    Exit Sub
End If
[/vba]


ЮMoney 41001841029809
 
Ответить
СообщениеАлександр7034, ну могли б и догадаться)
[vba]
Код
If Dir(FinalFileName & ".xlsx") <> "" Then
    MsgBox "Такой фаил уже существует!"
    Exit Sub
End If
[/vba]

Автор - Nic70y
Дата добавления - 04.08.2022 в 09:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запретить сохранение если фаил с таким именем уже существует (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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