¿Como puedo mandar llamar un Private Sub Worksheet_SelectionChange(ByVal Target As Range) a un libro nuevo, desde otra macro?

Tengo una macro que selecciona varios libros de Excel y los convierte en uno solo, esta macro esta colocada en un botón, en una cinta de Ribbon. La macro se llama "Unirhojas".

Cuando abro un Excel nuevo cualquiera, ejemp: "Book1", y presionar el botón, se ejecuta correctamente la macro, pero me gustaría que, también pegara esta worksheet en la hoja1 de Book1, para que ejecute su función.

La WorkSheet la pegue en la hoja1 de Unirhojas.xlam y la trate de llamar para que se pegara en Sheet1 de Book1, pero no se adjunta. Esta es la macro que se debe pegar o mandarse llamar a Sheet1 de Book1.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Esta macro manda llamar un archivo .pdf de una ruta especifica, con un nombre especifico, seleccionando la celda del mismo nombre que el documento.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

ruta = "H:\Standard\ProdFab Macros\pdfparts2do\"
'ruta = "C:\trabajo\"
'ext = ".dxf"
ext = ".pdf"
'
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Set h1 = Sheets.Add
'ChDir ruta
'nomb = Cells(Target.Row, "B")
arch = Dir(ruta & Cells(Target.Row, "B") & "*.pdf")
i = 1
Do While arch <> ""
h1.Cells(i, "A") = arch
i = i + 1
arch = Dir()
Loop
If i > 1 Then
u = h1.Range("A" & Rows.Count).End(xlUp).Row
With h1.Sort
.SortFields.Clear
.SortFields.Add Key:=h1.Range("A1:A" & u), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange h1.Range("A1:A" & u)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
archivo = h1.Cells(u, "A")
ActiveWorkbook.FollowHyperlink ruta & archivo
End If
h1.Delete
End If
End Sub

Añade tu respuesta

Haz clic para o