Cómo hago para acceder al valor de una celda si tengo una cadena con la direcció

29/01/2004 - 10:50 por c | Informe spam
Tengo por ejemplo una cadena con $C$9 que puede tomar la
dirección de cualquier celda.
Como hago para acceder al valor de la celda cuya
dirección contiene esta cadena?

Preguntas similare

Leer las respuestas

#6 c
29/01/2004 - 15:26 | Informe spam
Perdona Fernando en realidad el evento se llama
Workbook_SheetSelectionChange (estoy usando Office XP).
Y si pongo ahí (que es donde tengo que poner el código)
MsgBox Range([A1]) me da el error Method 'Range'nof
object '_Global' failed.

Me podrías seguir ayudando...

Te formulo mejor la pregunta por las dudas:

Cómo hago para acceder al valor de una celda si tengo una
cadena con la dirección?
Tengo por ejemplo una cadena con $C$9 que puede tomar en
tiempo de ejecución la dirección de cualquier celda, es
decir puede valer, $B$5, luego $D$8, luego $H$1, etc.
Como hago para acceder al valor de la celda cuya
dirección contiene esta cadena?
(Quiero acceder desde el evento
Workbook_SheetSelectionChange)


MUCHAS GRACIAS!!!


El evento Workbook_SelectionChange no existe (hasta


donde yo sé). Si te refieres al evento
Worksheet_SelectionChange, el código podría ser:

Private Sub Worksheet_SelectionChange(ByVal Target As


Range)
MsgBox Range([A1])
End Sub

que mostraría un mensaje con el contenido de la celda


cuya dirección estuviera en A1 cada vez que se cambiara
la selección en la hoja.
Un saludo.


Fernando Arroyo
MS MVP - Excel



"c" escribió en el


mensaje news:616701c3e65a$2c784330$
Hola Fernando,

Puse el código que me dijiste y me dio error:

Yo ese código lo tengo que poner en el evento
Workbook_SelectionChange(By val Sh as Object, ByVal
Target as Range)

Por lo que para probar puse msgbox Sh.Range(Sh.[A1])
pero me dio error al ejectuarse (Application-defined or
object-defined error)

Sabes como puedo poner?

Gracias!


.

Respuesta Responder a este mensaje
#7 Fernando Arroyo
29/01/2004 - 16:56 | Informe spam
- La dirección de la celda, ¿está en una celda o en una variable?.
- Si está en una celda, ¿en cuál, y como se llama la hoja?
- Si está en una variable, ¿cómo se llama la variable?
- ¿Cómo se llama la hoja que tiene la celda cuyo valor quieres mostrar en el MsgBox?
- El mensaje con el valor de la celda, ¿debe aparecer cuando se cambie la selección en cualquier hoja o sólo cuando se cambie la selección en una hoja determinada? Y , en éste último caso, ¿cómo se llama la hoja?
- Si estás trabajando con VBA, ¿no sería mejor que nos pusieras el código que has escrito y nos dijeras qué es lo que necesitas hacer?

Un saludo.


Fernando Arroyo
MS MVP - Excel

"c" escribió en el mensaje news:63f101c3e673$e0b4f910$
Perdona Fernando en realidad el evento se llama
Workbook_SheetSelectionChange (estoy usando Office XP).
Y si pongo ahí (que es donde tengo que poner el código)
MsgBox Range([A1]) me da el error Method 'Range'nof
object '_Global' failed.

Me podrías seguir ayudando...

Te formulo mejor la pregunta por las dudas:

Cómo hago para acceder al valor de una celda si tengo una
cadena con la dirección?
Tengo por ejemplo una cadena con $C$9 que puede tomar en
tiempo de ejecución la dirección de cualquier celda, es
decir puede valer, $B$5, luego $D$8, luego $H$1, etc.
Como hago para acceder al valor de la celda cuya
dirección contiene esta cadena?
(Quiero acceder desde el evento
Workbook_SheetSelectionChange)


MUCHAS GRACIAS!!!


El evento Workbook_SelectionChange no existe (hasta


donde yo sé). Si te refieres al evento
Worksheet_SelectionChange, el código podría ser:

Private Sub Worksheet_SelectionChange(ByVal Target As


Range)
MsgBox Range([A1])
End Sub

que mostraría un mensaje con el contenido de la celda


cuya dirección estuviera en A1 cada vez que se cambiara
la selección en la hoja.
Un saludo.


Fernando Arroyo
MS MVP - Excel



"c" escribió en el


mensaje news:616701c3e65a$2c784330$
Hola Fernando,

Puse el código que me dijiste y me dio error:

Yo ese código lo tengo que poner en el evento
Workbook_SelectionChange(By val Sh as Object, ByVal
Target as Range)

Por lo que para probar puse msgbox Sh.Range(Sh.[A1])
pero me dio error al ejectuarse (Application-defined or
object-defined error)

Sabes como puedo poner?

Gracias!


.

Respuesta Responder a este mensaje
#8 c
29/01/2004 - 19:01 | Informe spam
Tienes razón Fernando, disculpa pero se me ha desvirtuado
la pregunta:
Primero te respondo tus consultas y abajo pongo el código
fuente y una breve explicación de lo que quiero hacer:

- La dirección de la celda, ¿está en una celda o en una


variable?.
*Rta: Está en una variable global llamada celdaAnterior y
va cambiando a medida que el usuario se posiciona en
algunas de las celdas de las distintas hojas.

- Si está en una celda, ¿en cuál, y como se llama la


hoja?
*Rta: NO, está en una variable global en código VBA.

- Si está en una variable, ¿cómo se llama la variable?


*Rta:La variable global se llama celdaAnterior

- ¿Cómo se llama la hoja que tiene la celda cuyo valor


quieres mostrar en el MsgBox?
*Rta: es que no la quiero mostrar en un Msgbox (abajo te
explico mejor).

- Si estás trabajando con VBA, ¿no sería mejor que nos


pusieras el código que has escrito y nos dijeras qué es
lo que necesitas hacer?


ŽCODIGO VBA

Explicación: Es muy larga la explicación general así que
voy a tratar de resumir. Tengo una variable
Global "celdaAnterior" que contiene la dirección de la
última celda en la que estuvo el usuario y otra variable
Global "valorAnterior" que contiene el valor de la
anterior de la celda (que puede NO ser igual al actual)
Pues hay unas macros que haciendo doble clic se ingresa a
una ventana de seleccion de elementos y esto NO me lo
detectaba ningun evento.
Entonces tengo que preguntar si el VALOR ACTUAL de la
celda cuyas coordenadas de fila y columna está en la
variable celdaAnterior (Ej: $C$4) es igual al valor que
contiene la variable valorAnterior, en cuyo caso tengo
que hacer una serie de cosas. Abajo pongo el código: Lo
que necesito saber es cómo hacer el If que en el código
de abajo tengo comentariado:


Private Sub Workbook_SheetSelectionChange(ByVal Sh As
Object, ByVal Target As Range)

'If el valor del contenido actual de la celda
representada por celdaAnterior (ej: $C$1) = a la variable
valorAnterior) Then
Application.EnableEvents = False
Worksheets("Hoja2").[M15:M18].ClearContents
Worksheets("Hoja3").[G27:G27].ClearContents
Application.EnableEvents = True

' End If

End Sub


Gracias y disculpas!!!


Fernando Arroyo
MS MVP - Excel

"c" escribió en el


mensaje news:63f101c3e673$e0b4f910$
Perdona Fernando en realidad el evento se llama
Workbook_SheetSelectionChange (estoy usando Office XP).
Y si pongo ahí (que es donde tengo que poner el código)
MsgBox Range([A1]) me da el error Method 'Range'nof
object '_Global' failed.

Me podrías seguir ayudando...

Te formulo mejor la pregunta por las dudas:

Cómo hago para acceder al valor de una celda si tengo


una
cadena con la dirección?
Tengo por ejemplo una cadena con $C$9 que puede tomar en
tiempo de ejecución la dirección de cualquier celda, es
decir puede valer, $B$5, luego $D$8, luego $H$1, etc.
Como hago para acceder al valor de la celda cuya
dirección contiene esta cadena?
(Quiero acceder desde el evento
Workbook_SheetSelectionChange)


MUCHAS GRACIAS!!!


El evento Workbook_SelectionChange no existe (hasta


donde yo sé). Si te refieres al evento
Worksheet_SelectionChange, el código podría ser:

Private Sub Worksheet_SelectionChange(ByVal Target As


Range)
MsgBox Range([A1])
End Sub

que mostraría un mensaje con el contenido de la celda


cuya dirección estuviera en A1 cada vez que se cambiara
la selección en la hoja.
Un saludo.


Fernando Arroyo
MS MVP - Excel



"c" escribió en




el
mensaje news:616701c3e65a$2c784330$
Hola Fernando,

Puse el código que me dijiste y me dio error:

Yo ese código lo tengo que poner en el evento
Workbook_SelectionChange(By val Sh as Object, ByVal
Target as Range)

Por lo que para probar puse msgbox Sh.Range(Sh.[A1])
pero me dio error al ejectuarse (Application-defined or
object-defined error)

Sabes como puedo poner?

Gracias!


.



.

Respuesta Responder a este mensaje
#9 Fernando Arroyo
30/01/2004 - 10:14 | Informe spam
Lo siento, no entiendo qué es lo que quieres hacer. En cualquier caso, para saber si el contenido de la celda cuya dirección está almacenada en la variable CeldaAnterior es igual a la variable ValorAnterior, lo primero que habría que saber es en qué hoja está CeldaAnterior. Suponiendo que dicha hoja fuera Hoja1, la instrucción podría ser:

If Worksheets("Hoja1").Range(CeldaAnterior) = ValorAnterior Then

Un saludo.


Fernando Arroyo
MS MVP - Excel


"c" escribió en el mensaje news:6c4c01c3e691$e4f69ec0$
Tienes razón Fernando, disculpa pero se me ha desvirtuado
la pregunta:
Primero te respondo tus consultas y abajo pongo el código
fuente y una breve explicación de lo que quiero hacer:

- La dirección de la celda, ¿está en una celda o en una


variable?.
*Rta: Está en una variable global llamada celdaAnterior y
va cambiando a medida que el usuario se posiciona en
algunas de las celdas de las distintas hojas.

- Si está en una celda, ¿en cuál, y como se llama la


hoja?
*Rta: NO, está en una variable global en código VBA.

- Si está en una variable, ¿cómo se llama la variable?


*Rta:La variable global se llama celdaAnterior

- ¿Cómo se llama la hoja que tiene la celda cuyo valor


quieres mostrar en el MsgBox?
*Rta: es que no la quiero mostrar en un Msgbox (abajo te
explico mejor).

- Si estás trabajando con VBA, ¿no sería mejor que nos


pusieras el código que has escrito y nos dijeras qué es
lo que necesitas hacer?


ŽCODIGO VBA

Explicación: Es muy larga la explicación general así que
voy a tratar de resumir. Tengo una variable
Global "celdaAnterior" que contiene la dirección de la
última celda en la que estuvo el usuario y otra variable
Global "valorAnterior" que contiene el valor de la
anterior de la celda (que puede NO ser igual al actual)
Pues hay unas macros que haciendo doble clic se ingresa a
una ventana de seleccion de elementos y esto NO me lo
detectaba ningun evento.
Entonces tengo que preguntar si el VALOR ACTUAL de la
celda cuyas coordenadas de fila y columna está en la
variable celdaAnterior (Ej: $C$4) es igual al valor que
contiene la variable valorAnterior, en cuyo caso tengo
que hacer una serie de cosas. Abajo pongo el código: Lo
que necesito saber es cómo hacer el If que en el código
de abajo tengo comentariado:


Private Sub Workbook_SheetSelectionChange(ByVal Sh As
Object, ByVal Target As Range)

'If el valor del contenido actual de la celda
representada por celdaAnterior (ej: $C$1) = a la variable
valorAnterior) Then
Application.EnableEvents = False
Worksheets("Hoja2").[M15:M18].ClearContents
Worksheets("Hoja3").[G27:G27].ClearContents
Application.EnableEvents = True

' End If

End Sub


Gracias y disculpas!!!
Respuesta Responder a este mensaje
#10 c
30/01/2004 - 16:48 | Informe spam
Ya está Fernando, muchas gracias!!!
Puse:
If sh.Range(celdaAnterior) <> valorAnterior then


Lo siento, no entiendo qué es lo que quieres hacer. En


cualquier caso, para saber si el contenido de la celda
cuya dirección está almacenada en la variable
CeldaAnterior es igual a la variable ValorAnterior, lo
primero que habría que saber es en qué hoja está
CeldaAnterior. Suponiendo que dicha hoja fuera Hoja1, la
instrucción podría ser:

If Worksheets("Hoja1").Range(CeldaAnterior) =


ValorAnterior Then

Un saludo.


Fernando Arroyo
MS MVP - Excel


"c" escribió en el


mensaje news:6c4c01c3e691$e4f69ec0$
Tienes razón Fernando, disculpa pero se me ha


desvirtuado
la pregunta:
Primero te respondo tus consultas y abajo pongo el


código
fuente y una breve explicación de lo que quiero hacer:

- La dirección de la celda, ¿está en una celda o en




una
variable?.
*Rta: Está en una variable global llamada celdaAnterior


y
va cambiando a medida que el usuario se posiciona en
algunas de las celdas de las distintas hojas.

- Si está en una celda, ¿en cuál, y como se llama la


hoja?
*Rta: NO, está en una variable global en código VBA.

- Si está en una variable, ¿cómo se llama la variable?


*Rta:La variable global se llama celdaAnterior

- ¿Cómo se llama la hoja que tiene la celda cuyo valor


quieres mostrar en el MsgBox?
*Rta: es que no la quiero mostrar en un Msgbox (abajo te
explico mejor).

- Si estás trabajando con VBA, ¿no sería mejor que nos


pusieras el código que has escrito y nos dijeras qué es
lo que necesitas hacer?


ŽCODIGO VBA

Explicación: Es muy larga la explicación general así que
voy a tratar de resumir. Tengo una variable
Global "celdaAnterior" que contiene la dirección de la
última celda en la que estuvo el usuario y otra variable
Global "valorAnterior" que contiene el valor de la
anterior de la celda (que puede NO ser igual al actual)
Pues hay unas macros que haciendo doble clic se ingresa


a
una ventana de seleccion de elementos y esto NO me lo
detectaba ningun evento.
Entonces tengo que preguntar si el VALOR ACTUAL de la
celda cuyas coordenadas de fila y columna está en la
variable celdaAnterior (Ej: $C$4) es igual al valor que
contiene la variable valorAnterior, en cuyo caso tengo
que hacer una serie de cosas. Abajo pongo el código: Lo
que necesito saber es cómo hacer el If que en el código
de abajo tengo comentariado:


Private Sub Workbook_SheetSelectionChange(ByVal Sh As
Object, ByVal Target As Range)

'If el valor del contenido actual de la celda
representada por celdaAnterior (ej: $C$1) = a la


variable
valorAnterior) Then
Application.EnableEvents = False
Worksheets("Hoja2").[M15:M18].ClearContents
Worksheets("Hoja3").[G27:G27].ClearContents
Application.EnableEvents = True

' End If

End Sub


Gracias y disculpas!!!


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida