FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Delphi a Excel: Celda Activa
Saludos
Estoy haciendo una aplicación que pasa el contenido de un grid a excel. Todo funciona muy bien (gracias a la ayuda del foro), Pero no he podido encontrar como hacer que cuando se pone un valor a una celda referenciada con indices ( Libro.Cells[j,i] := myVar ), ésta se pueda conviertir en la celda activa; Mi intención es que bajo ciertas condiciones la celda pueda cambiar el color de fondo. He observado que aunque se le pongan valores a las celdas, éstas no se convierten en activas. Se que se puede usar Range("A1").Select; para seleccionar, pero en ejecucion se desconoce la celda que se quiere activar, solo se conoce el número de Renglon y de Columna Uso D7 y excel2000 Mis definiciones son: Libro := Excel.WorkBooks[1].WorkSheets[HojaActual]; Libro.Cells[j,i] := MyVar; Cualquier ayuda se gradece de antemano. |
#2
|
||||
|
||||
Pero a partir de i, j puedes construir la referencia ¿no?
Si i es el renglón y j la columna entonces, por ejemplo, (i=3, j=5) sería "E3". Algo como: Char(j + Ord('A')) te dará la letra correcta. Claro que si pasas de la Z tendrás que ingeniártelas para lidiar con AA, AB, AC, ... , ZZ, etc. // Saludos |
#3
|
|||
|
|||
Continua
Gracias por tu atencion
Tienes razon, yo lo construyo con i,j y utilizo un array en el que estan definidas las letras 'A' -> 'AZ' y donde necesito las letras, utilizo array[i] y funciona bien siempre y cuando no pase de los limites del arreglo; Mas bien creo que debe haber una forma que no dependa del arreay y de paso sea mas elegante . |
#4
|
|||
|
|||
Hola, yo estoy ahora también con el tema de leer y escribir datos en Excel y leerlos desde Excel ( esto último se me está complicando bastante ) y esta es alguna información que he podido recopilar:
// para seleccionar las celdas que forma el cuadro definido DE esquinas B5 y C7 WS.Range['B5', 'C7'].Select; // para seleccionar la celda B5 solamente WS.Range['B5', 'B5'].Select; // Para poner el texto de una celda activa ( la A6 ) en el formato indicado WS.Range['A6', 'A6'].Select; with ExcelApplication1.ActiveCell.Font do begin Size := 20; FontStyle := 'Bold'; Color := clgreen; Name := 'Arial'; end; // para poner los tres primeros caracteres en una celda en regrita y el resto normales WS.Range['A9', 'A9'].Select; Start := 1; Length := 3; ExcelApplication1.ActiveCell.Characters[Start, Length].Font.FontStyle := 'Bold'; Start := 4; Length := 16; ExcelApplication1.ActiveCell.Characters[Start, Length].Font.FontStyle := 'Regular'; Si necesitas alguna cosa más, si la tengo te la hago llegar. Un saludo. Neblí. |
|
|
|