Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-05-2008
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 18
capo979 Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 29-05-2008
Betus Betus is offline
Registrado
 
Registrado: may 2008
Posts: 3
Poder: 0
Betus Va por buen camino
Question 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!!!
Responder Con Cita
  #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
  #4  
Antiguo 04-06-2008
Betus Betus is offline
Registrado
 
Registrado: may 2008
Posts: 3
Poder: 0
Betus Va por buen camino
Thumbs up

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!!!
Responder Con Cita
  #5  
Antiguo 04-06-2008
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 18
capo979 Va por buen camino
Betus Muy groso lo tuyo

muchas gracias

abrazo
Responder Con Cita
Respuesta



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 01:36:31.


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