Страницы: 1
RSS
Команда в макросе на открытие файла
 
привет всем!
являюсь пользователем макросов нулевого уровня, работаю с ними только с помощью макрорекордера.
суть проблемы:
мы ежедневно получаем сводную информацию в разрезе клиентов и регионов, которые нужно разделять по регионам и направлять ответственным работникам. при этом каждый день меняется адрес папки и имя файла. к примеру, сегодня файл называется "18.08.2015" и находится в папке "18.08.2015". завтра это будет соответственно "19.08.2015" файл и "19.08.2015" папка.
и с имеющимися знаниями, чтобы запустить макрос я захожу в код, и вручную меняю название файла и папок посредством автозамены. это немного надоедает.
как сделать так чтобы в листе макроса определить ячейку, где можно менять дату и сразу запускать макрос, не заходя в код?
надеюсь я понятно объяснил?
 
Цитата
primitive написал: надеюсь я понятно объяснил?
Объяснили понятно, но если приложите хотя-бы одну строку кода (в которой меняете имя файла и папки) будет еще и быстрее
Согласие есть продукт при полном непротивлении сторон
 
"как сделать так" - прописать в коде вместо части пути ссылку на эту ячейку с датой.
Можно и просто подставлять значение текущей даты.
 
Код
Sub jjj()
    MsgBox ThisWorkbook.Path & "\" & Format([a1].Value, "DD.MM.YYYY") & "\" & Format([a1].Value, "DD.MM.YYYY") & ".xlsx"
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Пока файла нет - могу сказать что можно и [a1].Text использовать.
И даже просто [a1]  :)
Изменено: Hugo - 18.08.2015 09:16:15
 
Hugo, я исходил из предположения, что формат ячейки может быть иной чем "дд.мм.гггг", например, "дд/ммм".

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
ребят... я думал получу ответ в лучшем случае через месяц)) спасибо за отзывы!

там указан и путь и название файла. правильно подметили, формат даты не имеет значения, я могу переименовать как угодно. факт в том что захожу в этот код и вручную меняю через автозамену, т.к. по тексту много встречается этот путь.
не получается нормально загрузить изображение.
Изменено: primitive - 18.08.2015 09:36:57
 
Зачем КАРТИНКА !!! Неужели ее сделать и приложить проще, чем скопировать текст макроса (или его части) и добавить  в сообщение!? Ответ тоже картинкой дать?
Согласие есть продукт при полном непротивлении сторон
 
Вы правы, не сообразил.
Код
    Workbooks.Open Filename:= _
        "Z:\Risk_menejment\Everyone\18.08.2015\Jami_18082015 yangi.xlsx", _
        UpdateLinks:=0
 
primitive, моя подсказка не помогла?
Код
Workbooks.Open Filename:= _
"Z:\Risk_menejment\Everyone\" & Format([a1].Value, "DD.MM.YYYY") & "\Jami_" & Format([a1].Value, "DDMMYYYY") & " yangi.xlsx", _
UpdateLinks:=0
Изменено: JayBhagavan - 18.08.2015 10:00:43

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, извините если плохо понимаю, но где тут ссылка на ячейки с адресом и именем файла?
 
primitive, кнопка цитирования не для ответа
 
primitive, [a1] - ссылка на ячейку, если дата во внешнем файле, то скорее всего Вам так нужно (файл должен быть открыт):
Код
workbooks("111").worksheets("222").range("333").value
Надеюсь Вам понятно, что вместо 111, 222, 333 указываете имя книги, листа и адрес ячейки.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, то есть текст
Код
workbooks("111").worksheets("222").range("333").value

ставить сразу после кавычек? и вместо
Код
Workbooks.Open Filename:= _
"Z:\Risk_menejment\Everyone\" & Format([a1].Value, "DD.MM.YYYY") & "\Jami_" & Format([a1].Value, "DDMMYYYY") & " yangi.xlsx", _
UpdateLinks:=0

будет
Код
Workbooks.Open Filename:= _
"workbooks("файл").worksheets("лист1").range("а1").value", _
UpdateLinks:=0

?
ну да, я полный нуб, что теперь делать? все когда-то начинали с нуля
 
primitive, дело не в том нуб Вы или нет, а в том, что если бы Вы приложили файл, как того советуют правила форума, то не нужно было бы писать 100500 сообщений, а можно было бы показать один раз и всё.
Продолжаем гадать дальше. Возможно так:
Код
Workbooks.Open Filename:= _
"Z:\Risk_menejment\Everyone\" & Format(workbooks("файл").worksheets("лист1").range("а1").Value, "DD.MM.YYYY") & "\Jami_" & Format(workbooks("файл").worksheets("лист1").range("а1").Value, "DDMMYYYY") & " yangi.xlsx", _
UpdateLinks:=0

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,прилагаю примерный макрос на открытие файла. мне нужно чтобы я, не заходя в код, мог менять путь и имя файла.
 
Цитата
не заходя в код, мог менять путь и имя файла
В начало кода вставьте диалог выбора файла и выбирайте нужный как в проводнике
 
Kuzmich, спасибо, но в том-то и дело что я не представляю себе что такое диалог выбора файла. я не знаю абсолютно никаких команд. искал краткие описания команд без особого результата.
 
primitive, я не понимаю, что Вам не понятно? В примере нигде нет ячейки с датой.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
я не представляю себе что такое диалог выбора файла
Код
    ' диалог выбора файла договора

Dim FD As FileDialog
Dim iFileName As String
Dim iShortFileName As String

    Set FD =Application.FileDialog(msoFileDialogFilePicker)

    With FD
        .Filters.Clear  'удаляет предопределенные фильтры
        .Filters.Add "Microsoft Excel files", "*.xls"
        .Filters.Add "Allfiles", "*.*"
        .AllowMultiSelect = False
        .InitialFileName =ThisWorkbook.Path
         '.InitialFileName ="\\Kuzmich\For_Kuzmich"      сетевой путь папки
        .Title ="Выберите нужный файл договора"
        .ButtonName ="Открыть"
        If .Show = False Then
            MsgBox "Вы не указали нужный файл!", 48,"Ошибка"
            Exit Sub
        Else
            iFileName =.SelectedItems(1)
            iShortFileName =Right(.SelectedItems(1), Len(.SelectedItems(1)) _
                                          InStrRev(.SelectedItems(1), "\"))
        End If
    End With
    Set FD = Nothing

 
Kuzmich, спасибо! попробую и скажу результат.
Страницы: 1
Наверх