FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Insertar combo con datos a Excel desde Delphi
Hola gente uso delphi 7 y me gustaría poder insertar desde delphi a excel combos y con sus datos también. la idea es que toda una columna tenga un combo en cada fila.
Espero por la ayuda de alguien un abrazo a todos Saludos |
#2
|
|||
|
|||
Combo boxes maestro-detalle en excel
Hola, estoy desarrollando una aplicación en la que requiero, al igual que capo979, insertar combo boxes en excel desde delphi (7), pero además, requiero que estos sean maestro-detalle, es decir, condicionar por ejemplo, si en el primer combo box tengo un listado de paises, al seleccionar uno en particular, el segundo combo box muestre únicamente las entidades federativas correspondientes.
Si alguien tiene alguna idea de cómo implementar esto, les agradezco cualquier comentario, dato, pista, etc que me (nos) pueda ayudar... Saludos banda!!! |
#3
|
|||
|
|||
capo979...No se si esto te sirva, después de buscar bastante (no encontré nada concreto) y sacar deducciones, hice este procedimiento con el que se puede insertar combo boxes en Excel desde Delphi:
procedure InsertaComboEnCelda(x,y:Integer; rangoCeldas,tituloMsjError,msjError:String); begin try Libro.Cells.Item[x,y].Validation.Delete; Libro.Cells.Item[x,y].Validation.Add(xlValidateList,AlertStyle := xlValidAlertStop,Operator := xlBetween, Formula1:=rangoCeldas); Libro.Cells.Item[x,y].Validation.IgnoreBlank := True; Libro.Cells.Item[x,y].Validation.InCellDropdown := True; Libro.Cells.Item[x,y].Validation.InputTitle := ''; Libro.Cells.Item[x,y].Validation.ErrorTitle := tituloMsjError; Libro.Cells.Item[x,y].Validation.InputMessage := ''; Libro.Cells.Item[x,y].Validation.ErrorMessage := msjError; Libro.Cells.Item[x,y].Validation.ShowInput := True; Libro.Cells.Item[x,y].Validation.ShowError := True; except CancelaOperacionExcel('Error: No se puede insertar lista en la celda ['+IntToStr(x)+','+IntToStr(y)+'].'); end; end; Para insertar validaciones de longitud en las celdas: procedure InsertaValidacionLongitudEnCelda(x,y,longMin,longMax:Integer; tituloMsjError,msjError:String); begin try Libro.Cells.Item[x,y].Validation.Delete; Libro.Cells.Item[x,y].Validation.Add(xlValidateTextLength,AlertStyle := xlValidAlertStop,Operator := xlBetween, Formula1:=longMin, Formula2:=longMax); Libro.Cells.Item[x,y].Validation.IgnoreBlank := True; Libro.Cells.Item[x,y].Validation.InCellDropdown := True; Libro.Cells.Item[x,y].Validation.InputTitle := ''; Libro.Cells.Item[x,y].Validation.ErrorTitle := tituloMsjError; Libro.Cells.Item[x,y].Validation.InputMessage := ''; Libro.Cells.Item[x,y].Validation.ErrorMessage := msjError; Libro.Cells.Item[x,y].Validation.ShowInput := True; Libro.Cells.Item[x,y].Validation.ShowError := True; except CancelaOperacionExcel('Error: No se puede insertar validación de longitud en la celda ['+IntToStr(x)+','+IntToStr(y)+'].'); end; end; Para insertar validaciones de fecha den las celdas al capturar: procedure InsertaValidacionFechaEnCelda(x,y:Integer; fechaMin,fechaMax,tituloMsjError,msjError:String); begin try Libro.Cells.Item[x,y].Validation.Delete; Libro.Cells.Item[x,y].Validation.Add(xlValidateDate,AlertStyle := xlValidAlertStop,Operator := xlBetween, Formula1:=fechaMin, Formula2:=fechaMax); Libro.Cells.Item[x,y].NumberFormat := 'dd/mm/aaaa;@'; Libro.Cells.Item[x,y].Validation.IgnoreBlank := True; Libro.Cells.Item[x,y].Validation.InCellDropdown := True; Libro.Cells.Item[x,y].Validation.InputTitle := ''; Libro.Cells.Item[x,y].Validation.ErrorTitle := tituloMsjError; Libro.Cells.Item[x,y].Validation.InputMessage := ''; Libro.Cells.Item[x,y].Validation.ErrorMessage := msjError; Libro.Cells.Item[x,y].Validation.ShowInput := True; Libro.Cells.Item[x,y].Validation.ShowError := True; except CancelaOperacionExcel('Error: No se puede insertar validación de fecha en la celda ['+IntToStr(x)+','+IntToStr(y)+'].'); end; end; Como puedes ver, dentro del try, lo único que cambia en cada procedimiento es el Validation.Add (voy a ver como fusiono estos tres procedimientos -y los demás que pueda necesitar- en uno solo). Ahh, tienes que declarar estas constantes: xlValidateList = 3; xlValidateTextLength = 6; xlValidateDate = 4; xlValidAlertStop = 1; xlBetween = 1; ...y rangoCeldas, debes pasarlo al primer procedimiento por ejemplo: '=$E$4:$E$5'...esto le indica al procedimiento que los valores que va a tomar el combo se encuentran ubicados entre las celdas E4:E5, en mi caso, en estas dos celdas tengo los valores: Persona moral y Persona física respectivamente. Saludos... P.D. Volviendo a mi requerimiento particular, hay una página en la que encontré algo de cómo hacer combo boxes maestro-detalle...La página es: http://www.todoexpertos.com/categori...diendo-de-otra Si alguien logra hacer esto, que no sea ojaldra, que lo comparta!!! |
#4
|
|||
|
|||
oops...autorespondiendo a mi P.D....voy a tirarme un clavado en esa página, a ver qué rayos puedo hacer, pero, si alguien más está interesado en el tema y logra algún avance, por favor, que lo publique en este hilo!!! gracias banda!!!
|
#5
|
|||
|
|||
Betus Muy groso lo tuyo
muchas gracias abrazo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Insertar Una Columna En Excel Desde Delphi | carlos gonzalez | Varios | 1 | 07-03-2008 17:28:39 |
Insertar datos en una celda de Excel | armando | Servers | 1 | 12-05-2007 14:04:12 |
! Insertar datos en Delphi y que se copien en Excel | freddiaz07 | Servers | 0 | 07-03-2007 20:07:03 |
Insertar datos en archivo word desde aplicacion Delphi | JulioGO | Servers | 1 | 24-02-2007 22:43:16 |
Insertar filas en excel vía OLE SERVER desde Delphi 5 | vick | Conexión con bases de datos | 2 | 28-11-2005 08:18:40 |
|