Duda en macro
Publicado por jesus10991 (1 intervención) el 17/05/2017 18:38:55
Hola, buenas tardes.
Tengo una macro, la cual utilizo para abrir el contenido de un fichero CSV y que éste se copie en la Hoja 4 del libro de Excel.
Todo funcionaba con normalidad, hasta que he tenido la necesidad de usar la aplicación de Excel en otro ordenador.
En el ordenador origen, tengo la aplicación y el archivo del cual deseo copiar los datos en la carpeta Documentos y en el nuevo ordenador lo tengo en otra carpeta distinta. He de decir, que si lo cambio a documentos, cortando los archivos, no haciendo un copiado, funciona perfectamente.
Pero me gustaría saber, en que línea de la macro se hace referencia a que la búsqueda se haga en la carpeta Documentos precisamente.
Y agradecería que me modificaseis la macro, para que buscase el archivo CSV, que como veis ha de llamarse "Importar", solamente en la misma carpeta en la que tenga guardado el Excel que contiene la macro.
Os pego la macro y os agradezco la atención.
Sub ImportAllCSV()
Dim FName As Variant, R As Long
R = 1
FName = Dir("Importar.csv")
Do While FName <> ""
Sheets("Hoja4").Select
ImportCsvFile FName, ActiveSheet.Cells(R, 1)
R = ActiveSheet.UsedRange.Rows.Count + 1
FName = Dir
Loop
End Sub
Sub ImportCsvFile(FileName As Variant, Position As Range)
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & FileName _
, Destination:=Position)
.Name = Replace(FileName, ".csv", "")
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMacintosh
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = ";"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
Sheets("Hoja1").Select
End Sub
Gracias, un saludo.
Tengo una macro, la cual utilizo para abrir el contenido de un fichero CSV y que éste se copie en la Hoja 4 del libro de Excel.
Todo funcionaba con normalidad, hasta que he tenido la necesidad de usar la aplicación de Excel en otro ordenador.
En el ordenador origen, tengo la aplicación y el archivo del cual deseo copiar los datos en la carpeta Documentos y en el nuevo ordenador lo tengo en otra carpeta distinta. He de decir, que si lo cambio a documentos, cortando los archivos, no haciendo un copiado, funciona perfectamente.
Pero me gustaría saber, en que línea de la macro se hace referencia a que la búsqueda se haga en la carpeta Documentos precisamente.
Y agradecería que me modificaseis la macro, para que buscase el archivo CSV, que como veis ha de llamarse "Importar", solamente en la misma carpeta en la que tenga guardado el Excel que contiene la macro.
Os pego la macro y os agradezco la atención.
Sub ImportAllCSV()
Dim FName As Variant, R As Long
R = 1
FName = Dir("Importar.csv")
Do While FName <> ""
Sheets("Hoja4").Select
ImportCsvFile FName, ActiveSheet.Cells(R, 1)
R = ActiveSheet.UsedRange.Rows.Count + 1
FName = Dir
Loop
End Sub
Sub ImportCsvFile(FileName As Variant, Position As Range)
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & FileName _
, Destination:=Position)
.Name = Replace(FileName, ".csv", "")
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMacintosh
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = ";"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
Sheets("Hoja1").Select
End Sub
Gracias, un saludo.
Valora esta pregunta


0