Saltar al contenido

Celdas vinculadas entre si


Recommended Posts

publicado

Buenos días,

Estoy realizando unas tablas y tengo el siguiente problema,

En la hoja 1 tengo unos nombres con unas notas (Columna A nombres y Columna B notas), en otra hoja del mismo libro tengo lo mismo y lo que quiero hacer es lo siguientes:

Que las notas las pueda modificar tanto en la hoja 1 como en la otra y que siempre tenga en las dos hojas el último valor escrito.

Espero me puedan ayudar.

Gracias. :lol:

publicado

Sigue las reglas del foro...sube un archivo con lo que necesitás (aunque sea uno "básico" para que podamos tomar de guía y modificar a partir de éste).

Saludos

Gustavo

publicado

Acuérdate de subir un archivo para poder probar en la próxima consulta tal como ha comentado @gfellay.

Coloca esta macro en Thisworkbook:

Private Sub Workbook_SheetChange _
         (ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
If Sh.CodeName = "Hoja1" Or Sh.CodeName = "Hoja2" Then
   Target.Copy Hoja1.Range(Target.Address)
   Target.Copy Hoja2.Range(Target.Address)
End If
Application.EnableEvents = True
End Sub

 

publicado

Muchas gracias por el interés mostrado tanto de gfellay como de Macro Antonio, como me indicáis subo un ejemplo para que pueda ser valorado.

Perdonar por no subirlo antes.

La macro es muy buena pero solo necesito que se modifiquen datos de una columna y ademas que pertenezca a la fila correcta.

Gracias por vuestra ayuda

Notas.xlsx

publicado

En la Hoja1

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Alumno As Range
If Target.Rows.Count > Rows.Count Or _
   Target.Columns.Count = Columns.Count Then Exit Sub
Application.EnableEvents = False
For Each celda In Target
   If celda.Row > 5 And _
      celda.Column = 4 And _
      Trim(Range("B" & celda.Row)) <> "" Then
      Set Alumno = Hoja2.Columns("I").Find(Trim(Range("B" & celda.Row).Value))
      If Not Alumno Is Nothing Then
         Hoja2.Range("J" & Alumno.Row) = celda.Value
      End If
   End If
Next
Application.EnableEvents = True
End Sub

En la Hoja2

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Alumno As Range
If Target.Rows.Count > Rows.Count Or _
   Target.Columns.Count = Columns.Count Then Exit Sub
Application.EnableEvents = False
For Each celda In Target
   If celda.Row > 8 And _
      celda.Column = 10 And _
      Trim(Range("I" & celda.Row)) <> "" Then
      Set Alumno = Hoja1.Columns("B").Find(Trim(Range("I" & celda.Row).Value))
      If Not Alumno Is Nothing Then
         Hoja1.Range("D" & Alumno.Row) = celda.Value
      End If
   End If
Next
Application.EnableEvents = True
End Sub

 

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.