MsgBox

28/12/2004 - 10:51 por Luises | Informe spam
Buenos días.

Quiero que cuando una celda cambie me salga un mensaje MsgBox, pero no sé el
evento. ¿Alguien lo sabe?

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
28/12/2004 - 11:37 | Informe spam
"Luises" escribió en el mensaje news:
Buenos días.

Quiero que cuando una celda cambie me salga un mensaje MsgBox, pero no sé el
evento. ¿Alguien lo sabe?

Muchas gracias.





El evento es WorksheetChange (va en el módulo de la hoja). Por ejemplo:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then MsgBox "Cambio en la celda A1"
End Sub

Un saludo


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#2 KL
28/12/2004 - 11:58 | Informe spam
Luises,

Depende de lo q quiera decir "cuando una celda cambie".

Si se trata de cambiar el contenido (texto, valor, formula) mediante edicion
manual o via VBA, entonces el evento a usar es Worksheet_Change o
Workbook_SheetChange solo q tienes q poner una condicion para q solo se
dispare cuando cambie la celda en cuestion. Por ejemplo si quieres q el
mensaje te aparezca solo cuando cambie la celda [A1] en una hoja determinada
coloca el siguiente codigo en el modulo de la hoja en cuestion:

Private Sub Worksheet_Change(ByVal Target As Range)
Set MiCelda = Range("A1")
If Not Intersect(Target, MiCelda) Is Nothing Then
MsgBox MiCelda
End If
End Sub

y si quieres q aparezca el mensaje si cambia [A1] en cualquiera de las hojas
del libro entonces usa:

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
Set MiCelda = Range("A1")
If Not Intersect(Target, MiCelda) Is Nothing Then
MsgBox MiCelda
End If
End Sub

Si se tratase de captar otro tipo de cambios - p.ej. cambio de formato de la
celda, nuevo valor como resultado de recalcolo de la formula, etc - habria q
recurrir a otros eventos o combinaciones de eventos.

Saludos,
KL

Saludos,
KL

"Luises" wrote in message
news:
Buenos días.

Quiero que cuando una celda cambie me salga un mensaje MsgBox, pero no sé
el
evento. ¿Alguien lo sabe?

Muchas gracias.


Respuesta Responder a este mensaje
#3 Luises
28/12/2004 - 12:00 | Informe spam
Muchas gracias.

"Fernando Arroyo" escribió en el mensaje
news:
"Luises" escribió en el mensaje
news:
Buenos días.

Quiero que cuando una celda cambie me salga un mensaje MsgBox, pero no sé


el
evento. ¿Alguien lo sabe?

Muchas gracias.





El evento es WorksheetChange (va en el módulo de la hoja). Por ejemplo:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then MsgBox "Cambio en la celda A1"
End Sub

Un saludo


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#4 Luises
29/12/2004 - 13:01 | Informe spam
Muchas gracias, KL.

En verdad, "que la celda cambie" significa que cambia el resultado de una
fórmula. Si no te cuesta mucho, ¿podrías decirme qué variación hay que
hacer? Si ves que es mucho problema creo que puedo hacerlo de otra forma.

Un saludo.



"KL" escribió en el mensaje
news:
Luises,

Depende de lo q quiera decir "cuando una celda cambie".

Si se trata de cambiar el contenido (texto, valor, formula) mediante


edicion
manual o via VBA, entonces el evento a usar es Worksheet_Change o
Workbook_SheetChange solo q tienes q poner una condicion para q solo se
dispare cuando cambie la celda en cuestion. Por ejemplo si quieres q el
mensaje te aparezca solo cuando cambie la celda [A1] en una hoja


determinada
coloca el siguiente codigo en el modulo de la hoja en cuestion:

Private Sub Worksheet_Change(ByVal Target As Range)
Set MiCelda = Range("A1")
If Not Intersect(Target, MiCelda) Is Nothing Then
MsgBox MiCelda
End If
End Sub

y si quieres q aparezca el mensaje si cambia [A1] en cualquiera de las


hojas
del libro entonces usa:

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
Set MiCelda = Range("A1")
If Not Intersect(Target, MiCelda) Is Nothing Then
MsgBox MiCelda
End If
End Sub

Si se tratase de captar otro tipo de cambios - p.ej. cambio de formato de


la
celda, nuevo valor como resultado de recalcolo de la formula, etc - habria


q
recurrir a otros eventos o combinaciones de eventos.

Saludos,
KL

Saludos,
KL

"Luises" wrote in message
news:
> Buenos días.
>
> Quiero que cuando una celda cambie me salga un mensaje MsgBox, pero no



> el
> evento. ¿Alguien lo sabe?
>
> Muchas gracias.
>
>


Respuesta Responder a este mensaje
#5 KL
29/12/2004 - 19:34 | Informe spam
Luises,

Prueba poner el codigo de abajo en el modulo de EsteLibro (ThisWorkBook).
Este codigo usa el Comentario para almacenar el ultimo valor de la celda
[A1] para luego poder validarlo cada vez q se produzcan cambios en las
hojas. Si la formula hace referencia a otro fichero, creo q habria q usar el
evento Calculate en vez de Change.

Saludos,
KL

'--Inicio Codigo--
Private Sub Workbook_Open()
Call ActualizarComentario
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
With Sheets("Hoja1").Range("A1")
If .Text <> .Comment.Text Then
MsgBox "A1 ha cambiado de " & .Comment.Text & _
" a " & .Text
Call ActualizarComentario
End If
End With
End Sub

Sub ActualizarComentario()
With Sheets("Hoja1").Range("A1")
On Error Resume Next
.AddComment .Text
.Comment.Text .Text
End With
End Sub
'--Fin Codigo--


"Luises" wrote in message
news:%
Muchas gracias, KL.

En verdad, "que la celda cambie" significa que cambia el resultado de una
fórmula. Si no te cuesta mucho, ¿podrías decirme qué variación hay que
hacer? Si ves que es mucho problema creo que puedo hacerlo de otra forma.

Un saludo.



"KL" escribió en el mensaje
news:
Luises,

Depende de lo q quiera decir "cuando una celda cambie".

Si se trata de cambiar el contenido (texto, valor, formula) mediante


edicion
manual o via VBA, entonces el evento a usar es Worksheet_Change o
Workbook_SheetChange solo q tienes q poner una condicion para q solo se
dispare cuando cambie la celda en cuestion. Por ejemplo si quieres q el
mensaje te aparezca solo cuando cambie la celda [A1] en una hoja


determinada
coloca el siguiente codigo en el modulo de la hoja en cuestion:

Private Sub Worksheet_Change(ByVal Target As Range)
Set MiCelda = Range("A1")
If Not Intersect(Target, MiCelda) Is Nothing Then
MsgBox MiCelda
End If
End Sub

y si quieres q aparezca el mensaje si cambia [A1] en cualquiera de las


hojas
del libro entonces usa:

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
Set MiCelda = Range("A1")
If Not Intersect(Target, MiCelda) Is Nothing Then
MsgBox MiCelda
End If
End Sub

Si se tratase de captar otro tipo de cambios - p.ej. cambio de formato de


la
celda, nuevo valor como resultado de recalcolo de la formula, etc -
habria


q
recurrir a otros eventos o combinaciones de eventos.

Saludos,
KL

Saludos,
KL

"Luises" wrote in message
news:
> Buenos días.
>
> Quiero que cuando una celda cambie me salga un mensaje MsgBox, pero no



> el
> evento. ¿Alguien lo sabe?
>
> Muchas gracias.
>
>






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