Saltar al contenido

avalencia

Miembros
  • Contador de contenido

    831
  • Unido

  • Última visita

  • Days Won

    14

4Seguidores

Sobre avalencia

  • Rango
    Abraham Valencia

Formas de contacto

  • Web https://abrahamexcel.blogspot.pe/

Información de perfil

  • Sexo Hombre
  • Localización: Perú

Configuraciones

  • Campo que utilizas como separador de argumentos ,

Visitantes recientes del perfil

869 visitas de perfil
  1. Hola Cuando se trata de la Propiedad "Picture", al agregar un objeto la forma cambia: Set .Properties("Picture").Object = _ LoadPicture(ThisWorkbook.Path & "\Imagen1.jpg") Saludos Abraham Valencia
  2. avalencia

    Mover ListBox con Scroll de Formulario.

    Hola ActionX siempre es positivo por lo que así muevas el "scroll" hacia la izquierda, le sigues sumando números positivos a la posición "Left" de tu "ListBox". Usa mejor "RequestDx" que sí tiene valor negativo. Para que tu "ListBox" no termine pegado al borde izquierdo del "USerform", bastaría un "If" que controle dicho "Left". Comentas Abraham Valencia
  3. avalencia

    El odio, el odio...

    Hola amigos, solo para hacerles recordar (algunos ya lo saben) que odio Java y por ende odio JavaScript, y aunque no tengo aún Excel 2019 y no uso suscripciones a Office 365, pues asumo que odiaré las funciones personalizadas de Excel 2019. Abraham Valencia PD: A ver si alguien que ya esté usándolas no cuenta algo
  4. avalencia

    Compatibilidad Macros 2016 a 2013

    Habría que, de preferencia, ver tu archivo o al menos tus código y que menciones que objetos ActiveX (o similares) usas y, sobre todo, que confirmes el, creo yo aparente, dilema de los bits, es decir, verifica las versiones. Abraham Valencia
  5. avalencia

    Compatibilidad Macros 2016 a 2013

    Hola En realidad,a groso modo, no deberías tener problemas; quizá lo que ocurre es que usaste objetos ActiveX que no necesariamente tienen ambas versiones o quizá el problema es con que uno es de 32 bits y el otro de 64 y estás usando funciones de la API de Windows. Comentas Abraham Valencia
  6. Hola Se ve así en Excel 2013 de 32 bits, en Excel 2013 de 64 bits y en Excel 2016 de 32 bits.El primer día pensé que era algo que Antoni había colocado adrede para evadir el cuadro de diálogo de Excel de errores pero ya aclarado que no es así, debe ser cosa de Excel 365 que actualizado es equivalente a Excel 2019 (casi casi iguales). Dado que tiene muy poco tiempo en el mercado es casi lógico que no encontremos nada al respecto en internet. Me parece que esa es la explicación después de que varios hemos probado en otras versiones ¿alguien más con Excel 365 actualizado? Yo soy de la "vieja guardia" y me niego a usar las suscripciones 365 je je je. Saludos Abraham Valencia
  7. avalencia

    Obtener Nombre de la Hoja

    Hola Solo por si acaso, ese nombre no es el de la hoja, es el nombre del módulo de la hoja (que es un módulo de clase) que por defecto lleva el mismo nombre de la hoja pero ambos nombres no tienen una relación directa. Abraham Valencia
  8. avalencia

    Guardar userform en 2016 64 bits en pdf

    Hola Si mal no te entendí, creo que esto te ayudará, solo tendrías que adaptarlo a tus necesidades: Sub ImpresorasConectadas() Dim Items As Integer Let UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row + 1 With CreateObject("WScript.Network").EnumPrinterConnections For Items = 0 To .Count - 1 Step 2 If UCase(.Item(Items + 1)) Like "*PDF*" Then MsgBox "La impresora pdf es: " & .Item(Items + 1) End If Next Items End With End Sub Saludos Abraham Valencia
  9. avalencia

    Guardar userform en 2016 64 bits en pdf

    Si re revisas, yo use el nombre de mi impresora PDF: WshNetwork.SetDefaultPrinter "Adobe PDF" Y claro, cada quien lo adapta al nombre de la suya. Su tu intención es usar el archivo en varias PC, pues habría que buscar/detectar la PDF correspondiente de cada una lo que, te aseguro, no será tan fácil. Abraham Valencia
  10. avalencia

    Guardar userform en 2016 64 bits en pdf

    Hola Hola Desde mi punto de vista, creo que podríamos decir que existen dos formas de imprimir un "UserForm" desde VBA: 1- Usar el método "PrintForm": La desventaja de dicho método, para algunas personas, es que actúa sobre la impresora predeterminada del sistema operativo y por lo tanto se tendría que tener una que "imprima" en PDF o cambiar, de ser otra, la predeterminada (ojo, no la impresora a usar sino la predeterminada) a una de PDF y quizá después volver a colocar la predeterminada que se tenía antes (sé que se lee enredado, pero espero se entienda). Ah sugiero que todo eso sea a través de algún evento de un objeto del "UserForm", por ejemplo un botón: Private Sub CommandButton1_Click() Dim WshNetwork As Object Dim ImpresoraActiva As String Set WshNetwork = CreateObject("WScript.Network") Let ImpresoraActiva = Left(ActivePrinter, Len(ActivePrinter) - 9) WshNetwork.SetDefaultPrinter "Adobe PDF" Me.PrintForm WshNetwork.SetDefaultPrinter ImpresoraActiva End Sub 2- La segunda forma sería recurrir a las funciones de la API de Windows. Realizamos una captura de pantalla del "UserForm", la pegamos en una hoja de Excel y con el método de exportar PDF del Excel convertimos dicha imagen en PDF. Ah, también sugiero usar un evento de algún objeto del "UserForm": #If VBA7 And Win64 Then Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) #Else Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) #End If Const KEYEVENTF_EXTENDEDKEY = &H1 Const KEYEVENTF_KEYUP = &H2 Const VK_SNAPSHOT = &H2C Const VK_MENU = &H12 Private Sub CommandButton1_Click() Dim Ruta As String keybd_event VK_MENU, 0, KEYEVENTF_EXTENDEDKEY, 0 keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0 keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0 keybd_event VK_MENU, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0 DoEvents ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count) Range("A1").Select ActiveSheet.Paste Let Ruta = ActiveWorkbook.Path & "\" & "UserForm.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Ruta, _ Quality:=xlQualityStandard, IncludeDocProperties:=False, _ IgnorePrintAreas:=False, OpenAfterPublish:=False Application.DisplayAlerts = False Worksheets(Worksheets.Count).Delete Application.DisplayAlerts = True End Sub Ah, funciona Office de 32 o de 64 bits. Saludos. Abraham Valencia
  11. Hola Para que no quede la duda: En el caso de los Tipos Definidos por el Usuario, si bien actúan de forma normal con las UDF al usarse a través de rutinas de VBA y/o dentro del entorno VBA, Excel no los puede interpretar por lo que no pueden usarse dentro de una fórmula. Saludos Abraham Valencia
  12. avalencia

    Eliminar Todos los Formularios.

    Hola Mira esto que está basado en una idea del gran "Chip" Pearson (qepd): Sub BorarUserforms() Dim VBComp As VBIDE.VBComponent Dim VBProj As VBIDE.VBProject Set VBProj = ActiveWorkbook.VBProject For Each VBComp In VBProj.VBComponents If VBComp.Type = vbext_ct_MSForm Then VBProj.VBComponents.Remove VBComp End If Next VBComp End Sub Saludos Abraham Valencia PD: Activar la referencia a "Microsoft Visual Basic For Applications Extensibility 5.3"
  13. Hola Prueba abriéndolos así: Workbooks.Open ThisWorkbook.Path & "\NombredelLibro.xlsx", UpDateLinks:=0 Solo adáptalo a tus instrucciones ya que no especificaste como lo tienes. Comentas Abraham Valencia
  14. avalencia

    Estara "Malito" Haplox!!!???

    ¿No hay cerveza por salir en el ranking? Con razón @Haplox anda perdido :p Abraham Valencia
  15. avalencia

    Buscar por fecha

    Pues si no te son útiles las herramientas propias de Excel y quieres algo más "estético/gráfico" pues si lo quieres casi de forma automática debes usar VBA, para lo que debes comenzar a programar lo que deseas. Tal cual lo planteas no veo otra solución. Abraham Valencia
×

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.