Hola,
agradecería enormemente vuestra ayuda porque no sé cómo programarlo para que funcione.
Resulta que tengo un libro que comparto en red con varios compañeros, y me gustaría que si un compañero modifica cualquier texto de la columna A, B, ó C se envíe automáticamente el correo electrónico que está escrito en la columna G.
Importante: que sólo se envíe el correo de la fila en la que ha habido la modificación.
Espero haberme explicado bien. Adjunto imagen.
Saludos.
¡¡¡Gracias!!!
Adjunto | Tamaño |
---|---|
002.png | 9.36 KB |
lo primero es identificar que se ha cambiado una celda de las columnas A, B o C
Para esto puedes utilizar el evento Worksheet_Change
Private Sub Worksheet_Change(ByVal Target As Range)
donde Target será el rango que cambia
(habría que comprobar el caso en que Target no es una celda, sino varias celdas a la vez ¿cómo lo harías en ese caso?)
Juega con la columna de Target para saber si es de las que te interesa o no. Por ejemplo:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim correo_destinatario As String
Select Case Target.Column
Case 1, 2, 3
'hay que enviar email
correo_destinatario = Me.Cells(Target.Row, 7).Value
MsgBox "destinatario: " & correo_destinatario
Case Else
'pues nada, es otra columna
End Select
End Sub
Otra historia es cómo vas a enviar el email y el contenido que quieras incluir.
mira estos otros temas del foro sobre el envío de emails
------
Ya sé Excel, pero necesito más.
lo primero es identificar que se ha cambiado una celda de las columnas A, B o C
Para esto puedes utilizar el evento Worksheet_Change
Private Sub Worksheet_Change(ByVal Target As Range)
donde Target será el rango que cambia
(habría que comprobar el caso en que Target no es una celda, sino varias celdas a la vez ¿cómo lo harías en ese caso?)
Juega con la columna de Target para saber si es de las que te interesa o no. Por ejemplo:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim correo_destinatario As String
Select Case Target.Column
Case 1, 2, 3
'hay que enviar email
correo_destinatario = Me.Cells(Target.Row, 7).Value
MsgBox "destinatario: " & correo_destinatario
Case Else
'pues nada, es otra columna
End Select
End Sub
Otra historia es cómo vas a enviar el email y el contenido que quieras incluir.
mira estos otros temas del foro sobre el envío de emails
------
Ya sé Excel, pero necesito más.
Muchas gracias por tu respuesta.
¿Y si reduzco las opciones de modificación, solo en caso de modificación de la columna B, que se envíe automaticamente el correo electrónico que está escrito en la columna G, será más fácil? ¿Cómo sería el código?
Para el envío del correo:
Asunto sea la palabra Modificación.
Cuerpo del mensaje: Toda la fila que ha sufrido modificación.
¿Cómo indico eso?
Se que es bastante complejo, muchas por tu tiempo.
Saludos