Como guardar un excel en CSV en un directorio ?

Quiero usar esta macro, pero me encuentro con un problema 
Copia las columnas que quiero, pero las pega en una sola columna delimitado por comas.
Me gustaría que:
1- Genere una copia en CSV ( MS-DOS )
2- Guarde esa copia en un lugar de la red 
Sub prueba()
'por luismondelo
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Range("a:d").Copy
Workbooks(otro).Activate
Sheets(1).Range("a1").PasteSpecial Paste:=xlValues
nombre = Year(Date) & "_" & Month(Date) & "_" & Hour(Time) & "_" & Minute(Time) & " Cotizaciones "
ActiveWorkbook.SaveAs nombre, FileFormat:=xlCSV
ActiveWorkbook.Close False
End Sub

1 Respuesta

Respuesta
1

Si solo deseas que por Simbolista se copie el archivo de excel es algo así:

@echo off

IF ERRORLEVEL 2 GOTO ERROR

xcopy D:\rutacarpetaorigonal C:\rutacarpetadestino

pause
exit
:ERROR
Pause

Esto lo creas en un bloc de nota y lo guardas con una extensión .bat...

Lo que quiero y no logro es

1- Guardar como  .CSVMSDOS

2-En Z:\Comun\6-COTIZACIONES.

3-Que el nombre del archivo sea " año,mes,dia--hora minuto Cotizaciones

nombre = Year(Date) & "_" & Month(Date) & "_" & Hour(Time) & "_" & Minute(Time) & " Cotizaciones "

Cuando ejecuto la macro que tengo es que me copia toda la información en una sola columna. 

nombre = Year(Date) & "_" & Month(Date) & "_" & Hour(Time) & "_" & Minute(Time) & " Cotizaciones "

Dim MYPath As String
Dim Hoja As String
Dim Libro As String
Dim Cotizacion As String
Dim NombreArchivo As String

'Toma directiorio donde estamos
MYPath = ThisWorkbook.Path
Libro = ThisWorkbook.Name
Hoja = "Hoja1"
Sheets(Hoja).Select
Sheets(Hoja).Copy
Cotizacion = 11 'aca colocas el campo que tiene la cantidad de cotizaciones
NombreArchivo = Year(Now) & "_" & Month(Now) & "_" & Day(Now) & "_" & Hour(Now) & "_" & _
Minute(Now) & "_" & Cotizacion
ActiveWorkbook.SaveAs Filename:=MYPath & "\" & NombreArchivo & ".csv", FileFormat:=xlCSV _
, CreateBackup:=False
ActiveWorkbook. Save
ActiveWorkbook. Close

Amigo a ver si te entiendo y es esto lo que necesitas

Muchas gracias

Pero no se porque pone toda la información en una sola columna

Tiene que copiar la hoja activa que son 3 columnas con información ( ISIN; FECHA; PRECIO)

Me genera un archivo csv con el nombre que defino pero cuando abro el archivo csv la información de las 3 columnas esta en una sola.

No se como hacerlo

La macro tiene que guardar como CSVMSDOS, con el nombre Ej. 2016-02-08--18-50-cotizaciones, en el directorio F:/Comun/Cotizaciones

Puede que se pueda hacer más simple

Amigo disculpa pero creo que lo que tu pides no es posible ya que los archivos de tipo csv son para agrupar tablas separadas por ",". Si lo que buscas es otra cosa entonces no lo guardes con esta extensión. Por si crees que mis palabras son erradas lee esto.

https://es.wikipedia.org/wiki/CSV 

Cuando hago los pasos en excel guardar como CSVMSDOS me respeta las columna

Cuando ejecuto esta macro.:

Sub prueba()
'por luismondelo
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Range("a:d").Copy
Workbooks(otro).Activate
Sheets(1).Range("a1").PasteSpecial Paste:=xlValues
nombre = Year(Date) & "_" & Month(Date) & "_" & Hour(Time) & "_" & Minute(Time) & " Cotizaciones "
ActiveWorkbook.SaveAs nombre, FileFormat:=xlCSVMSDOS
ActiveWorkbook.Close False
End Sub

 Consigo que el archivo lo guarde con el nombre que le pido. 

Lo ideal ya que son muchos archivos es.: 

Guarde como csvmsdos, con el nombre e indicarle el lugar  ej  z:\comun\6-cotizaciones, 

( no soy un entendido del tema 

Muchas gracias si crees que se puede hacer estoy aprediendo mucho 

Para eso estamos amigo para ayudar pero eso que pides hacer no es posibles hasta mis conocimiento. No olvides valorar las respuestas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas