![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#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!!! ![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|