Сохранение файла
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ActiveWorkbook.SaveAs("1.xls") Then
a = MsgBox("Невозможно сохранить файл!", vbOKOnly)
If a = vbOK Then Cancel = True
End Sub
Этот код проверяет имя, и не сохраняет, но и невозможно вызвать стандартное окно "SaveAs", потому как "1.хлс" - имя по умолчанию!
Необходимо чтобы при сохранении файла проверялось его имя, и, если равно к примеру "1.xls" - сообщение типа нельзя сохранить файл с таким именем, иначе все нормуль, т.е. сохраняется.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ActiveWorkbook.SaveAs("1.xls") Then
a = MsgBox("Невозможно сохранить файл!", vbOKOnly)
If a = vbOK Then Cancel = True
End Sub
Этот код проверяет имя, и не сохраняет, но и невозможно вызвать стандартное окно "SaveAs", потому как "1.хлс" - имя по умолчанию!
непонятно почему ты не можешь вызвать стандартный диалог? какую ошибку он тебе выдает?
непонятно почему ты не можешь вызвать стандартный диалог? какую ошибку он тебе выдает?
Да просто я не знаю как его вызвать :)
Необходимо чтобы при сохранении файла проверялось его имя, и, если равно к примеру "1.xls" - сообщение типа нельзя сохранить файл с таким именем, иначе все нормуль, т.е. сохраняется.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ActiveWorkbook.SaveAs("1.xls") Then
a = MsgBox("Невозможно сохранить файл!", vbOKOnly)
If a = vbOK Then Cancel = True
End Sub
Этот код проверяет имя, и не сохраняет, но и невозможно вызвать стандартное окно "SaveAs", потому как "1.хлс" - имя по умолчанию!
Может сначала проверить
Dim fName As String, bName As String
bName = "Книга6.xls"' или другое
fName = ThisWorkbook.Path & "\" & bName
If Dir(fName) = bName Then
MsgBox "yes"
Else: MsgBox "No"
Для вызова диалога
Application.GetSaveAsFilename
Успехов dedtolya
End If
Как я только уже не пробовал!! Чего я только не делал!!!
Ну не работает и все!
Проверять - проверяет, если условие верно - не сохраняет, иначе вызывается стандартный диалог! Но после того как ввел новое имя файла сохраняет один (даже не знаю чего один) с именем по умолчанию!
Мужики!
Прошу! Дайте готовый примерчик, а потом скажу что я делал неправильно, обещаю!
Итак, еще раз постановка задачи:
Есть книга с именем temp.xls
Необходимо при попытке сохранения этой книги проверка на имя, т.е. если имя книги равно "temp.xls" - кричим: "Отдыхай, перец!" и не сохраняем, вызывая диалог "Сохранить как", иначе, если имя не равно "temp.xls" просто сохраняем и все...
Помогите, кто знает - это пять минут примерчик набросать, а то я парюсь в сумме часа три уже... :)
Заранее благодарен,
АААааааааа!!!
Как я только уже не пробовал!! Чего я только не делал!!!
Ну не работает и все!
Проверять - проверяет, если условие верно - не сохраняет, иначе вызывается стандартный диалог! Но после того как ввел новое имя файла сохраняет один (даже не знаю чего один) с именем по умолчанию!
Мужики!
Прошу! Дайте готовый примерчик, а потом скажу что я делал неправильно, обещаю!
Итак, еще раз постановка задачи:
Есть книга с именем temp.xls
Необходимо при попытке сохранения этой книги проверка на имя, т.е. если имя книги равно "temp.xls" - кричим: "Отдыхай, перец!" и не сохраняем, вызывая диалог "Сохранить как", иначе, если имя не равно "temp.xls" просто сохраняем и все...
Помогите, кто знает - это пять минут примерчик набросать, а то я парюсь в сумме часа три уже... :)
Заранее благодарен,
Sub fSaveAs()
Dim fName As String, bName As String
Dim NewBook As Workbook
Dim NewName As String
Set NewBook = Workbooks.Add
bName = "temp.xls"
fName = ThisWorkbook.Path & "\" & bName
If Dir(fName) = bName Then
MsgBox "Отдыхай, перец!"
Do
NewName = Application.GetSaveAsFilename
On Error GoTo oshibka
Loop Until NewName <> ""
NewBook.SaveAs (NewName)
Else
NewBook.SaveAs Filename:=fName
End If
Exit Sub
oshibka:
MsgBox "Неверное имя файла"
End Sub
Успехов dedtolya
Sub fSaveAs()
Dim fName As String, bName As String
Dim NewBook As Workbook
Dim NewName As String
Set NewBook = Workbooks.Add
bName = "temp.xls"
fName = ThisWorkbook.Path & "\" & bName
If Dir(fName) = bName Then
MsgBox "Отдыхай, перец!"
Do
NewName = Application.GetSaveAsFilename
On Error GoTo oshibka
Loop Until NewName <> ""
NewBook.SaveAs (NewName)
Else
NewBook.SaveAs Filename:=fName
End If
Exit Sub
oshibka:
MsgBox "Неверное имя файла"
End Sub
Успехов dedtolya
Спасибо! Все пытаюсь разобраться...
Наверное я не совсем точно поставил задачу, пробую еще раз :)
В общем, необходимо чтобы пересохранялся именно файл temp.xls, т.е. исходный файл, в котором по умолчанию уже есть кое-какая инфа (это одно из главных условий), а не создавалась новая книга.
И еще. При нажатии стандартных кнопарей типа "Сохранить", а значит используя Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean), если имя равно "темп.хлс" - вызывалась другая форма, где необходимо заполнить несколько полей, и уже после нажатия кнопки "ОК" сохраняла в нужную директорию с указанным именем, а если имя не уже не равно "темп" (уже сохраняли) - просто сохранение без вызова форм.
И второе условие. При нажатии "Сохранить как" - если имя равно "темп" - вызов моей формы, иначе, если не равно значит стандартный диалог.
Решился выложить свой файлик, что-то я там намутил, но про сохрание ни строки, за исключением формы для сохранения :)
Заранее благодарен!