en numero decimal

29/05/2005 - 07:32 por titor | Informe spam
en excel 2000
¿puedo ver el ancho de columna en numero decimal?

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/05/2005 - 10:12 | Informe spam
hola, titor !

¿puedo ver el ancho de columna en numero decimal?



una respuesta 'directa' es... NO :-(
[a menos que comentes el motivo 'real' de tu pregunta, y hasta donde se]...
'entre' centimetros/pulgadas/puntos/pixeles... y ->ancho de una celda<- ...
'median' otros factores que [seguramente] habran de 'distorsionar' [la conversion de] la 'medida'
[p.e.] toma nota de lo siguiente con respecto de las propiedades 'de medidas' de los objetos...
-> Width y RowHeight 'devuelven' una medida en puntos [1/72 de pulgada... 72 pixeles por pulgada]
-> ColumnWidth 'devuelve' el ancho de la columna [basado en la fuente 'normal... en uso']
- 'depende' del tipo de letra 'en uso' [tamaño y si es de ancho 'proporcional' o de 'ancho fijo']
[lo anterior -todavia- SIN considerar las -posibles- 'implicaciones' de la impresora... resolucion, etc.]
-> Zoom [aplicable a un objeto Window] 'afecta' la 'proporcionalidad' entre ambos 'tipos' de medida
-> la resolucion 'de salida' [impresora] puede 'mostrar' proporcionalidades 'diferentes' [vs. pantalla]
-> en las propiedades de la pantalla [windows] cada usuario puede 'personalizar' los puntos por pulgada
-> se necesita 'factorizar' las diferentes unidades de medida [etc. etc. etc.]

comentas datos adicionales?
saludos,
hector.
Respuesta Responder a este mensaje
#2 KL
29/05/2005 - 11:50 | Informe spam
Hola titor,

Estando completamente de acuerdo con lo dicho por Hector Miguel
anteriormente, si solo necesitas ver el ancho de columna como numero decimal
sin importarte la relatividad de las medidas, entonces hay al menos 3
formas:

1) Por pantalla
-Ve al menu Formato>Columna>Ancho...
-veras el ancho de la columna que corresponde a la(s) celda(s)
seleccionada(s)

2) Mediante formula denominada y una funcion XLM:
-Ve al menu Insertar>Nombre>Definir Nombre
- En la casilla para el nombre pon el nombre de tu preferncia, digamos
AnchoColumna
-En la casilla para la referencia (abajo de todo) pon la siguiente formula:
=INDICAR.CELDA(16;INDIRECTO("RC[-1]";FALSO))+0*AHORA()
- Pulsa el boton "Anadir"
- Pulsa el boton "Aceptar"
- En la celda [B1] pon la siguiente formula:
=AnchoColumna

Notas:
1. Esta formula devuelve el ancho de columna de la celda inmediatamente a la
izquierda de la que contiene la formula.
2. La funcion AHORA es necesaria para mejor volatilidad de la formula.

3) Mediante funcion definida por usuario en VBA

- haz clic-derecho sobre el nombre de cualquier hoja en una de las pestañas
de la parte de abajo de la ventana de Excel.
- Elige la opcion Ver Codigo para abrir el editor VBA.
- Una vez en el Editor VBA, ve al menu Insertar>Modulo
- En la ventana mas grande a la derecha pega este codigo:

'--Inicio Codigo
Function AnchoColumna(rng As Range) As Double
Application.Violatile
Dim columna As Range
Dim temp As Double
For Each columna In rng.Columns
temp = temp + columna.ColumnWidth
Next
AnchoColumna = temp
End Function
'--Fin Codigo

- Ahora pulsa Alt+F11 para volver a la hoja.
- Introduce en una celda la siguiente formula:
=AnchoColumna(A1)

Notas Importantes:
***************
1. No existe ningun evento en Excel para capturar el cambio de ancho de
columnas. Por lo tanto el resultado de las formulas no se actualizara
automaticamente con dicho cambio, sino con el proximo recalculo de formulas.

2. Hay formas de forzar el recalculo como por ejemplo asignando el comando
Me.Calculate al evento SelectionChange de la hoja (el siguiente codigo se
tiene que depositar en el modulo VBA de la hoja en cuestion)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.Calculate
End Sub

pero si hay muchas formulas, el recalculo constante podria afectar el
desempeno de la aplicacion.

3. Las funciones creadas en VBA son, por regla general, mucho mas lentas que
las funciones nativas de Excel. Y aunque no se note con el uso moderado de
las funciones VBA, si se quiere replicar la formula en rangos grandes,
podrian relentizar el recalculo de manera importante.

Saludos,
KL




"Héctor Miguel" wrote in message
news:
hola, titor !

¿puedo ver el ancho de columna en numero decimal?



una respuesta 'directa' es... NO :-(
[a menos que comentes el motivo 'real' de tu pregunta, y hasta donde
se]...
'entre' centimetros/pulgadas/puntos/pixeles... y ->ancho de una celda<-
...
'median' otros factores que [seguramente] habran de 'distorsionar' [la
conversion de] la 'medida'
[p.e.] toma nota de lo siguiente con respecto de las propiedades 'de
medidas' de los objetos...
-> Width y RowHeight 'devuelven' una medida en puntos [1/72 de pulgada...
72 pixeles por pulgada]
-> ColumnWidth 'devuelve' el ancho de la columna [basado en la fuente
'normal... en uso']
- 'depende' del tipo de letra 'en uso' [tamaño y si es de ancho
'proporcional' o de 'ancho fijo']
[lo anterior -todavia- SIN considerar las -posibles- 'implicaciones'
de la impresora... resolucion, etc.]
-> Zoom [aplicable a un objeto Window] 'afecta' la 'proporcionalidad'
entre ambos 'tipos' de medida
-> la resolucion 'de salida' [impresora] puede 'mostrar'
proporcionalidades 'diferentes' [vs. pantalla]
-> en las propiedades de la pantalla [windows] cada usuario puede
'personalizar' los puntos por pulgada
-> se necesita 'factorizar' las diferentes unidades de medida [etc.
etc. etc.]

comentas datos adicionales?
saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
30/05/2005 - 07:18 | Informe spam
hola, chicos ! [yo aqui... tratando de aportar comentarios 'adicionales'] :))

KL escribio en el mensaje ...
... si solo necesitas ver el ancho de columna como numero decimal sin importarte la relatividad de las medidas
... hay al menos 3 formas:
1) Por pantalla
-Ve al menu Formato>Columna>Ancho...
-veras el ancho de la columna que corresponde a la(s) celda(s) seleccionada(s)


___
=> 'siempre y cuando' [o... si y solo si]... si la/s celda/s seleccionada/s corresponde/n ->a una sola columna<- ;)
=> 'resultado similar' obtienes si haces un click en la linea 'divisoria' de columnas/filas en los encabezados de la hoja ;)

2) ... una funcion XLM:
=INDICAR.CELDA(16;INDIRECTO("RC[-1]";FALSO))+0*AHORA()
... devuelve el ancho de columna de la celda inmediatamente a la izquierda de la que contiene la formula.
... AHORA es necesaria para mejor volatilidad de la formula.


___
=> pregunta: porque usar la funcion indirecto() ? [hasta donde se]...
a) pudiera necesitar en lugar de RC [Row/Column] -> FC [Fila/Columna] o... -> LC [Linea/Columna]
b) puedes utilizar una referencia 'directa' [incluso] a 'la misma celda' donde definas el nombre [p.e.]
=indicar.celda(16,!a1) y en [A1] =NombreDefinido
[el signo '!' es para 'evitar' la referencia 'absoluta' a la hoja activa y que sea 'simplemente' la hoja activa] ;)
[y con las 'consabidas' advertencias de Harlan acerca de la posibilidad de 'desestabilizar' la aplicacion] :-(
=> comentario: [creo que] la funcion ahora() -que en ingles es 'mas corta': now()-
podria 'recortarse' a hoy() -que en ingles seria 'mas larga': today()-
[ya sabes... la 'obsesion' por utilizar 'los menos caracteres posibles -sobre todo en los grupos en ingles-] ;)
=> [fuera de topico]: no la pude 'hacer trabajar' con la funcion indirecto() [con ninguna de sus 'variantes'] :-((
[igual y se trata de 'otro fallo' de mi excel 97 y 2000] :-\
-> podrias confirmar KL que a ti si ta ha funcionado ? -gracias- ;)

'finalmente' y esperando que titor NO se refiera al sistema decimal sino -simplemente- a separar enteros y decimales...
los 'ajustes posibles' del ancho de una columna SOLO se pueden 'dar' en 6 'intervalos' entre un 'entero' y el siguiente...
0.17, 0.33, 0.50, 0.67, 0.83 y 1.00 [1 seria el siguiente entero] y son 'medidas' =>en puntos<= [p.e.]
si 'tratas' de establecer [aun por codigo] el ancho de una columna en 12.25 [finalmente] 'quedara' en 12.33 :(
intervalos que 'se deberan tener en cuenta' si se pretende 'ajustar' a medidas en centimetros, pulgadas, -???-

saludos,
hector.
Respuesta Responder a este mensaje
#4 KL
30/05/2005 - 11:19 | Informe spam
Hola HM,

=> pregunta: porque usar la funcion indirecto() ? [hasta donde se]...
a) pudiera necesitar en lugar de RC [Row/Column] -> FC [Fila/Columna]
o... -> LC [Linea/Columna]



seguramente tienes razon - no se por que tenia la impresion de que RC
funcionaba igual en la version espanola.

b) puedes utilizar una referencia 'directa' [incluso] a 'la misma
celda' donde definas el nombre [p.e.]
=indicar.celda(16,!a1) y en [A1] =NombreDefinido
[el signo '!' es para 'evitar' la referencia 'absoluta' a la hoja
activa y que sea 'simplemente' la hoja activa] ;)



Porque no sabia lo del signo "!" :-(. Y, por cierto, no se por que habia
asumido que el resultado se queria fuera de la celda en cuestion :-(

[y con las 'consabidas' advertencias de Harlan acerca de la
posibilidad de 'desestabilizar' la aplicacion] :-(



Crei que HG se referia a una formula concreta que usaba GET.WORKBOOK
(INDICAR.LIBRO) y no a funciones XLM en general, pero igual me equivoco.
Como comente en ocasiones anteriores a mi nunca me han dado problemas las
funciones XLM.

=> [fuera de topico]: no la pude 'hacer trabajar' con la funcion
indirecto() [con ninguna de sus 'variantes'] :-((
[igual y se trata de 'otro fallo' de mi excel 97 y 2000] :-\
-> podrias confirmar KL que a ti si ta ha funcionado ? -gracias- ;)



Si que me funciona, antes de enviar la primera respuesta lo comprobe y ahora
lo he vuelto a probar (ambas versiones la tuya y la mia) y funciona a la
perfeccion. ?No sera que la funcion GET.CELL se traduce al castellano de
otra manera? Yo he usado el traductor de KeepItCool (TranslateIT). ?Has
probado toda la formula en ingles GET.CELL(16,!A1) ?

Saludos,
KL
Respuesta Responder a este mensaje
#5 KL
30/05/2005 - 12:42 | Informe spam
Por cierto, hablando de referencias absoluta y relativas con respecto a la
solucion que usa las funciones XLM - se me olvidaba decir que existe un
forma de pasar el rango como argumento a la formula denominada. Para ello:

1) creamos la siguiente formula denominada (sustituyendo "lc" si es
necesario por "fc" o "rc") y le ponemos el nombre digamos "MiReferencia":

=EXTRAE(INDICAR.CELDA(6;INDIRECTO("lc";FALSO));ENCONTRAR("ROW(";INDICAR.CELDA(6;
INDIRECTO("lc";FALSO)))+4;ENCONTRAR(")";INDICAR.CELDA(6;INDIRECTO("lc";FALSO)))-ENCONTRAR("ROW(";INDICAR.CELDA(6;INDIRECTO("lc";FALSO)))-4)

2) Luego creamos otra formula denominada y le ponemos el nombre digamos
"AnchoCelda":

=INDICAR.CELDA(16;INDIRECTO(MiReferencia))+0*HOY()

3) Ahora podemos usar la siguiente formula en la hoja de calculo pasando el
rango evaluado como argumento:

=SI(FILA(A1),AnchoCelda)

Esta solucion ha sido publicada por Jan Karel Pieterse aqui:
http://www.jkp-ads.com/Articles/ExcelNames.htm

Saludos,
KL
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida