Tengo una hoja de trabajo central con todos los datos en varias tablas. Digamos que tengo la Tabla A, B, C y D, todo en una hoja de trabajo central.
En las otras tres hojas de trabajo, tengo la Tabla B en la Hoja de trabajo 2, la Tabla C en la Hoja de trabajo 3 y la Tabla D en la Hoja de trabajo 4.
Lo que he intentado es insertar un botón de comando desde la pestaña Desarrolladores en la hoja de trabajo maestra (central) y luego insertar este código:
Private Sub CommandButton1_Click()
Sub copyAOne()
Dim ws As Worksheet
Dim newValue As Range
Set newValue = ActiveSheet.Range("A1")
For Each ws In Worksheets
ws.Range("A1") = newValue
Next ws
End Sub
Respuestas
1 para la respuesta № 1Esto es algo para comenzar:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [tableA]) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Dim wkb As Workbook
Set wkb = Workbooks.Open("C:DesktopTest2.xlsm")
wkb.Worksheets(1).Cells(Target.Row, Target.Column).Value = Target.Value
wkb.Save
"wkb.Close
End Sub
Necesitas lo siguiente:
- tablaA en la corriente
Worksheet
- Test2.xlsm
- Debe poner el código en la Hoja de trabajo, no en el módulo.
- Probablemente no funcionaría exactamente como se esperaba, pero la idea principal es esta.
- Asegúrese de cerrar "C: DesktopTest2.xlsm" antes de ejecutar el archivo.
Y, en general, si desea hacerlo con un botón, y no con un evento, esto es algo que podría usar:
Option Explicit
Public Sub TestMe()
Dim wkb As Workbook
Set wkb = Workbooks.Open("C:UsersDesktopTest2.xlsm")
ThisWorkbook.Worksheets(1).Range("A1:D16").Copy
wkb.Worksheets(1).Range("A1:D16").PasteSpecial xlPasteValues
Application.CutCopyMode = False
wkb.Save
"wkb.Close
End Sub