Notifications
Clear all

[Resolvido] Especificar caminho dentro da macro

5 Posts
4 Usuários
2 Reactions
1,324 Visualizações
(@souzadenilson)
Posts: 96
Estimable Member
Topic starter
 

Boa noite.

Possuo um macro que fiz pequenas adaptações, porém não consegui especificar dentro dela o caminho que se encontra, para que quando importar o arquivo em csv.

Quando rodo as macros, tem que clicar no arquivo que deseja que seja importado. tentei colocar diretamente dentro da macro o caminho do arquivo.

Para rodar as macros tem que clicar no logotipo que se encontra na planilha

 
Postado : 06/09/2020 1:13 am
(@srobles)
Posts: 231
Estimable Member
 

@souzadenilson

 

Experimente substituir a macro Importa_ArquivoCSV existente no módulo, pela macro abaixo :

Sub Importa_ArquivoCsv()
'Pra mais detalhes veja o Post que originou essa dúvida
'http://www.mabesi.com/forum/excel/475-importar-arquivo-csv-no-excel-2010.html
Dim csvFileName As String
Dim destCell As Range, lr, i As Long
Dim caixaArquivoCSV As Office.FileDialog

Set caixaArquivoCSV = Application.FileDialog(msoFileDialogFilePicker)

With caixaArquivoCSV
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "CSV Files", "*.csv"
.InitialFileName = ThisWorkbook.Path
.InitialView = msoFileDialogViewList
.Title = "Select CSV File"
.Show
End With

If caixaArquivoCSV.SelectedItems.Count = 1 Then

Set destCell = Worksheets("ArquivoImportado").Cells(Rows.Count, "b").End(xlUp).Offset(1)

csvFileName = caixaArquivoCSV.SelectedItems(1)

Application.ScreenUpdating = False
With destCell.Parent.QueryTables.Add(Connection:="TEXT;" & csvFileName, Destination:=destCell)
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileSemicolonDelimiter = True
.TextFileDecimalSeparator = ","
.Refresh BackgroundQuery:=False
End With

destCell.Parent.QueryTables(1).Delete

Application.ScreenUpdating = True

End If
End Sub

Favor, teste e retorne.

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 06/09/2020 1:51 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Olá, @souzadenilson

Vc. quer usar um caminho e nome de arquivo fixos, sem ter que escolher, seria isso? altere essa linha no procedimento Importa_ArquivoCsv:

 csvFileName = Application.GetOpenFilename(FileFilter:="CSV Files (*.csv),*.csv", Title:="Select a CSV File", MultiSelect:=False)

para isso:

csvFileName = "C:\Users\souza\OneDrive\Área de Trabalho\Arquivos Alterados\Atual.csv"

 

 

 
Postado : 06/09/2020 2:21 am
(@souzadenilson)
Posts: 96
Estimable Member
Topic starter
 

@edsonbr, obrigado pela dica, funcionou perfeitamente.

Se no caso for utilizar uma pessoa leiga no assunto, qual caminho utilizaria para esta planilha reconhecer o arquivo que será importado, ou seja, qualquer lugar do computador

 
Postado : 06/09/2020 11:21 am
(@mprudencio)
Posts: 2749
Famed Member
 
Postado por: @souzadenilson

@edsonbr, obrigado pela dica, funcionou perfeitamente.

Se no caso for utilizar uma pessoa leiga no assunto, qual caminho utilizaria para esta planilha reconhecer o arquivo que será importado, ou seja, qualquer lugar do computador

Ai o ideal seria vc voltar a opção anterior, onde a pessoa escolhe o local onde esta o arquivo e qual arquivo a pessoa vai importar.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 06/09/2020 1:01 pm