Codigo en excel

Hola como estas, gracias de antemano por el aporte que haces tengo una archivo en excel que debo exportar a formato csv teniendo en cuenta una fecha inicial y final. Hice un código para exportar el archivo con estas condiciones solo que me sale un error y no he podido solucionarlo. Ademas de eso en el momento de hacer la exportación la columna j que es la fecha debe estar ordenada, existe alguna forma de que esta columna no este ordenada y el código exporte los registros ... Como hago para enviarte el código que llevo para que lo revises,,, gaciass
sandra
1

1 respuesta

Respuesta
1
Para hacer lo que quieres realmente no es necesario que las fechas estén ordenas, pero si es lo ideal, también depende de como estas haciendo la validación de las fechas y el recorrido de los datos.
Ya que estas en excel, el grabar el archivo como .csv no es solo hacer un Sabe As...¿?
¿O esto lo haces en una aplicación visual basic y exportas a un archivo excel?
Bueno esto lo hago en código de visual basic es posible que te lo envíe y lo revises a ver como puedo hacer para que no tenga que ordenar la columna j que corresponde a fecha para hacer la exportación a formarto csv, gracias sandra
Dale enviame el código a ver que puedo hacer
Este es el código hay alguna forma que te pueda enviar el archivo algún correo, porque así puedes identificar más fácil el error, gracias
Private Sub CommandButton13_Click()
Dim FECHA1 As String, FECHA2 As String, LETRACOLUMNFECHA1 As String, LETRACOLUMNFECHA2 As String, FECHA1R As String
Dim FECHA2R As String, FECHAINICIO As Date, FECHAFIN As Date, NOMHOJA As String
If Sheets("CONTRATACION").Range("GA1").Value = "" Then
MsgBox "POR FAVOR, PRIMERO DIGITE UNA FECHA DE INICIO"
Exit Sub
End If
If Sheets("CONTRATACION").Range("GA2").Value = "" Then
MsgBox "POR FAVOR, PRIMERO DIGITE UNA FECHA DE FINALIZACIÓN"
Exit Sub
End If
FECHAINICIO = Sheets("CONTRATACION").Range("GA1").Value
FECHAFIN = Sheets("CONTRATACION").Range("GA2").Value
Sheets("CONTRATACION").Range("J2").Select
Do While ActiveCell <> FECHAINICIO
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = FECHAINICIO Then
FECHA1 = ActiveCell.Address
Sheets("CONTRATACION").Range("GA3").Value = FECHA1
Sheets("CONTRATACION").Range("GA5").Value = Range(FECHA1).Row
Exit Do
End If
Loop
Sheets("CONTRATACION").Range("J2").Select
Range("J7000").End(xlUp).Select
Do While ActiveCell <> FECHAFIN
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Value = FECHAFIN Then
FECHA2 = ActiveCell.Address
Sheets("CONTRATACION").Range("GA4").Value = FECHA2
Sheets("CONTRATACION").Range("GA6").Value = Range(FECHA2).Row
Exit Do
End If
Loop
        'LETRACOLUMNFECHA1 = Mid(FECHA1, InStr(FECHA1, "$") + 1, InStr(2, FECHA1, "$") - 2)
        'LETRACOLUMNFECHA2 = Mid(FECHA2, InStr(FECHA2, "$") + 1, InStr(2, FECHA2, "$") - 2)
Sheets("CONTRATACION").Range("A1").Select
Range("A" & Sheets("CONTRATACION").Range("GA5").Value & ":" & "X" & Sheets("CONTRATACION").Range("GA6").Value).Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Columns("J:J").Select
    Selection.NumberFormat = "aaaa/MM/dd"
Range("A1").Select
'NOMHOJA = ActiveSheet.Name
NOMHOJA = ActiveSheet.Name
Sheets("CONTRATACION").Select
Rows("1:1").Select
    Selection.Copy
Sheets(NOMHOJA).Select
Range("A1").Select
ActiveSheet.Paste
Range("A2").Select
Application.CutCopyMode = False
'graba hoja como CSV
Application.DisplayAlerts = False
Sheets("CONTRATACION").Select
ActiveWindow.SelectedSheets.Delete
ActiveWorkbook.SaveAs Filename:="C:\formato_200906_f13_cgs.csv", FileFormat:=xlCSV, CreateBackup:=False
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub
Lo que veo es que solo preguntas si la fecha es igual, me imagino que lo que quieres es validar que la fecha se encuentre en un rango, entre la fecha 1 y la 2, entonces debes cambiar la validación (if)
Algo como esto:
If ActiveCell.Value >= FECHAINICIO AND ActiveCell.Value <= FECHAFIN Then
...
Muchas gracias por la colaboración que me prestaste, fuiste muy puntual en tus respuestas, muy precisas, gracias muchas gracias, en cuanto al error de guardar el archivo era un problema de actualización de windows, ya fue solucionado,

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas