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
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,