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

Referencia a cursor

92 views
Skip to first unread message

Javier

unread,
Jun 16, 2004, 10:09:43 AM6/16/04
to
Querría referenciar a la celda en la que está el cursor.

Es decir una fórmula del tipo; si la celda activa es ésta
haz esto..

¿Cómo referencio la celda activa que está señalando el
cursor?

Si(CeldaActiva=G8;"OK";"Error")

Como referencio la celda activa, que es definida cada
vez por el usuario.


Leandro

unread,
Jun 16, 2004, 10:24:13 AM6/16/04
to
Tal vez te sirva la funcion celda (en español)
Copiado de la Ayuda:

CELDA

Devuelve información acerca del formato, ubicación o
contenido de la celda del extremo superior izquierdo de
una referencia.

Sintaxis

CELDA(tipo_de_info,ref)

Tipo_de_info es un valor de texto que especifica el tipo
de información que se desea obtener acerca de la celda. La
siguiente lista muestra los posibles valores de
tipo_de_info y los correspondientes resultados:

Si tipo_de_info es Devuelve
"DIRECCION" la referencia, en forma de texto, de la
primera celda del argumento ref.
"COLUMNA" El número de columna de la celda del argumento
ref.
"COLOR" 1 si la celda tiene formato de color para los
valores negativos; en caso contrario devuelve 0.
"CONTENIDO" El contenido de la celda superior izquierda
del argumento ref.
"ARCHIVO" El nombre del archivo (incluyendo el de la ruta
de acceso) que contiene referencia, con formato de texto.
Devuelve texto vacío ("") si la hoja de cálculo que
contiene el argumento ref aún se ha guardado.
"FORMATO" Un valor de texto correspondiente al formato
numérico de la celda. Los valores de texto para los
distintos formatos se muestran en la tabla a continuación.
Si la celda tiene formato de color para los números
negativos, devuelve "-" al final del valor de texto. Si la
celda está definida para mostrar todos los valores o los
valores positivos entre paréntesis, devuelve "()" al final
del valor de texto.
"PARENTESIS" 1 si la celda tiene formato con paréntesis
para los valores positivos o para todos los valores, de lo
contrario, devuelve 0.
"PREFIJO" Un valor de texto que corresponde al "prefijo de
rótulo" de la celda. Devolverá un apóstrofo (') si la
celda contiene texto alineado a la izquierda, comillas (")
si la celda contiene texto alineado a la derecha, acento
circunflejo (^) si la celda tiene texto centrado, una
barra inversa (\) si la celda contiene texto con
alineación de relleno y devolverá texto vacío ("") si la
celda contiene otro valor.
"PROTEGER" 0 si la celda no está bloqueada y 1 si la celda
está bloqueada.
"FILA" El número de fila de la celda del argumento ref.
"TIPO" Un valor de texto que corresponde al tipo de datos
de la celda. Devolverá "b" (para blanco) si la celda está
vacía, "r" (para rótulo) si la celda contiene una
constante de texto y "v" (para valor) si la celda contiene
otro valor.
"ANCHO" El ancho de columna redondeado a un entero. Cada
unidad del ancho de columna es igual al ancho de un
carácter en el tamaño actual de fuente seleccionado.


Ref es la celda sobre la que desea obtener información.
Si se omite, la información especificada en tipo_de_info
se devuelve para la última celda cambiada.

La siguiente lista describe los valores de texto que
devuelve la función CELDA cuando el argumento tipo_de_info
es "formato" y el argumento ref es una celda con formato
para números integrados.

Si el formato de Microsoft Excel es CELDA devuelve
General "G"
0 "F0"
#.##0 ".0"
0,00 "F2"
#.##0,00 ".2"
$#.##0;-$#.##0) "M0'
$#.##0;(rojo)-$#.##0 "-M0"
$#.##0,00;-$#.##0,00 "M2"
$#.##0,00;(rojo)-$#.##0,00 "-M2"
0% "P0"
0,00% "P2"
0,00E+00 "C2"
#?/? o #??/?? "G"
d/m/aa o d/m/aa h:mm o dd/mm/aa "D4"
d-mmm-aa o dd-mm-aa "D1"
d-mmm "D2"
mmm-aa "D3"
mm/dd "D5"
h:mm a.m./p.m. "D7"
h:mm:ss a.m./p.m. "D6"
h:mm "D9"
h:mm:ss "D8"


Si el argumento tipo_de_info en la fórmula CELDA
es "formato", y si posteriormente se le ha asignado un
formato personalizado, se debe volver a calcular la hoja
de cálculo para poder actualizar la fórmula CELDA.

Observaciones

La función CELDA se proporciona por razones de
compatibilidad con otros programas para hojas de cálculo.

Ejemplos

CELDA("fila";A20) es igual a 20

Si B12 tiene el formato "d-mmm", entonces:

CELDA("formato";B12) es igual a "D2"

Si la celda activa contiene TOTAL, entonces:

CELDA("contenido") es igual a "TOTAL"


>-----Mensaje original-----

>.
>

Fernando Arroyo

unread,
Jun 16, 2004, 11:31:25 AM6/16/04
to
Si a lo que te refieres es a saber qué celda es la activa desde VBA, puedes usar la propiedad Activecell, que devuelve un objeto range con una sola celda (la celda activa o la de la esquina superior izquierda si la selección es de varias celdas).
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Javier" <anon...@discussions.microsoft.com> escribió en el mensaje news:1cf8901c453ab$9275c040$a601...@phx.gbl...

David Canales

unread,
Jun 16, 2004, 10:49:47 AM6/16/04
to
Lo que entiendo de tu formula es que si el usuario coloca el cursor en la celda G8 ponga en dicha celda el mensaje "Ok". En caso contrario que ponga en la misma celda G8 el mensaje "Error". Si es asi, ve al editor de visual basic (Alt+F11), haz doble click en ThisWorkbook y coloca el siguiente codigo en la ventana de la derecha.
 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$G$8" Then
        Range("G8") = "Ok"
    Else
        Range("G8") = "Error"
    End If
End Sub
Si lo que quieres es que cuando el usuario coloque el cursor en G8 le de un mensaje de "Ok" y cuando no este en dicha celda no haga nada entonces usa este otro codigo:
 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$G$8" Then
        MsgBox "Ok"
    End If
End Sub

Saludos,
 
David Canales

Héctor Miguel

unread,
Jun 17, 2004, 2:33:34 AM6/17/04
to
hola, Javier !

> Querria referenciar a la celda en la que esta el cursor.
> Es decir una formula del tipo; si la celda activa es esta haz esto [...]


> Si(CeldaActiva=G8;"OK";"Error")
> Como referencio la celda activa, que es definida cada vez por el usuario.

si entiendo bien, y lo que necesitas es usar [p.e.] la funcion de hoja de calculo si 'condicional'...
[como ya lo indicas] la celda 'activa' es 'auto-definida' =>cada vez<= que el usuario cambia de seleccion.
podrias 'combinar' el evento '_SelectionChange' de 'esa' hoja y la funcion 'Celda(...' +/- como sigje...
=== en el modulo de codigo de 'esa' hoja ===
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Names.Add Name:="CeldaActiva", RefersTo:=Target, Visible:=False
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨
=== y usar las funciones [de hoja de calculo] SI -condicional- y CELDA [p.e. en 'A1']
=Si(Celda("Direccion";CeldaActiva)="$G$8";"OK";"Error")

=>toma nota de que 'se pierde' el beneficio del 'undo'... 'des-hacer'... {Ctrl}+Z... :((
saludos,
hector.

0 new messages