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

Вход

Регистрация

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

 

= Мир MS Excel/Выбор нескольких файлов в пользовательской форме - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выбор нескольких файлов в пользовательской форме
Leojse Дата: Суббота, 14.10.2017, 20:52 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Добрый вечер, уважаемые форумчане!
Помогите, пожалуйста, разобраться со следующим вопросом.
Обрабатываю 2 книги макросом. Жму на кнопку, выбираю для обработки первую книгу. Затем, после обработки первой книги, выбираю вторую для обработки. Выбор книг последовательно осуществляется с помощью стандартных диалоговых окон.
Мне бы очень хотелось, чтобы можно было сразу выбирать несколько книг для обработки и обрабатывать их вместе.
То есть, нажал на кнопку "Обзор файла 1" - выбрал первую книгу, нажал на "Обзор файла 2" - выбрал вторую книгу, нажал на кнопку "Обработка" (в примере просто нарисована кнопка без кода) и книги начали обрабатываться. Прикрутить диалоговые окна к этим кнопкам не проблема, но дело в том, что я не знаю, как сделать так, чтобы в поле рядом с кнопками отражался путь выбранных книг.
Заранее, огромное Вам спасибо за любую помощь!
К сообщению приложен файл: 7598028.xls (35.5 Kb)
 
Ответить
СообщениеДобрый вечер, уважаемые форумчане!
Помогите, пожалуйста, разобраться со следующим вопросом.
Обрабатываю 2 книги макросом. Жму на кнопку, выбираю для обработки первую книгу. Затем, после обработки первой книги, выбираю вторую для обработки. Выбор книг последовательно осуществляется с помощью стандартных диалоговых окон.
Мне бы очень хотелось, чтобы можно было сразу выбирать несколько книг для обработки и обрабатывать их вместе.
То есть, нажал на кнопку "Обзор файла 1" - выбрал первую книгу, нажал на "Обзор файла 2" - выбрал вторую книгу, нажал на кнопку "Обработка" (в примере просто нарисована кнопка без кода) и книги начали обрабатываться. Прикрутить диалоговые окна к этим кнопкам не проблема, но дело в том, что я не знаю, как сделать так, чтобы в поле рядом с кнопками отражался путь выбранных книг.
Заранее, огромное Вам спасибо за любую помощь!

Автор - Leojse
Дата добавления - 14.10.2017 в 20:52
KuklP Дата: Суббота, 14.10.2017, 21:25 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
как сделать так, чтобы в поле рядом с кнопками отражался путь выбранных книг

А просто разрешить мультиселект в диалоге не вариант? И второй кнопки не надо.
[vba]
Код
Private Sub CommandButton1_Click()
    Dim x, a(1 To 2)
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите файл 1"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Файл 1", "*.xls*"
        If .Show = 0 Then
            Exit Sub
        End If
        For x = 1 To IIf(.SelectedItems.Count > 1, 2, 1)
            a(x) = .SelectedItems(x)
            Me.Controls("TextBox" & x) = a(x)
            Workbooks.Open a(x)
        Next
    End With
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Суббота, 14.10.2017, 21:46
 
Ответить
Сообщение
как сделать так, чтобы в поле рядом с кнопками отражался путь выбранных книг

А просто разрешить мультиселект в диалоге не вариант? И второй кнопки не надо.
[vba]
Код
Private Sub CommandButton1_Click()
    Dim x, a(1 To 2)
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите файл 1"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Файл 1", "*.xls*"
        If .Show = 0 Then
            Exit Sub
        End If
        For x = 1 To IIf(.SelectedItems.Count > 1, 2, 1)
            a(x) = .SelectedItems(x)
            Me.Controls("TextBox" & x) = a(x)
            Workbooks.Open a(x)
        Next
    End With
End Sub
[/vba]

Автор - KuklP
Дата добавления - 14.10.2017 в 21:25
Leojse Дата: Суббота, 14.10.2017, 21:47 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
KuklP, спасибо за совет!
Но дело в том, что с двух книг собираются данные в третью книгу (в третьей книге и содержится код обработки). После сборки данных с книг, идет обработка данных. Затем, данные этих книг обрабатываются по разным принципам. Если разрешить мультиселект, то выбираю сразу две книги. Но как в таком случае указывать, какие данные из какой книги копировать и затем обрабатывать в третьей (сводной) книге? У двух обрабатываемых книг всегда разные имена, разное количество листов и в третьей книге данные книг-источников обрабатываются по-разному.
 
Ответить
СообщениеKuklP, спасибо за совет!
Но дело в том, что с двух книг собираются данные в третью книгу (в третьей книге и содержится код обработки). После сборки данных с книг, идет обработка данных. Затем, данные этих книг обрабатываются по разным принципам. Если разрешить мультиселект, то выбираю сразу две книги. Но как в таком случае указывать, какие данные из какой книги копировать и затем обрабатывать в третьей (сводной) книге? У двух обрабатываемых книг всегда разные имена, разное количество листов и в третьей книге данные книг-источников обрабатываются по-разному.

Автор - Leojse
Дата добавления - 14.10.2017 в 21:47
Leojse Дата: Суббота, 14.10.2017, 21:52 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
KuklP, спасибо!
 
Ответить
СообщениеKuklP, спасибо!

Автор - Leojse
Дата добавления - 14.10.2017 в 21:52
KuklP Дата: Суббота, 14.10.2017, 21:53 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Да не вопрос, если вычислить что-куда не можете:
[vba]
Код
Private Sub CommandButton1_Click()
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите файл 1"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Файл 1", "*.xls*"
        If .Show = 0 Then
            Exit Sub
        End If
            Me.Controls("TextBox1") = .SelectedItems(1)
            Workbooks.Open .SelectedItems(1)
    End With
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеДа не вопрос, если вычислить что-куда не можете:
[vba]
Код
Private Sub CommandButton1_Click()
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите файл 1"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Файл 1", "*.xls*"
        If .Show = 0 Then
            Exit Sub
        End If
            Me.Controls("TextBox1") = .SelectedItems(1)
            Workbooks.Open .SelectedItems(1)
    End With
End Sub
[/vba]

Автор - KuklP
Дата добавления - 14.10.2017 в 21:53
Leojse Дата: Воскресенье, 15.10.2017, 00:38 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Простите, пожалуйста, но снова прошу Вас о помощи.
Подобрал файлы в пользовательскую форму, здесь всё хорошо.
[vba]
Код
Private Sub CommandButton1_Click()
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите файл 1"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Файл 1", "*.xls*"
        If .Show = 0 Then
            Exit Sub
        End If
            Me.Controls("TextBox1") = .SelectedItems(1)
          End With
End Sub
[/vba]
[vba]
Код
Private Sub CommandButton2_Click()
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите файл 2"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Файл 2", "*.xls*"
        If .Show = 0 Then
            Exit Sub
        End If
            Me.Controls("TextBox2") = .SelectedItems(1)
     End With
End Sub
[/vba]
Затем, когда я нажимаю на кнопку "Обработка файлов" (на нее отдельный код), выдается ошибка, что невозможно найти файл. Я понимаю, что после нажатия на кнопки "Файл 1" и "Файл 2" переменные освобождаются. Подскажите, пожалуйста, а как снова обратиться к книгам, которые я выбрал ранее по кнопкам?
 
Ответить
СообщениеПростите, пожалуйста, но снова прошу Вас о помощи.
Подобрал файлы в пользовательскую форму, здесь всё хорошо.
[vba]
Код
Private Sub CommandButton1_Click()
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите файл 1"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Файл 1", "*.xls*"
        If .Show = 0 Then
            Exit Sub
        End If
            Me.Controls("TextBox1") = .SelectedItems(1)
          End With
End Sub
[/vba]
[vba]
Код
Private Sub CommandButton2_Click()
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите файл 2"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Файл 2", "*.xls*"
        If .Show = 0 Then
            Exit Sub
        End If
            Me.Controls("TextBox2") = .SelectedItems(1)
     End With
End Sub
[/vba]
Затем, когда я нажимаю на кнопку "Обработка файлов" (на нее отдельный код), выдается ошибка, что невозможно найти файл. Я понимаю, что после нажатия на кнопки "Файл 1" и "Файл 2" переменные освобождаются. Подскажите, пожалуйста, а как снова обратиться к книгам, которые я выбрал ранее по кнопкам?

Автор - Leojse
Дата добавления - 15.10.2017 в 00:38
Leojse Дата: Воскресенье, 15.10.2017, 01:00 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Разобрался сам.
 
Ответить
СообщениеРазобрался сам.

Автор - Leojse
Дата добавления - 15.10.2017 в 01:00
  • Страница 1 из 1
  • 1
Поиск:

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