Jump to content

edu_hoyos

Members
  • Content Count

    14
  • Joined

  • Last visited


Reputation Activity

  1. Like
    edu_hoyos reacted to Jose BN in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    Gran Antoni! Como siempretu cátedra se ha hecho presente...
  2. Like
    edu_hoyos reacted to Luis paz in BUSCARV en excel rapido y lento en VBA   
    Esto es lo que buscas?
    Sub Buscar()
    Dim Resultado, ValBuscado As Variant
    Dim RangoBuscado As Range
        ValBuscado = Hoja2.Range("A1").value
        Set RangoBuscado = Hoja1.Range("A1:B500")
        Resultado = Application.VLookup(ValBuscado, RangoBuscado, 2, False)
        
        If IsError(Resultado) Then
            Exit Sub
        End If
        
    End Sub
     
  3. Thanks
    edu_hoyos reacted to avalencia in BUSCARV en excel rapido y lento en VBA   
    Hola a todos
    Algo de teoría:
    - Es más rápido usar fórmulas "nativas" ingresadas directamente en las celdas que usarlas insertándolas a través de VBA
    - Cuando se dice que es más rápido usar macros (VBA) en lugar de miles de fórmulas, quiere decir realizar los procesos a través de dichas macros, no que se inserten esas mismas fórmulas a través de ellas porque termina siendo más lento que el punto anterior (tal y como le sucede ahora a nuestro amigo)
    - Las fórmulas, sean insertadas con macros o directamente, siempre son más lentas cuando usan rango "indeterminados" tipo "C2:C".  Es un "clásico" error hacer/usar eso.
    - Es innecesario usar fórmulas en celdas en las cuales ya se tiene un resultado que no va a cambiar. En esos casos lo ideal es copiar y pegar como valores.
    - Si se desea mejorar la velocidad/rendimiento con macros, usar el método VlookUp de la propiedad WorksheetFunction, no es lo más rápido en realidad. En todo caso es mejor usar FInd.
    - Si consideran una alternativa el uso de bucles tipo For - Next, o For - Each, tampoco será tan rápido como usar ADO y SQL o Scripting.Dictionary, o mejor aún, Scripting.Dictionary con arrays. 
    Saludos
  4. Like
    edu_hoyos reacted to Gerson Pineda in BUSCARV en excel rapido y lento en VBA   
    Nadie te ha solicitado datos confidenciales, nada cuesta que los reemplaces por otros valores, pero si deseas ayuda adecuada, debes subir una muestra de tus datos con la estructura real, que manejas en el archivo original, es mas no necesitamos tu programa
    ¿Me explico?
     
    Saludos 
  5. Thanks
    edu_hoyos reacted to Luis paz in BUSCARV en excel rapido y lento en VBA   
    Hola @edu_hoyos
    Podrías intentar con For:
    Sub Buscar()
    Dim i, Final, Buscando As Variant
    Final = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
    Buscando = "Valor o palabra buscada"
        For i = 1 To Final
            If Cells(i, 1).Value = Buscando Then 'Usas la columna en la que necesitas buscar
                'AQUÍ COLOCAS LO QUE DESEAS QUE PASE
            End If
        Next i
        
    End Sub
     
    Si no te sirve buscamos otra solución
  6. Like
    edu_hoyos reacted to Leopoldo Blancas in BUSCARV en excel rapido y lento en VBA   
    Hola,
     
    Deberías de subir tu archivo, y de esa manera vemos que proceso tarda menos... Incluso menos de 10 segundos...
    Saludos.
  7. Like
    edu_hoyos reacted to Leopoldo Blancas in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    Siempre ha pasado eso, son muy "quisquillosos" los Frame, no hay nada como hacer un diseño a Lapiz y ya después lo Dibujas con VBA, para no estar moviendo Frames y controles... se vuelve incontrolables...
    Saludos.
  8. Thanks
    edu_hoyos reacted to Antoni in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    La idea de juntar todos los formularios en uno era buena, la forma de llevarla cabo, no, mis disculpas por ello.
    La utilización de frames por si sola es engorrosa, la solución correcta es sustituirlos o combinarlos con un control multipage.
    Prueba todo el circuito por si he cometido algún error a la hora de mostrar los distintos "formularios".
    Contar2 (2).xlsm
  9. Thanks
    edu_hoyos reacted to Antoni in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    Adjunto de nuevo el archivo con una ligera corrección.
    Contar2 (2).xlsm
  10. Like
    edu_hoyos got a reaction from Antoni in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    Mil Gracias Antoni. De momento ya es bastante mas funcional y rapido. Y llevo toda la mañana desde tu ejemplo revisando como funcionan los marcos y es un gusto. Ya he corregido otro archivo que tenia similar. En cuanto confirme que funciona lo doy por resuelto.
  11. Thanks
    edu_hoyos reacted to Antoni in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    Ya está revisado, salvo error u omisión, el formulario adjunto es la fusión de todos los demás. 🙂
    Contar2.xlsm
  12. Like
    edu_hoyos reacted to Leopoldo Blancas in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    Hola, creo que la falla es por el abuso de Unload Me y .Show como dice Antoni, entonces te recomiendo que en vez de cerrar y volver a abrir los formularios, solo escóndelos con MiFormulario.Hide y lo vuelves a mostrar con .Show.
    Ya cuando no los utilices entonces usa Unload Me.
    Saludos.
  13. Like
    edu_hoyos reacted to Antoni in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    Me da la impresión que se llena alguna pila de eventos de tanto Unload Me y .Show.
    Prueba añadiendo la sentencia DoEvents después de cada Unload Me, a ver si se soluciona.
    Lo suyo sería hacerlo todo en un único formulario a base de motrar/ocultar frames.
    Mañana si tengo un hueco te subo un ejemplo de lo que quiero decir, mientras, prueba lo que te he comentado.
  14. Thanks
    edu_hoyos reacted to Antoni in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    Mejor sube el archivo porqué no está nada claro lo que expones.
  15. Thanks
    edu_hoyos reacted to Leopoldo Blancas in se ha producido el error '-2147417848 (80010108) en tiempo de ejecucion : Error de Automatizacion   
    Hola,
    Hice un pequeño cambio en el código si te sigue dando error es por otra parte donde te están los tiros... Aparentemente no debe haber error. Aunque no hay nada como ver la Lógica con ambos formularios y los controles...
    Private Sub Enter_Click() Dim CodBarras As String Dim Novedad As String Dim Revision As Long Dim celda As Range     Application.ScreenUpdating = False     Application.DisplayAlerts = False              CodBarras = txt_codigo_barras          If CodBarras = "" Then         MsgBox "No puedes introducir nada.", , "Error"         Exit Sub     End If          Set celda = Sheets("Contar").Range("A:A").Cells.Find(What:=CodBarras, LookAt:=xlWhole)          If Not celda Is Nothing Then         celda.Select         Unload Me         Formulario_Stock.Show     Else         MsgBox "Codigo de Barras no encontrado"         Exit Sub     End If          Application.ScreenUpdating = True     Application.DisplayAlerts = True End Sub  
     
    Saludos.
×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png