Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Delphi a Excel: Celda Activa (https://www.clubdelphi.com/foros/showthread.php?t=19003)

ainclanmx 01-03-2005 21:38:34

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.

roman 01-03-2005 21:53:40

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

ainclanmx 02-03-2005 02:26:16

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 :D .

Nebli 29-03-2005 17:10:45

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í.


La franja horaria es GMT +2. Ahora son las 06:59:37.

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