Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Запрос диалогового окна выбора excel файла

Ответить
Настройки темы
VBA - Запрос диалогового окна выбора excel файла

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток!!!

Помогите со скриптом. Есть Excel файл, нужно по нажатию кнопки выходило диалоговое окно выбора excel файла из которого копируется определённый диапазон с данными и вставляется в текущий. Заранее спасибо.

Отправлено: 11:55, 29-08-2012

 

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


ок. Давайте по порядку.

В исходном файле есть диапазон с9:с17(это коробки), этот диапазон не постоянен может быть больше коробок может быть меньше, этот диапазон определяется объединением ячеек J9(Pallet #1 это площадка на которой размещаются эти коробки). Как можно сделать чтобы копировались данные (коробки которые стоят на площадке Pallet #1) только которые в диапазоне объединения ячеек J9.

наверное опять не понятно сказал

Отправлено: 05:15, 04-09-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


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

Отправлено: 09:35, 04-09-2012 | #12


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за помощь закрываем тему там на самом деле всё гораздо сложней чем казалось изначально...

Отправлено: 11:04, 04-09-2012 | #13


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: xlsx Книга1.xlsx
(10.0 Kb, 7 просмотров)

Как сделать в примере, чтобы числа во втором столбце, через запятую, опустились ниже на ячейку, и остальные данные, которые в этой же строке скопировались так же вниз. На примере думаю видно.

Отправлено: 11:58, 07-09-2012 | #14


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


storm_Zcooler, примерно так:
читать дальше »
Код: Выделить весь код
Option Explicit

Sub SomeSample()
    Dim objRange As Range
    
    Dim i As Long
    Dim j As Long
    
    Dim arrValues() As String
    
    
    With Selection.Cells
        For i = .Count To 1 Step -1
            With .Item(i)
                arrValues = Split(.Value, ",")
                
                For j = UBound(arrValues) To LBound(arrValues) Step -1
                    .EntireRow.Offset(1).Insert
                    
                    .Offset(1, 0).Value = arrValues(j)
                    .Offset(1, -1).Value = .Offset(0, -1).Value
                    .Offset(1, 1).Value = .Offset(0, 1).Value
                    .Offset(1, 2).Value = .Offset(0, 2).Value
                Next
                
                .EntireRow.Delete
            End With
        Next
    End With
End Sub

Перед исполнением макроса необходимо выделить потребный диапазон со значениями. В Вашем примере это «B2:B4».

А вообще, какое отношение теперешний вопрос имеет к озвученной теме — «Запрос диалогового окна выбора excel файла»?
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:29, 07-09-2012 | #15


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: xlsx Книга1.xlsx
(11.0 Kb, 9 просмотров)

Приветствую, спасибо за советы но вот задачка немного изменилась, надо чтобы значения после запятой опускались вниз и всё что слева тоже копировались, а справа только в 1 раз оставались. Прикладываю файл там думаю понятней будет.

P.S. у тебя есть яндекс кошелек? Отблагодарю.

Отправлено: 13:31, 10-09-2012 | #16


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата storm_Zcooler:
а справа только в 1 раз оставались. »
Удалите или закомментируйте ненужные присвоения:
Код: Выделить весь код
.Offset(XXX, XXX).Value = …
2003: Offset Property [Excel 2003 VBA Language Reference]
2007: Offset Property
2010: Offset Property

Впрочем, никакой разницы по версиям нет. Ну, да ладно.

Цитата storm_Zcooler:
P.S. у тебя есть яндекс кошелек? »
Нет. Обычного, впрочем, тоже нет.

Цитата storm_Zcooler:
Отблагодарю. »
Попробуйте обратиться к Администрации, может им сгодится.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:24, 11-09-2012 | #17


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: xlsx Книга1 (3).xlsx
(11.8 Kb, 7 просмотров)

Цитата Iska:
а справа только в 1 раз оставались. »
Удалите или закомментируйте ненужные присвоения:
Код:
.Offset(XXX, XXX).Value = … »

Если её удаляю, то значения не будут копироваться вообще, а мне надо только, чтобы в первая строка копировалась полностью, а ниже добавлялись строки со значениями, которые отделяются запятой и всё, что справа было от них, а слева было пусто.

Обновил пример во вложении, может так наглядней будет.

Отправлено: 05:28, 11-09-2012 | #18


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


storm_Zcooler, не доглядел с первого раза, не понял до конца Вашей потребности. Приношу Вам свои извинения.

Значит, будет достаточно проверять счётчик и на последнем проходе цикла разбора дублировать и ячейки справа, наподобие:
читать дальше »
Код: Выделить весь код
Option Explicit

Sub SomeSample()
    Dim objRange As Range
    
    Dim i As Long
    Dim j As Long
    
    Dim arrValues() As String
    
    
    With Selection.Cells
        For i = .Count To 1 Step -1
            With .Item(i)
                arrValues = Split(.Value, ",")
                
                For j = UBound(arrValues) To LBound(arrValues) Step -1
                    .EntireRow.Offset(1).Insert
                    
                    .Offset(1, 0).Value = arrValues(j)
                    
                    .Offset(1, -4).Value = .Offset(0, -4).Value
                    .Offset(1, -3).Value = .Offset(0, -3).Value
                    .Offset(1, -2).Value = .Offset(0, -2).Value
                    .Offset(1, -1).Value = .Offset(0, -1).Value
                    
                    If j = LBound(arrValues) Then
                        .Offset(1, 1).Value = .Offset(0, 1).Value
                        .Offset(1, 2).Value = .Offset(0, 2).Value
                        .Offset(1, 3).Value = .Offset(0, 3).Value
                        .Offset(1, 4).Value = .Offset(0, 4).Value
                    End If
                Next
                
                .EntireRow.Delete
            End With
        Next
    End With
End Sub

Или вовсе на последнем проходе новую строку не добавлять, саму оригинальную строку не удалять, а просто менять значение разбираемой ячейки на последнее значение разбора:
читать дальше »
Код: Выделить весь код
Option Explicit

Sub SomeSample()
    Dim objRange As Range
    
    Dim i As Long
    Dim j As Long
    
    Dim arrValues() As String
    
    
    With Selection.Cells
        For i = .Count To 1 Step -1
            With .Item(i)
                arrValues = Split(.Value, ",")
                
                For j = UBound(arrValues) To LBound(arrValues) Step -1
                    If j = LBound(arrValues) Then
                        .Value = arrValues(j)
                    Else
                        .EntireRow.Offset(1).Insert
                        
                        .Offset(1, 0).Value = arrValues(j)
                        
                        .Offset(1, -4).Value = .Offset(0, -4).Value
                        .Offset(1, -3).Value = .Offset(0, -3).Value
                        .Offset(1, -2).Value = .Offset(0, -2).Value
                        .Offset(1, -1).Value = .Offset(0, -1).Value
                    End If
                Next
            End With
        Next
    End With
End Sub

Думаю, так даже лучше будет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:45, 11-09-2012 | #19



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Запрос диалогового окна выбора excel файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - подвисает после закрытия диалогового окна woffka@vk Microsoft Windows 7 3 17-04-2012 16:56
Ошибка - [решено] Зеркальное отображение диалогового окна AnIG Microsoft Windows 2000/XP 4 22-04-2011 10:40
MFC - Открытие диалогового окна MFC vayak Программирование и базы данных 1 23-12-2009 23:39
Удаление ярлыка из диалогового окна автозапуска larios Microsoft Windows 2000/XP 1 03-02-2007 09:38
Пропал элемент диалогового окна antOOn Microsoft Windows 2000/XP 8 29-01-2005 00:19




 
Переход