No logro hacer que un botón sea flotante

Cuento con cierto código el cual me debería mostrar un botón que cuando yo haga Scroll arriba y abajo, o hacia los lados el botón se siga viendo, es decir, un botón flotante (creo que así se llama), pero por alguna razón el botón no aparece, les adjunto el código y agradecería cualquier ayuda para corregirlo

Private Sub cmdred_Click()
    Range("A1:P88").Select
    Selection.Copy
    Range("A1").Select
    Selection.Insert Shift:=xlDown
    Range("B1").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=R[88]C+1"
    Range("B2").Select
    ActiveWindow.SmallScroll Down:=-15
    Range("A1").Select
End Sub
Private Sub UserForm_Initialize()
Dim sql As String, i As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
EliminarTitulo Me.Caption
With frmCargar
.Height = 52.5
.Top = 4.5
.Left = 1410
.Width = 95.25
End With
End Sub

1 respuesta

Respuesta
1

[Hola

¿Te refieres a un botón en una hoja o en un "Userform"? Tengo la impresión que en una hoja pero como envías código de un "Userform" me quedó la duda. Por cierto, no, en lo que envías no hay algo que haga que un botón sea "flotante".

Abraham Valencia

Me refiero a un botón en una hoja, solo que haciendo búsqueda de información me salio que había que hacerlo de esa forma

[Hola

Pues debes usar el evento "SelectionChange" de la hoja. Prueba algo así:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim LimiteSuperior As Long, LimiteIzquierdo As Long
Let LimiteSuperior = Target.Top
Let LimiteIzquierdo = Range("B1").Left
With ActiveSheet.CommandButton1
    .Top = LimiteSuperior
    .Left = LimiteIzquierdo
End With
End Sub

No olvides reemplazar por nombre de tu botón. Asimismo yo he colocado como referencia la columna "B" para que el botón se mantenga a ese nivel. OJO, solo sirve si haces click o usas las flechas del teclado, si usas solo el scroll del Excel, no te "seguirá" el botón.

Abraham Valencia

PD: Se podría hacer algo para el scrol pero requiere más programación así como usar funciones de la API de Windows

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas