Saltar al contenido

definir posicion del userform al iniciar


Recommended Posts

publicado

como puedo poner la ubicacion de donde debe aparecer el userform, es decir; en que parte de la pantalla quiero que aparesca, resulta que redimensiono las medidas del userform pero al redimensionarlas la posicion en la que aparece en la pantalla se vuelve invisible (a los ojos humanos no a nivel de programacion).

por ejemplo quiero que aparesca con la esquina superior izquiera del userform en la esquina superior izquierda de la pantalla. ¿como lo logro?

anexo archivo

Dardimensiones_a_Userform.xls

publicado

Hola:

Prueba con esto:

Private Sub UserForm_Initialize()

Me.StartUpPosition = 0 'Manual
Me.Top = 0 'Desde la parte superior
Me.Left = 0 'Desde el margen izquierdo

End Sub


[/CODE]

publicado

excelente, pero he aqui la pregunta del millon, ¿se puede mover de una manera mas exacta?, por decir algo, 35° a la derecha 80 hacia abajo°, °9 hacia arriba etc etc... ¿se puede?

publicado

Hola:

No se a que te refieres con 35º a la derecha.

Este código te coloca el formulario en la celda F5:

Private Sub UserForm_Initialize()

Me.StartUpPosition = 0 'Manual
Me.Top = [F5].Top + 135
Me.Left = [F5].Left + 18

End Sub[/CODE]

Invitado Héctor Miguel
publicado
Este código te coloca el formulario en la celda F5:

(hasta donde se) ese "ajuste" que haces en el código (+ 135 y + 18) va a funcionar exclusivamente "bajo ciertas condiciones" (aquellas que coincidan con la configuración de TU equipo) p.e. si se muestran (o no)...

- los encabezados de fila y columna

- cinta y/o barras de herramientas (y cuantas)

- la fuente y tamaño del estilo normal en uso

- el 'zoom' de la ventana, etc. etc. etc.

coincido en pedir que OP sea mas claro, conciso y especifico en cuanto a que es (realmente) lo que necesita "controlar" (???)

en vía de mientras, consultar en esta pagina:

Form Positioner

saludos,

hector.

publicado

Ya lo se Hector, pero mientras el amigo hermesc no precise un poco mas lo de los grados a "babor" y a "estribor" no pensaba incidir en esta cuestión.

En cualquier caso, se agradece la colaboración.

Por cierto, muy bueno el link de cpearson.

publicado

bueno lo unico que busco es ver si se puede mover de una manera mas flexible y no algo tan rigida (como el hecho que solo aparesca en la esquina superior izquierda o derecha o esquina inferior izquierda o derecha o en el centro de la pantalla), y es que no me imagino nada solo algo asi como moverlo en una plano xy de la pantalla.

publicado

¿ Sabes que puedes arrastrar el formulario donde tu quieras manteniendo pulsado el mouse sobre la barra de título ?

publicado

creo me confunden mis comentarios pero creo que no importa, no habia leido el link que me enviaste hector y creo que ya encontre la respuesta por lo que no me queda mas que agradecer su tiempo y las aportaciones a ambos. Lo declaro tema solucionado

  • 5 months later...
publicado

GRACIAS POR ESTE CODIGO

Private Sub UserForm_Initialize()

Me.StartUpPosition = 0 'Manual

Me.Top = 0 'Desde la parte superior

Me.Left = 0 'Desde el margen izquierdo

End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      29

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    2    1

  • Crear macros Excel

  • Mensajes

    • Que tal nuevamente,  adjunto una solución alternativa: =MAX(A:.A)-BYROW(F4:.AK20,LAMBDA(r,BUSCAR(2,1/(r=0),F3:.AK3))) Cabe mencionar que esta solución requiere funciones nuevas como RECORTAR.RANGO. CONTADOR FINAL (Solucion).xlsb
    • Buenos días,  espero se encuentren bien de salud compañeros, Favor me podrían ayuda con lo siguientes como se podría hacer cuando tengo una tabla dinámica que  amedida que se aumente las columnas fechas con data un formula que se coloco al final busque o analice siempre la ultima fila y columna de la fecha. Coloco un ejemplo
    • @JSDJSD Excelentes, GRACIAS POR TU SOPORTE , me ayudo demasiado es exactamente lo que quería. 5 ESTRELLAS
    • 'Opción 1 Sub FiltrarSKUPorFecha(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim diccionarioSKU As Object Dim listaEliminar As Object Dim fechaActual As String, fechaSiguiente As String Dim f As Variant With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Crear diccionarios para comparar SKU y almacenar filas a eliminar Set diccionarioSKU = CreateObject("Scripting.Dictionary") Set listaEliminar = CreateObject("Scripting.Dictionary") ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then diccionarioSKU.RemoveAll ' Limpiar el diccionario antes de llenarlo ' Guardar los SKU de la fecha siguiente (solo de la siguiente) For f = fila + 1 To ultimaFila If .Cells(f, 1).Value <> fechaSiguiente Then Exit For diccionarioSKU(.Cells(f, 2).Value) = 1 Next f ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Solo eliminar si el SKU no está en la fecha siguiente If Not diccionarioSKU.exists(.Cells(f, 2).Value) Then listaEliminar(f) = 1 ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar.keys .Rows(f).Delete Next End With MsgBox "Completado correctamente.", vbInformation End Sub 'Opción 2 Sub FiltrarSKUPorFecha1(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim listaEliminar As Collection Dim fechaActual As String, fechaSiguiente As String Dim f As Variant, i As Long Dim SKUExiste As Boolean With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Inicializar la colección para marcar las filas a eliminar Set listaEliminar = New Collection ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Comprobar si el SKU está en la fecha siguiente SKUExiste = False For i = fila + 1 To ultimaFila If .Cells(i, 1).Value <> fechaSiguiente Then Exit For If .Cells(i, 2).Value = .Cells(f, 2).Value Then SKUExiste = True Exit For End If Next i ' Si el SKU no se encuentra en la fecha siguiente, marcar para eliminar If Not SKUExiste Then listaEliminar.Add f ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar .Rows(f).Delete Next f End With MsgBox "Completado correctamente.", vbInformation End Sub   TABLA ELIMINAR.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.