Macro para filtrar registro y copiar solo valores
¿Hola, qué tal? Espero que muy bien. Antes de nada, gracias por su atención.
Verá, estoy desarrollando una macro que:
1. Me filtre los registros de una hoja mostrándome solo aquellos >0
2. Salve los valores de estos registros en una hoja CSV (comma delimmited)
Curioseando he llegado hasta aquí:
Sheets("Plantilla").Select
'añado una hoja temporal llamada template
Sheets.Add
Sheets("Hoja2").Select
Sheets("Hoja2").Name = "template"
'hago el autofiltro
Sheets("Plantilla").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="<>"
'me copio los valores filtrados a la hoja temporal
Selection.Copy
Sheets("template").Select
Application.CutCopyMode = False
Columns("A:A").Select
Sheets("Plantilla").Select
Selection.Copy
Sheets("template").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'esto no se para que es pero me salía al grabar la macro.
Application.CutCopyMode = False
'con la macro salvo esta hoja temporal como Plantilla.csv
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\Plantilla.csv", FileFormat:=xlCSV, _
CreateBackup:=False
'borro la hoja temporal de antes
Sheets("template").Select
ActiveWindow.SelectedSheets.Delete
'quito el autofiltro
Selection.AutoFilter
'me posiciono en una celda de otra hoja
Sheets("Hoja1").Select
Range("H16:J20").Select
El resultado de esto es que cuando voy a cerrar el excel, me dice que lo salve y demás y luego voy a ver el CSV que me ha generado y tan solo tiene valores en algunas columnas. Otras me pone #VALOR o algo así como que le faltase el valor de la fórmula del excel original, pero es que lo que quería era copiar solo los valores...(que en el excel original si los puedo ver...) No se si me he explicado bien... Si necesita algún detalle más, encantado lo comentaré.
Saludos y gracias!
Verá, estoy desarrollando una macro que:
1. Me filtre los registros de una hoja mostrándome solo aquellos >0
2. Salve los valores de estos registros en una hoja CSV (comma delimmited)
Curioseando he llegado hasta aquí:
Sheets("Plantilla").Select
'añado una hoja temporal llamada template
Sheets.Add
Sheets("Hoja2").Select
Sheets("Hoja2").Name = "template"
'hago el autofiltro
Sheets("Plantilla").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="<>"
'me copio los valores filtrados a la hoja temporal
Selection.Copy
Sheets("template").Select
Application.CutCopyMode = False
Columns("A:A").Select
Sheets("Plantilla").Select
Selection.Copy
Sheets("template").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'esto no se para que es pero me salía al grabar la macro.
Application.CutCopyMode = False
'con la macro salvo esta hoja temporal como Plantilla.csv
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\Plantilla.csv", FileFormat:=xlCSV, _
CreateBackup:=False
'borro la hoja temporal de antes
Sheets("template").Select
ActiveWindow.SelectedSheets.Delete
'quito el autofiltro
Selection.AutoFilter
'me posiciono en una celda de otra hoja
Sheets("Hoja1").Select
Range("H16:J20").Select
El resultado de esto es que cuando voy a cerrar el excel, me dice que lo salve y demás y luego voy a ver el CSV que me ha generado y tan solo tiene valores en algunas columnas. Otras me pone #VALOR o algo así como que le faltase el valor de la fórmula del excel original, pero es que lo que quería era copiar solo los valores...(que en el excel original si los puedo ver...) No se si me he explicado bien... Si necesita algún detalle más, encantado lo comentaré.
Saludos y gracias!
Respuesta de Elsa Matilde
1