Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 04-06-2008
Betus Betus is offline
Registrado
 
Registrado: may 2008
Posts: 3
Poder: 0
Betus Va por buen camino
Smile

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!!!
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 05:11:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi