Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Lacayo en 15 Junio 2019, 20:30 pm



Título: VBA Excel
Publicado por: Lacayo en 15 Junio 2019, 20:30 pm
Hola a todos,

ya se que es una chorrada pero no encuentro donde está el fallo

Estoy intentando crear un botón flotante en Excel. La idea es que de inicio siempre esté en una posición determinada.

Siguiendo diferentes tutoriales, he conseguido hacer el botón flotante con el código:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim fila, columna As Variant
    fila = Target.Row
    columna = Target.Column
    With ActiveSheet.Shapes("menu")
        .Left = Cells(fila, columna + 1).Left
        '.Top = ActiveCell.Top
   
    End With
   

End Sub

Donde "menu" es el cuadro de texto.

El botón cumple su función pero quiero que cada vez que se abra la hoja de excel el botón aparezca en la celda (por ejemplo) "J5". Ahora el botón se queda en la última posición grabada.

Entiendo que añadiendo unas lineas por encima de la variable me debería dejar el botón en la posición que yo decida, pero no hay forma de que eso ocurra


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    ActiveSheet.Shapes("Menu").Top = ActiveSheet.Range("A1").Top
    ActiveSheet.Shapes("Menu").Left = ActiveSheet.Range("A1").Left

Dim fila, columna As Variant
    fila = Target.Row
    columna = Target.Column
    With ActiveSheet.Shapes("menu")
        .Left = Cells(fila, columna + 1).Left
        '.Top = ActiveCell.Top
   
    End With
   

End Sub



Las lineas     ActiveSheet.Shapes("Menu").Top = ActiveSheet.Range("A1").Top y ActiveSheet.Shapes("Menu").Left = ActiveSheet.Range("A1").Left no hacen nada. El botón sigue apareciendo en su última posición

Tampoco se consigue nada repitiendo la orden With dándole valor a las variables "fila=5" y "columna=J"

Alguna idea?

Gracias