21/12/2010, 05:50
|
| | Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 15 años, 1 mes Puntos: 0 | |
Respuesta: tomar rango en excel Cita:
Iniciado por lokoman Puedes usar una sentencia SQL en un recordset:
"SELECT * FROM [HOJA$] WHERE [NOMBRE_COLUMNA]=" & 1
eso te cargaria todos los registros que sean "1", a partir de ahi lo copias en otro archivo excel, este seria el proceso:
1-Conectarse al archivo de excel
2-Leer los registros que sean "1"
3-Copiar los registros que sean "1" en un archivo excel nuevo
ejem.:
Código vb:
Ver original'PARA OBTENER EL NOMBRE DE LA HOJA ACTIVA Dim ObjExcel As Object Set ObjExcel = CreateObject("Excel.Application") 'Abre los libros ObjExcel.Workbooks.Open "RUTA DEL ARCHIVO DE EXCEL" With ObjExcel .ActiveSheet.Select ' La selecciona NombreHoja = UCase(.ActiveSheet.Name) End With 'Descarga la referencia y cierra el Excel ObjExcel.Quit Set ObjExcel = Nothing DoEvents 'CONEXION A LOS ARCHIVOS EXCEL Dim Conn As ADODB.Connection Dim Rec As New ADODB.Recordset Set Conn = New ADODB.Connection With Conn .Provider = "MSDASQL" .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _ "DBQ=" & Trim(RUTA DEL ARCHIVO DE EXCEL) & "; ReadOnly=False;" Conn.Open End With Rec.Source = "SELECT * FROM [" & Trim(NombreHoja) & "$] WHERE [COLUMNA]=" & 1 Rec.Open , Conn, adOpenForwardOnly, adLockReadOnly If Not Rec.EOF Then Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim CellCnt As Double Dim I, J As Double Set xlApp = New Excel.Application 'asignar las referencias a las variables Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets.Add I = 2 CellCnt = 1 DO WHILE REC.EOF=FALSE xlSheet.Cells(I, CellCnt) = REC!COLUMNA I = I + 1 DOEVENTS LOOP 'Ajustar todas las columnas For J = 1 To lsvData.ColumnHeaders.Count xlSheet.Columns(J).AutoFit Next J 'Salvar la hoja de excel xlSheet.Name = "EXPORT" xlSheet.SaveAs "EXPORT.XLS" MsgBox "Consulta exportada a Excel!!", vbInformation xlBook.Close if rec.state=1 then rec.close xlApp.Quit Set xlApp = Nothing Set xlBook = Nothing Set xlSheet = Nothing Set rec=nothing End if
Ajusta el code
la consulta la puedo hacer en el editor de visual basic que trae excel |