Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cómo amplio campo en columna en Excel desde VFP

539 views
Skip to first unread message

Roy Francisco Salas Benavides

unread,
Oct 28, 2009, 7:01:35 PM10/28/09
to
Hola amigos de la lista...

Tengo "automatizado" la generaci�n de unos datos a una hoja electr�nica
Excel,... pero resulta que una de las columnas lleva el c�digo de barras, y
algunos c�digos tienen una longitud muy larga, entonces la momento de hacer
la trasnferencia me lo est� pasando de notaci�n cient�fica (creo que as� se
dice)... o sea al final con un signo de "+" y un par de n�meros. He podido
ver que es por el ancho de la columna ya que si modifico el ancho de la
columna y edito en valor de este campo, al dar enter dejando el mismo valor,
me lo presenta bien.

Se supone que al finalizar todo el proceso le digo a Excel que me autosetee
el ancho de las columnas, as�:

XLSheet.Columns().AutoFit && AUSTANDO CELDAS

Pero parece que no es sufienciente el ancho para esta columna, entonces como
hago para indicar que ancho deben de llevar cada una de las columnas de la
hoja... El c�digo que tengo es este:

lnFil = RECCOUNT("invenrep") + 1
lcRango = "A1: A"+ ALLTRIM(STR(lnFil))
XLApp = CREATEOBJECT("Excel.Application")
with XLApp
.Workbooks.Add() &&Agrega una Hoja de calculo
.Worksheets(1).Activate
.Worksheets(1).Name = "Inventario " +
str(year(date())-1,4)+"-"+str(year(date()),4)
.ActiveWindow.DisplayZeros = .f. && No muestra las celdas en valor 0
.ActiveWindow.DisplayGridlines = .t. && No muestra las l�neas de
divisi�n
.Visible = .T. && Aplicacion visible
XLSheet = XLApp.ActiveSheet
GOTO TOP IN invenrep && Recorro el cursor e ingreso a Excel
SCAN
XLSheet.cells(RECNO('invenrep'),1) = mivalor
XLSheet.cells(RECNO('invenrep'),2) = mivalor
XLSheet.cells(RECNO('invenrep'),3) = mivalor
XLSheet.cells(RECNO('invenrep'),4) = mivalor
XLSheet.cells(RECNO('invenrep'),5) = mivalor
XLSheet.cells(RECNO('invenrep'),6) = mivalor
ENDSCAN
*!* FORMATO DE COLUMNAS TITULO
XLSheet.Rows("1:1").Insert
XLSheet.cells(1,1)='C�digo del art�culo' && Titulo celda fila 1 y
columna 1
XLSheet.cells(1,2)='Descripci�n del art�culo'
XLSheet.cells(1,3)='Costo Neto'
XLSheet.cells(1,4)='Exist.'
XLSheet.cells(1,5)='Pres.'
XLSheet.cells(1,6)='Costo/Inv.'
XLSheet.Columns().AutoFit && AUSTANDO CELDAS
endwith

mivalor es la asignaci�n del valor que quiero, eso est� solo para efectos de
este correo, porque la l�nea de c�digo es muy larga, y la verdad eso
funciona bien y no aplica para la consulta que estoy haciendo, entonces para
efectos de acomodo la cambie por esto.

Espero sus aportes, gracias.

Saludos.

Roy Salas Benavides
Costa Rica.


Roy Francisco Salas Benavides

unread,
Oct 28, 2009, 9:41:29 PM10/28/09
to
Siguiendo con algo parecido... (a�n no logro entender porque el campo del
c�digo de barras que es caracter, me lo trae a Excel con notaci�n
cient�fica)...

� c�mo hago para darle formato a la fila 1 desde la columna A hasta la F sin
tener que indicarlo celda por celda, es posible ?

Esto no me funciona:

Range("A1:F1").Select
With Selection.Font
.Bold = .T.
.Name = "Arial"
.Size = 12
.Underline = .T.
EndWith

Saludos.

Roy Salas Benavides
Costa Rica

"Roy Francisco Salas Benavides" <rfsa...@ice.co.cr> escribi� en el mensaje
news:%23%23BVaKCW...@TK2MSFTNGP06.phx.gbl...

Roy Francisco Salas Benavides

unread,
Oct 28, 2009, 9:58:14 PM10/28/09
to
Jajaja.... compa�eros, uds. me van a matar... :-)

Ya lo logr� sacar,... como que me pongo muy precipitado a preguntar, pero
resulta como un buen ag�isote, a penas pregunto, lo logro hacer... jejeje...
Me qued� as�:

.Range("A1:F1").Select
.application.Selection.Font.Bold = .T.
.application.Selection.Font.Name = "Arial"
.application.Selection.Font.Size = 12
.application.Selection.Font.Underline = .T.

Me faltaba la .application

Eso s�, sigo con el problema de la notaci�n cient�fica, un ejemplo que tengo
es el c�digo de barras 114182001597891 me lo pasa a Excel como 1,14182E+14,
si le cambio el formato a la columna y lo vuelvo a digitar entonces s� me lo
respeta, pero no puedo hacerlo as�,... � c�mo hago para que en la
automatizaci�n me lo pase tal y como est� en caracter, el campo en la tabla
es Caracter de longitud 20.

Gracias. Saludos.

Roy Salas Benavides.
Costa Rica.

PD: Ya no pregunto m�s... por hoy... jejeje..


"Roy Francisco Salas Benavides" <rfsa...@ice.co.cr> escribi� en el mensaje

news:uKuaxjDW...@TK2MSFTNGP02.phx.gbl...

Luis Maria Guayan

unread,
Oct 28, 2009, 10:23:07 PM10/28/09
to
A�adele una comilla ' al inicio del numero

.Value = ['] + [114182001597891]


--
Luis Mar�a Guay�n
Tucum�n, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


"Roy Francisco Salas Benavides" <rfsa...@ice.co.cr> escribi� en el mensaje
de noticias:#QXWItDW...@TK2MSFTNGP06.phx.gbl...
> Jajaja.... compa�eros, uds. me van a matar... :-)
>
> Ya lo logr� sacar,... como que me pongo muy precipitado a preguntar, pero
> resulta como un buen ag�isote, a penas pregunto, lo logro hacer...
> jejeje... Me qued� as�:


>
> .Range("A1:F1").Select
> .application.Selection.Font.Bold = .T.
> .application.Selection.Font.Name = "Arial"
> .application.Selection.Font.Size = 12
> .application.Selection.Font.Underline = .T.
>
> Me faltaba la .application
>

> Eso s�, sigo con el problema de la notaci�n cient�fica, un ejemplo que
> tengo es el c�digo de barras 114182001597891 me lo pasa a Excel como

> 1,14182E+14, si le cambio el formato a la columna y lo vuelvo a digitar

> entonces s� me lo respeta, pero no puedo hacerlo as�,... � c�mo hago para
> que en la automatizaci�n me lo pase tal y como est� en caracter, el campo

> en la tabla es Caracter de longitud 20.
>
> Gracias. Saludos.
>
> Roy Salas Benavides.
> Costa Rica.
>

> PD: Ya no pregunto m�s... por hoy... jejeje..
>
>
> "Roy Francisco Salas Benavides" <rfsa...@ice.co.cr> escribi� en el
> mensaje news:uKuaxjDW...@TK2MSFTNGP02.phx.gbl...
>> Siguiendo con algo parecido... (a�n no logro entender porque el campo del
>> c�digo de barras que es caracter, me lo trae a Excel con notaci�n
>> cient�fica)...
>>
>> � c�mo hago para darle formato a la fila 1 desde la columna A hasta la F

>> sin tener que indicarlo celda por celda, es posible ?
>>
>> Esto no me funciona:
>>
>> Range("A1:F1").Select
>> With Selection.Font
>> .Bold = .T.
>> .Name = "Arial"
>> .Size = 12
>> .Underline = .T.
>> EndWith
>>
>> Saludos.
>>
>> Roy Salas Benavides
>> Costa Rica
>>

>> "Roy Francisco Salas Benavides" <rfsa...@ice.co.cr> escribi� en el

>> mensaje news:%23%23BVaKCW...@TK2MSFTNGP06.phx.gbl...
>>> Hola amigos de la lista...
>>>

>>> Tengo "automatizado" la generaci�n de unos datos a una hoja electr�nica
>>> Excel,... pero resulta que una de las columnas lleva el c�digo de
>>> barras, y algunos c�digos tienen una longitud muy larga, entonces la
>>> momento de hacer la trasnferencia me lo est� pasando de notaci�n
>>> cient�fica (creo que as� se dice)... o sea al final con un signo de "+"
>>> y un par de n�meros. He podido ver que es por el ancho de la columna ya

>>> que si modifico el ancho de la columna y edito en valor de este campo,
>>> al dar enter dejando el mismo valor, me lo presenta bien.
>>>
>>> Se supone que al finalizar todo el proceso le digo a Excel que me

>>> autosetee el ancho de las columnas, as�:


>>>
>>> XLSheet.Columns().AutoFit && AUSTANDO CELDAS
>>>
>>> Pero parece que no es sufienciente el ancho para esta columna, entonces
>>> como hago para indicar que ancho deben de llevar cada una de las

>>> columnas de la hoja... El c�digo que tengo es este:


>>>
>>> lnFil = RECCOUNT("invenrep") + 1
>>> lcRango = "A1: A"+ ALLTRIM(STR(lnFil))
>>> XLApp = CREATEOBJECT("Excel.Application")
>>> with XLApp
>>> .Workbooks.Add() &&Agrega una Hoja de calculo
>>> .Worksheets(1).Activate
>>> .Worksheets(1).Name = "Inventario " +
>>> str(year(date())-1,4)+"-"+str(year(date()),4)
>>> .ActiveWindow.DisplayZeros = .f. && No muestra las celdas en valor
>>> 0

>>> .ActiveWindow.DisplayGridlines = .t. && No muestra las l�neas de
>>> divisi�n


>>> .Visible = .T. && Aplicacion visible
>>> XLSheet = XLApp.ActiveSheet
>>> GOTO TOP IN invenrep && Recorro el cursor e ingreso a Excel
>>> SCAN
>>> XLSheet.cells(RECNO('invenrep'),1) = mivalor
>>> XLSheet.cells(RECNO('invenrep'),2) = mivalor
>>> XLSheet.cells(RECNO('invenrep'),3) = mivalor
>>> XLSheet.cells(RECNO('invenrep'),4) = mivalor
>>> XLSheet.cells(RECNO('invenrep'),5) = mivalor
>>> XLSheet.cells(RECNO('invenrep'),6) = mivalor
>>> ENDSCAN
>>> *!* FORMATO DE COLUMNAS TITULO
>>> XLSheet.Rows("1:1").Insert

>>> XLSheet.cells(1,1)='C�digo del art�culo' && Titulo celda fila
>>> 1 y columna 1
>>> XLSheet.cells(1,2)='Descripci�n del art�culo'


>>> XLSheet.cells(1,3)='Costo Neto'
>>> XLSheet.cells(1,4)='Exist.'
>>> XLSheet.cells(1,5)='Pres.'
>>> XLSheet.cells(1,6)='Costo/Inv.'
>>> XLSheet.Columns().AutoFit && AUSTANDO CELDAS
>>> endwith
>>>

>>> mivalor es la asignaci�n del valor que quiero, eso est� solo para
>>> efectos de este correo, porque la l�nea de c�digo es muy larga, y la

Roy Francisco Salas Benavides

unread,
Oct 29, 2009, 11:45:09 AM10/29/09
to
EXCELENTE Luis Ma., funcion� a la perfecci�n... muchas gracias.
Ahora voy con el proceso de sumatoria de una de las columnas,... voy a leer
un poco sobre esto en un art�culo Enviado por nuestro amigo Esparta un
Viernes, 13 Mayo, 2005 y cortes�a de �etin Bas�z, MVP de VFP, que me
encontr� en el portal del pueblo: portalfox.com

Saludos.
Gracias de nuevo.

Roy Salas Benavides
Costa Rica.

"Luis Maria Guayan" <luis...@portalfoxxx.com> escribi� en el mensaje
news:e$2636DWK...@TK2MSFTNGP02.phx.gbl...
> A�adele una comilla ' al inicio del numero


>
> .Value = ['] + [114182001597891]
>
>
> --

> Luis Mar�a Guay�n
> Tucum�n, Argentina


> _________________________
> http://www.PortalFox.com
> Nada corre como un zorro
> _________________________
>
>

> "Roy Francisco Salas Benavides" <rfsa...@ice.co.cr> escribi� en el
> mensaje de noticias:#QXWItDW...@TK2MSFTNGP06.phx.gbl...
>> Jajaja.... compa�eros, uds. me van a matar... :-)
>>
>> Ya lo logr� sacar,... como que me pongo muy precipitado a preguntar, pero
>> resulta como un buen ag�isote, a penas pregunto, lo logro hacer...
>> jejeje... Me qued� as�:


>>
>> .Range("A1:F1").Select
>> .application.Selection.Font.Bold = .T.
>> .application.Selection.Font.Name = "Arial"
>> .application.Selection.Font.Size = 12
>> .application.Selection.Font.Underline = .T.
>>
>> Me faltaba la .application
>>

>> Eso s�, sigo con el problema de la notaci�n cient�fica, un ejemplo que
>> tengo es el c�digo de barras 114182001597891 me lo pasa a Excel como

>> 1,14182E+14, si le cambio el formato a la columna y lo vuelvo a digitar

>> entonces s� me lo respeta, pero no puedo hacerlo as�,... � c�mo hago para
>> que en la automatizaci�n me lo pase tal y como est� en caracter, el campo

>> en la tabla es Caracter de longitud 20.
>>
>> Gracias. Saludos.
>>
>> Roy Salas Benavides.
>> Costa Rica.
>>

>> PD: Ya no pregunto m�s... por hoy... jejeje..
>>
>>
>> "Roy Francisco Salas Benavides" <rfsa...@ice.co.cr> escribi� en el
>> mensaje news:uKuaxjDW...@TK2MSFTNGP02.phx.gbl...


>>> Siguiendo con algo parecido... (a�n no logro entender porque el campo
>>> del c�digo de barras que es caracter, me lo trae a Excel con notaci�n
>>> cient�fica)...
>>>

>>> � c�mo hago para darle formato a la fila 1 desde la columna A hasta la F

>>> sin tener que indicarlo celda por celda, es posible ?
>>>
>>> Esto no me funciona:
>>>
>>> Range("A1:F1").Select
>>> With Selection.Font
>>> .Bold = .T.
>>> .Name = "Arial"
>>> .Size = 12
>>> .Underline = .T.
>>> EndWith
>>>
>>> Saludos.
>>>
>>> Roy Salas Benavides
>>> Costa Rica
>>>

>>> "Roy Francisco Salas Benavides" <rfsa...@ice.co.cr> escribi� en el

>>> mensaje news:%23%23BVaKCW...@TK2MSFTNGP06.phx.gbl...
>>>> Hola amigos de la lista...
>>>>

>>>> Tengo "automatizado" la generaci�n de unos datos a una hoja electr�nica
>>>> Excel,... pero resulta que una de las columnas lleva el c�digo de
>>>> barras, y algunos c�digos tienen una longitud muy larga, entonces la
>>>> momento de hacer la trasnferencia me lo est� pasando de notaci�n

>>>> cient�fica (creo que as� se dice)... o sea al final con un signo de "+"
>>>> y un par de n�meros. He podido ver que es por el ancho de la columna ya

>>>> que si modifico el ancho de la columna y edito en valor de este campo,
>>>> al dar enter dejando el mismo valor, me lo presenta bien.
>>>>
>>>> Se supone que al finalizar todo el proceso le digo a Excel que me

>>>> autosetee el ancho de las columnas, as�:


>>>>
>>>> XLSheet.Columns().AutoFit && AUSTANDO CELDAS
>>>>
>>>> Pero parece que no es sufienciente el ancho para esta columna, entonces
>>>> como hago para indicar que ancho deben de llevar cada una de las

>>>> columnas de la hoja... El c�digo que tengo es este:


>>>>
>>>> lnFil = RECCOUNT("invenrep") + 1
>>>> lcRango = "A1: A"+ ALLTRIM(STR(lnFil))
>>>> XLApp = CREATEOBJECT("Excel.Application")
>>>> with XLApp
>>>> .Workbooks.Add() &&Agrega una Hoja de calculo
>>>> .Worksheets(1).Activate
>>>> .Worksheets(1).Name = "Inventario " +
>>>> str(year(date())-1,4)+"-"+str(year(date()),4)
>>>> .ActiveWindow.DisplayZeros = .f. && No muestra las celdas en valor
>>>> 0

>>>> .ActiveWindow.DisplayGridlines = .t. && No muestra las l�neas de
>>>> divisi�n


>>>> .Visible = .T. && Aplicacion visible
>>>> XLSheet = XLApp.ActiveSheet
>>>> GOTO TOP IN invenrep && Recorro el cursor e ingreso a Excel
>>>> SCAN
>>>> XLSheet.cells(RECNO('invenrep'),1) = mivalor
>>>> XLSheet.cells(RECNO('invenrep'),2) = mivalor
>>>> XLSheet.cells(RECNO('invenrep'),3) = mivalor
>>>> XLSheet.cells(RECNO('invenrep'),4) = mivalor
>>>> XLSheet.cells(RECNO('invenrep'),5) = mivalor
>>>> XLSheet.cells(RECNO('invenrep'),6) = mivalor
>>>> ENDSCAN
>>>> *!* FORMATO DE COLUMNAS TITULO
>>>> XLSheet.Rows("1:1").Insert

>>>> XLSheet.cells(1,1)='C�digo del art�culo' && Titulo celda fila
>>>> 1 y columna 1
>>>> XLSheet.cells(1,2)='Descripci�n del art�culo'


>>>> XLSheet.cells(1,3)='Costo Neto'
>>>> XLSheet.cells(1,4)='Exist.'
>>>> XLSheet.cells(1,5)='Pres.'
>>>> XLSheet.cells(1,6)='Costo/Inv.'
>>>> XLSheet.Columns().AutoFit && AUSTANDO CELDAS
>>>> endwith
>>>>

>>>> mivalor es la asignaci�n del valor que quiero, eso est� solo para
>>>> efectos de este correo, porque la l�nea de c�digo es muy larga, y la

Juan Carlos Flores

unread,
Oct 29, 2009, 12:05:18 PM10/29/09
to
No se si lo haces de como te comentar� pero esto es lo que yo hago para
obtener c�digo de cosas por hacer en excel.

En excel le doy iniciar grabar macro
Hago yo mismo las acciones que necesito: Poner negrillas, colores de celdas,
marcar un rango de celdas, formatear celdas, ajustar altura de filas o de
columnas, etc.
Paro de grabar la macro.
Edito la macro y ah� tengo el c�digo que necesito.

Saludos


Juan Carlos Flores

"Roy Francisco Salas Benavides" <rfsa...@ice.co.cr> escribi� en el mensaje

de noticias:#QXWItDW...@TK2MSFTNGP06.phx.gbl...

Roy Francisco Salas Benavides

unread,
Oct 29, 2009, 5:43:25 PM10/29/09
to
Correcto Juan Carlos, eso ha sido parte del aprendizaje, as� logr� lo de
poner negrita y tama�o de letra y eso... jejeje... se me ocurri� despu�s de
que hab�a mandado la consulta....

Pero algunas cosas como que hay que darle algunos retoques, pero s�, por
all� estoy agarrando algunas ideas.

Gracias por el Tip.
Saludos.

Roy Salas.
Costa Rica.

"Juan Carlos Flores" <juancarl...@ferreteriaherco.com> escribi� en el
mensaje news:FA24C436-247B-4846...@microsoft.com...

0 new messages