Excel - Como escribir un evento en el ThisWorkbook a través de una macro

 
Vista:
sin imagen de perfil

Como escribir un evento en el ThisWorkbook a través de una macro

Publicado por joseleitorman (2 intervenciones) el 26/03/2024 11:00:29
hola a tod@s,
por favor, ¿alguien me podría decir como podría escribir en otro libro excel a través de una macro un evento en el ThisWorkbook para que cuando seleccione una celda, se envíen automáticamente una serie de teclas?.
Cuando hago los pasos mientras trabajo en la macro no se guardan los datos en el SheetSelectionChange y he pensado que con el comando SendKeys quizás se podría hacer.
lo que quiero conseguir a través de una macro es poner en workbook de otro libro excel el siguiente código:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
SendKeys "%m%u{ENTER}"
End Sub

Gracias de antemano y un saludo!
Jose
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Como escribir un evento en el ThisWorkbook a través de una macro

Publicado por Antoni Masana (2478 intervenciones) el 26/03/2024 20:37:01
Hace tiempo encontré esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Crear_Macro_2()
    Dim proj As VBIDE.VBProject
    Dim comps As VBIDE.vbcomponents     ' Hojas, ThisWorkbook, Módulos estándar, Módulos de clase, UserForms
    Dim modulo As VBIDE.VBComponent     ' Módulo1, NuevoMódulo, Módulo2
    Dim codigo As VBIDE.CodeModule      ' Sub, Function, property_get, property_let
 
    Set proj = ActiveWorkbook.VBProject   ' Workbooks(1).VBProject   ActiveWorkbook.vbproject    Workbook("Libro2.xlsm").VBproject    ThisWorkBook.VBProject
    Set comps = proj.vbcomponents
    Set modulo = comps.Add(vbext_ct_stdmodule)
 
    modulo.Name = "ThisWorkbook"
 
    Set codigo = modulo.CodeModule
 
    With codigo
        .InsertLines .countOfLines + 1, "Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)"
        .InsertLines .countOfLines + 1, "    SendKeys ""%m%u{ENTER}"""
        .InsertLines .countOfLines + 1, "End Sub"
    End With
End Sub

No se si funciona, he puesto el modulo donde debe ir el evento y el evento mismo, si no funciona ya tiene algo para buscar más información.


He buscado VBIDE.VBProject y en esta página habla del tema: http://www.cpearson.com/excel/vbe.aspx
Hay más páginas

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como escribir un evento en el ThisWorkbook a través de una macro

Publicado por José Antonio (2 intervenciones) el 28/03/2024 13:18:24
Hola Antoni, ante todo muchas gracias por la rápida respuesta!
he probado el código pero me sale el siguiente error: "No se ha definido el tipo definido por el usuario", por otro lado tengo pocos conocimientos de excel y no sabría sacar partido del resto de información que viene en la web que me recomiendas.
Gracias y un saludo!
Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar