Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Закрыть программно файл открытый макросом
 
Всем доброго времени суток!  
Понять не могу "где собака зарыта" когда вручную открываю документ то проблем нет, а стоит только открыть книгу макросом вроде:  
Sub Открыть()  
   Workbooks.Open Filename:="C:\1.xls"  
End Sub  
 
то при попытке сохранить его копию вылетает ошибка 'Run time error 404':  
 
Sub SaveAs()  
   If Not ActiveWorkbook Is Nothing Then  
      iFileName$ = ActiveWorkbook.Name &"_Копия"  
      iPath$ = ActiveWorkbook.Path '''  
      iPathSeparator$ = Application.PathSeparator '"\"  
      ActiveWorkbook.SaveCopyAs _  
         Filename:=iPath$ & iPathSeparator$ & iFileName$ 'Вылетает ошибка  
      ActiveWorkbook.Close True  
   Else  
      MsgBox "В настоящий момент нет активной книги", vbExclamation, ""  
   End If  
End Sub  
 
Сдается мне что файл все еще используется макросом на открытие... Как победить не уразумлю...
Извлечение данных из списка закрытых файлов
 
Спасибо РАБОТАЕТ!
Извлечение данных из списка закрытых файлов
 
Если после Cells(r, 5) добавить строку типа  
Cells(r, 6).Formula = ""='" & SourceFolder.Path & "\[" & FileItem.Name & "]Лист1'!A1""
то вылетает ошибка из-за. Вопрос в том как правильно записать ссылку на ячейку закрытого файла  
 
   For Each FileItem In SourceFolder.Files    
       Cells(r, 1).Formula = FileItem.Name    
       Cells(r, 2).Formula = FileItem.Path    
       Cells(r, 3).Formula = FileItem.Size    
       Cells(r, 4).Formula = FileItem.DateCreated    
       Cells(r, 5).Formula = FileItem.DateLastModified    
       r = r + 1    
       X = SourceFolder.Path    
   Next FileItem
Извлечение данных из списка закрытых файлов
 
Всем доброго времени суток!  
В разделе "Приемы" есть прием под названием "Список файлов в папке" позволяющий "заполучить на лист Excel список файлов в заданной папке и ее подпапках".  
Примем что в заданной папке и подпапках находятся книги Excel, созданные по одному шаблону, и в каждом из них имеются данные в ячейке A1 на Лист1.    
Подскажите пожалуйста что нужно добавить в код макроса в примере для того чтобы в результате отображались не только имя файла, путь, размер и т.д., но и данные из ячейки A1 на Лист1 для каждого найденного файла!
Помогите! Нужно чтоб при вписывании значения в одну ячейку, две другие заполнялись автоматически
 
С ВПР все хорошо, но только таблица с исходными данными ДОЛЖНА быть отсортирована по возрастанию...
Помогите! Нужно чтоб при вписывании значения в одну ячейку, две другие заполнялись автоматически
 
Так?
Интересный знак
 
{quote}{login=}{date=19.02.2011 12:13}{thema=}{post}А как применяется он для работы с формулами? Можно просто пример? Спасибо.{/post}{/quote}  
 
Работает как функция =СЦЕПИТЬ(A1;" ";A2).  
Тоже самое =A1&" "&A2
Ошибка Excel после закрытия книги, созданной макросом
 
Кажись разобрался. Что-то связано с очисткой буфера обмена. Обойти удалось с помощью Selection.Clear при последнем копировании и закрытия исходника по окончании без сохранения. Теперь ошибок не возникает, но пользоваться не очень удобно.  
А кто-нибудь знает как можно очистить буфер другим способом?
Ошибка Excel после закрытия книги, созданной макросом
 
Помогите пожалуйста! Есть документ в котором с помощью функции СЛЧИС() просчитываются некоторые значения. По данным из этого документа на основе шаблона (*.xlt) создается книга с неизменными, конкретными значениями. Для этой цели собран следующий код, а для удобства новая книга автоматически сохраняется по пути в зависимости от данных на листе.  
В принципе, работает как надо, однако есть одно "но". Когда макрос уже выполнен и созданная книга открыта - все хорошо, но если ее закрыть и продолжить работу с исходным документом, вылетает ошибка и Excel закрывается. Как исправить - не могу понять.  
 
' Функции для обращения к папке Мои документы  
Private Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwndOwner As Long, ByVal nFolder As Long, ppidl As Long) As Long  
Private Declare Function SHGetPathFromIDList Lib "shell32" (pidl As Long, ByVal pszPath As String) As Long  
Private Const MAX_PATH = 260  
Public Enum siCSIDL_VALUES  
   CSIDL_PERSONAL = &H5 ' Папка "Мои документы"  
End Enum  
Private Function dhTrimNull(strValue As String) As String  
   Dim intPos As Integer  
   intPos = InStr(strValue, vbNullChar)  
Select Case intPos  
Case 0  
   dhTrimNull = strValue  
Case 1  
   dhTrimNull = ""  
Case Else  
   dhTrimNull = Left$(strValue, intPos - 1)  
End Select  
End Function  
Public Function SpecialFolderLocation(ByVal CSIDL As siCSIDL_VALUES) As String  
   Dim lngRet As Long  
   Dim strLocation As String  
   Dim pidl As Long  
   lngRet = SHGetSpecialFolderLocation(0, CSIDL, pidl)  
   strLocation = Space$(MAX_PATH)  
   lngRet = SHGetPathFromIDList(ByVal pidl, strLocation)  
   SpecialFolderLocation = dhTrimNull(strLocation)  
End Function  
Sub Создание_протокола()  
   With Application  
       .Calculation = xlManual  
       .MaxChange = 0.001  
   End With  
   i = ThisWorkbook.Name  
   Application.ScreenUpdating = False  
   Workbooks.Open Filename:= _  
   "C:\Шаблон.xlt" _  
   , Editable:=True  
   Sheets("Лист1").Select  
   Windows(i).Activate  
     
   ' Копирование-вставка из исходного документа в шаблон  
   Range("A4:AI49").Select  
   Selection.Copy  
   Windows("Шаблон.xlt").Activate  
   Range("A4:AI49").Select  
   Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _  
   xlNone, SkipBlanks:=False, Transpose:=False  
   With Application  
       .Calculation = xlAutomatic  
       .MaxChange = 0.001  
   End With  
   Windows(i).Activate  
   Range("AL4:AN9").Select  
   Selection.Copy  
   Windows("Шаблон.xlt").Activate  
   Range("AL4:AN9").Select  
   Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _  
   xlNone, SkipBlanks:=False, Transpose:=False  
     
   ' Создание пути к файлу  
   strPath = SpecialFolderLocation(CSIDL_PERSONAL)  
   ControlPath = "\" & "Контроль"  
   ObjectPath = ControlPath & "\" & Range("AM5")  
   OrganizationPath = ObjectPath & "\" & Range("L52")  
   MaterialPath = OrganizationPath & "\" & "Материал"  
   DatePath = MaterialPath & "\" & Range("AM10")  
   ControlFolderName = strPath & ControlPath  
   ObjectFolderName = strPath & ObjectPath  
   OrganizationFolderName = strPath & OrganizationPath  
   MaterialFolderName = strPath & MaterialPath  
   DateFolderName = strPath & DatePath  
   Set oFSO = CreateObject("Scripting.FileSystemObject")  
   Do Until oFSO.FolderExists(DateFolderName)  
   If oFSO.FolderExists(DateFolderName) = True Then  
   ChDir DateFolderName  
   Else  
       If oFSO.FolderExists(ControlFolderName) = False Then  
       MkDir ControlFolderName  
       Else  
           If oFSO.FolderExists(ObjectFolderName) = False Then  
           MkDir ObjectFolderName  
           Else  
               If oFSO.FolderExists(OrganizationFolderName) = False Then  
               MkDir OrganizationFolderName  
               Else  
                   If oFSO.FolderExists(MaterialFolderName) = False Then  
                   MkDir MaterialFolderName  
                   Else  
                       If oFSO.FolderExists(DateFolderName) = False Then  
                       MkDir DateFolderName  
                       Else  
                       ChDir ControlFolderName  
                       End If  
                   End If  
               End If  
           End If  
       End If  
   End If  
   Loop  
   If oFSO.FolderExists(DateFolderName) = True Then  
   ChDir DateFolderName  
   End If  
     
   ' Вывод диалогового окна Сохранить как... с уже введеным именем документа  
   Имя_для_Сохранения = [H18] & " " & [AE16]
   On Error Resume Next  
   Set SH = Workbooks(Имя_для_Сохранения & ".xls")  
   If Not IsEmpty(SH) Then  
   Workbooks(Имя_для_Сохранения & ".xls").Close (True)  
   FName = Application.GetSaveAsFilename(InitialFileName:=Имя_для_Сохранения, _  
   FileFilter:="Excel Files (*.xls), *.xls", _  
   Title:=" Сохранение документа ")  
   Else  
   FName = Application.GetSaveAsFilename(InitialFileName:=Имя_для_Сохранения, _  
   FileFilter:="Excel Files (*.xls), *.xls", _  
   Title:="Сохранение документа")  
   End If  
   If VarType(FName) <> vbBoolean Then Workbooks("Шаблон.xlt").SaveAs FName  
   Windows("Шаблон.xlt").Close (False)  
   Application.ScreenUpdating = True  
End Sub
Выбор перекрывающих участков из массива по условию
 
Всем доброго времени суток!  
Это задача, которую не могу решить уже с неделю! Есть таблица с данными: первый столбец - дата производства работ, второй - отметка начала работ, третий - отметка окончания работ в этот день. Работы по отсыпке грунта и нужно по этим данным отследить на каких участках сколько слоев уложено и т.д.  
Вопрос в том как из этого массива (в примере) собрать таблицу:  
1 слой - участок1 - участок5  
2 слой...  
3 слой...
Сохранение книги по данным из ячейки
 
Может не цеплять из-за формата ячейки где находится дата. Попробуйте изменить формат ячейки, например на [$-419]Д МММ ГГ;@ так чтоб получилось 29 янв 2011.
Сохранение книги по данным из ячейки
 
Вроде работает.  
1. Только нужно быть внимательным, если открыт файл имя которого совпадает с тем какой должен быть создан, открытый файл закроется с сохранением автоматически.  
2. Определитесь с одним форматом файла, чтоб не возникало ошибок.  
3. В строке  
Имя_для_Сохранения = [E2] & " а также " & [F2]
" а также " можно заменить на что-либо другое или вообще убрать, но только оставить [E2] & [F2].
Сохранение книги по данным из ячейки
 
{quote}{login=maragva}{date=29.01.2011 04:12}{thema=}{post}че-т не выходит:  
 
Private Sub CommandButton1_Click()  
   
ChDir "C:\Папка\"  
Имя_для_Сохранения = [H3] & " а также " & [E3]
FName = Application.GetSaveAsFilename(InitialFileName:=Имя_для_Сохранения, _  
FileFilter:="Excel Files (*.xlsm), *.xlsm", _  
Title:="Сохранение документа")  
If VarType(FName) <> vbBoolean Then Workbooks("111.xls").SaveAs FName  
 
фразу Workbooks("111.xls").SaveAs FName выделяет желтым  
End Sub{/post}{/quote}  
 
Если у вас файл *.xlsm, то надо писать Workbooks("111.xlsm").SaveAs FName  
Далее, зайдите в редактор Visual Basic и создайте в своем документе новый отдельный модуль и всавьте туда код. Private Sub CommandButton1_Click() нужно заменить к примеру на Sub Сохранение(). Редактор закрыть.  
Далее надо отобразить панель элементы управления и создать кнопку, которой назначить макрос.
Сохранение книги по данным из ячейки
 
Если понадобится чтобы появлялось окошко сохранения документа в указанной папке с уже введенным именем из ячеек A1 и B1:  
 
Sub Сохранение()  
     
   ChDir "C:\Папка\"  
   Имя_для_Сохранения = [A1] & " а также " & [B1]
   FName = Application.GetSaveAsFilename(InitialFileName:=Имя_для_Сохранения, _  
   FileFilter:="Excel Files (*.xls), *.xls", _  
   Title:="Сохранение документа")  
   If VarType(FName) <> vbBoolean Then Workbooks("111.xls").SaveAs FName  
     
End Sub
Помогите с макросом, выполняющий заданные действия
 
Возможно подойдет, но надо проверять:  
 
Sub Макрос1()  
   Rows("1:5").Select  
   Selection.Delete Shift:=xlUp  
   Rows("2:3").Select  
   Selection.ClearContents  
   Range("A1").Select  
   ActiveCell.FormulaR1C1 = "Дата"  
   Range("B1").Select  
   Selection.NumberFormat = "dd/mm/yyyy;@"  
   Range("A2").Select  
   ActiveCell.FormulaR1C1 = "Номер паспорта"  
   Range("C1").Select  
   Dim lLastRow As Long, li As Long  
   lLastRow = Cells(Rows.Count, 3).End(xlUp).Row  
   For li = 1 To lLastRow  
   If Cells(li, 3).Text = "" Then Range(Cells(lLastRow + 1, 3), Cells(lLastRow + 134, 3)).EntireRow.Delete  
   Next li  
   Range("T1").Select  
   ActiveCell.FormulaR1C1 = " "  
   Range("T1").Select  
   Selection.AutoFill Destination:=Range("T1:T133"), Type:=xlFillDefault  
   Range("A133").Select  
   ActiveCell.FormulaR1C1 = " "  
   Range("A133").Select  
   Selection.AutoFill Destination:=Range("A133:T133"), Type:=xlFillDefault  
   ActiveWorkbook.SaveAs Filename:="C:\Мой файл.xls", FileFormat:= _  
       xlOpenXMLWorkbook, CreateBackup:=False  
End Sub
Обращение к диалогу ввода пароля на открытие книги с помощью макроса
 
{quote}{login=EducatedFool}{date=26.12.2010 09:07}{thema=}{post}Макрос не будет запускаться автоматически.  
 
Назначьте этому макросу комбинацию клавиш или кнопку - и открывайте ваш вайл нажатием этой комбинации клавиш или кнопки (вместо того, чтобы запускать файл как раньше)  
 
И уберите макрос из Sub Auto_Open() - он там не нужен.{/post}{/quote}  
Понял, большое спасибо!
Обращение к диалогу ввода пароля на открытие книги с помощью макроса
 
Интересная особенность.  
Создал файл Checkboxes.xls, установил пароль на открытие...  
Создал в личной книге макросов Sub Auto_Open() и вставил туда Ваш код.  
При запуске Excel автоматически запустился макрос Auto_Open() и документ открылся без проблем, а при непосредственном открытии файла Checkboxes.xls появляется диалог на ввод пароля.  
Как я понял, во втором случае макрос автоматически не запустился.
Обращение к диалогу ввода пароля на открытие книги с помощью макроса
 
Уважаемый EducatedFool, прошу прощения за последнее сообщение! В первый раз что-то не сработало, но сейчас все OK! Как все просто!
Обращение к диалогу ввода пароля на открытие книги с помощью макроса
 
Вообще-то да! А как это осуществить с учетом вышеизложенного?
Обращение к диалогу ввода пароля на открытие книги с помощью макроса
 
{quote}{login=EducatedFool}{date=26.12.2010 07:03}{thema=}{post}Я обычно делаю так: (если путь к документу известен, и не меняется)  
 
1) пишу макрос (к примеру, в личную книгу макросов), который открывает указанный файл с использованием прописанного в макросе пароля.  
2) назначаю этому макросу комбинацию клавиш, или кнопку на панели инструментов.  
 
теперь достаточно нажать одну кнопку - и запароленный файл открыт{/post}{/quote}  
У меня именно такая ситуация! А есть пример указанного выше макроса? или хотя бы часть кода с вводом пароля?
Обращение к диалогу ввода пароля на открытие книги с помощью макроса
 
{quote}{login=Юрий М}{date=26.12.2010 06:46}{thema=}{post}Смотрите: Вы защитили паролем какой-то конкретный документ, и хотите, чтобы при открытии у Вас не запрашивался пароль. Допустим, это сделано. Как Excel узнает, что это именно Вы открываете файл? Ведь он откроется в любом случае. Где же тут защита?{/post}{/quote}  
Мне важно, чтоб им нельзя было пользоваться в другом месте. Ведь там в случае если его скопировать (или сохранить как), пароль на открытие будет запрашиваться.  
Буду очень благодарен за поддержку.
Обращение к диалогу ввода пароля на открытие книги с помощью макроса
 
Уважаемые эксперты!  
У меня возник вопрос, на который не смог найти ответ нигде.  
В созданном документе нет секретной информации, но свои наработки желания раздавать нет.  
Поэтому для того чтобы им не могли воспользоваться в другом месте, я поставил пароль на открытие файла. Но поскольку приходится им пользоваться часто, каждый раз при открытии вводить пароль, мягко скажем, не удобно.  
Возможно ли каким-то образом заставить макрос, который записан в личной книге и начинает работу сразу после запуска Excel (Auto_Open()), автоматически вводить пароль на открытие документа?
Страницы: 1
Loading...