Notifications
Clear all

VBA Alternativas para Application.GetOpenFilename

3 Posts
2 Usuários
0 Reactions
1,697 Visualizações
(@xxmottaxx)
Posts: 0
New Member
Topic starter
 

Pessoal, bom dia!

Fiz uma planilha onde tenho um botão de upload (browse) que abre um arquivo com extensão .xls* para poder copiar algumas informações dessa planilha.

O problema é que só consigo selecionar uma planilha de cada vez no browse. Alguem sabe como faço para ela abrir varias planilhas de uma única vez ?

Abraços

Sub Upload_I()

Dim Checklist As String
Dim Comparison As String
Dim Opco, Brewery, Year, Quarter As String
Dim Ultimalinha As Long

'Browse
ComparisonSheet = ActiveWorkbook.Name
Checklist = Application.GetOpenFilename(Title:="Please choose a file to open", FileFilter:="Excel Files *.xls* (*.xls*),")
Workbooks.Open Filename:=Checklist
ChecklistSheet = ActiveWorkbook.Name

'lock
Application.ScreenUpdating = False

'Copy DS
Windows(ChecklistSheet).Activate
Sheets("Summary").Select
Range("C5:M5").Copy
Windows(ComparisonSheet).Activate
Sheets("Upload").Select
Range("I2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

'Pasting in DB
Windows(ComparisonSheet).Activate
Sheets("Upload").Select
Range("a2:J397").Select
Selection.Copy
Sheets("DB").Select
Range("a" & Range("A" & Rows.Count).End(xlUp).Row + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'unlock
Application.ScreenUpdating = False

Exit Sub

 
Postado : 04/11/2014 2:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Para poder selecionar vários arquivos, você tem de indicar a propiedade - "MultiSelect" na rotina:

Troque esta linha :
Checklist = Application.GetOpenFilename(Title:="Please choose a file to open", FileFilter:="Excel Files *.xls* (*.xls*),")
por esta :
Checklist = Application.GetOpenFilename(FileFilter:="Excel 97-2003 Files (*.xls), *.xls", Title:="Select a file or files", MultiSelect:=True)

Só que você vai ter de ajustar toda a sua rotina, uma vez que está copiando e colando os dados da planilha ativa, e tambem ajustar a linha se nenhum arquivo foi selecionado.
Aconselho dar uma olhada no link abaixo, tem uma rotina completa, veja se consegue ajustar.
http://msdn.microsoft.com/en-us/library ... =office.14).aspx

[]s

 
Postado : 04/11/2014 6:14 pm
(@xxmottaxx)
Posts: 0
New Member
Topic starter
 

Para poder selecionar vários arquivos, você tem de indicar a propiedade - "MultiSelect" na rotina:

Troque esta linha :
Checklist = Application.GetOpenFilename(Title:="Please choose a file to open", FileFilter:="Excel Files *.xls* (*.xls*),")
por esta :
Checklist = Application.GetOpenFilename(FileFilter:="Excel 97-2003 Files (*.xls), *.xls", Title:="Select a file or files", MultiSelect:=True)

Só que você vai ter de ajustar toda a sua rotina, uma vez que está copiando e colando os dados da planilha ativa, e tambem ajustar a linha se nenhum arquivo foi selecionado.
Aconselho dar uma olhada no link abaixo, tem uma rotina completa, veja se consegue ajustar.
http://msdn.microsoft.com/en-us/library ... =office.14).aspx

[]s

Obrigado Mauro era exatamente o que eu estava procurando. Só preciso agora reescrever a rotina.

Se tiver algum problema no caminho peço ajuda novamente!

Abs

 
Postado : 05/11/2014 6:21 am