Jump to content

All Activity

This stream auto-updates     

  1. Today
  2. Yesterday
  3. Antoni, subo el archivo, la idea es poder contar las celdas por filas, por columnas y por total. Gracias y saludos. PRUEBA - Rutinas mantenimiento y abonos 2019.xlsm
  4. Hola @Abraham Valencia, El archivo lo subí con 100 registros, pensando pues en el límite del foro, sin embargo, he hecho pruebas hoy día y ha tardado 68 segundos en correr la macro sobre los 300k registros, soy nuevo en esto, pero habrá alguna manera de evitar tener que hacer esto, dado que podría tener 20 columnas en el diccionario y no sé si podría ponerlo en un itinerador en vez de poner 20 líneas para cada valor?
  5. @ikanni acabé de encontrar el error, pues estaba referenciando mal en el código del libro adjunto, increíblemente ha funcionado el diccionario, lo he utilizado como un buscarv, que demora 63,28 segundos en hacer lo que hacía con application.vlookup en 2 horas !!!! así me ha quedado el código: (el código lo encontré en un foro en inglés y me ha funcionado. Option Explicit Sub VBALookUpMejorado() Dim oDict As Object Dim lookupRange As Range Dim rangedestino As Range Dim iterator As Range Dim cel As Range Dim secs1 As Single Dim secs2 As Single 'Dimension of the array should be the number of values you 'want to store to correspond to the key. 'In my example, 0 to 1 means there are two values, 'a 0th value and a 1st value Dim arrayOfValues(0 To 2) As Variant secs1 = Timer() 'The range that we normally vlookup against (only 'using the first column in my range) ''Establezco el rango en donde quiero buscar que quiero buscar para obtener datos de esa hoja Set lookupRange = Sheets("Hoja2").Range("A1:A241666") 'DATA TO BE COMPARED ''Configuro el diccionario Set oDict = CreateObject("Scripting.Dictionary") 'Set optimization settings Application.ScreenUpdating = False ' DATA STORING EXTRACTED IN HOJA2 For Each iterator In lookupRange 'Check if the ID already exists If Not oDict.exists(iterator.Value) Then 'create the array '0th element is the first column to right of iterator arrayOfValues(0) = iterator.Offset(, 1).Value '1st element is the second column to right of iterator arrayOfValues(1) = iterator.Offset(, 2).Value '2st element is the second column to right of iterator arrayOfValues(2) = iterator.Offset(, 3).Value 'Add key and array to the dictionary oDict.Add iterator.Value, arrayOfValues End If Next iterator Set rangedestino = Sheets("Hoja1").Range("A1:A300000") 'DATA TARGET For Each cel In rangedestino If oDict.exists(cel.Value) Then cel.Offset(, 6).Value = oDict(cel.Value)(1) 'Value extracted from dictionary in column "V" doesnot work =( End If Next cel secs2 = Timer() MsgBox ("Time taken to run code:" & vbNewLine & secs2 - secs1 & " seconds") Application.ScreenUpdating = True End Sub Ahora sobre el (archivo que de antemano muchas gracias por la ayuda) soy un tanto nuevo en esto, tal vez sepas por qué se demora más que este código, si entiendo son lo mismo?
  6. Buenas tardes @isidrod los aportes me ayudaron mucho, por lo que daria TEMA SOLUCIONADO
  7. Creo que nuestro amigo debería compartir unos cuantos miles de sus datos para poder probar en ellos directamente. Abraham Valencia
  8. Pues de nada amigo, y no te olvides el uso de &, en realidad casi siempre (en VBA al menos) es para concatenar. Hasta la próxima Abraham Valencia
  9. Funciono gracias Mi amigo,no habia probado sin el signo de concatenar pensé que toda variable debía ir con el signo de ampersend,tema cerrado y de nuevo gracias por tu disponibilidad a la espera de un nuevo post en tu blog saludos cordiales
  10. Ah! , tambien colocaria application.ScreenUpdating =False, con tantas filas ayudaria a excel.
  11. Hola Luis, Pues la verdad no sé que puede ser. 300k filas, la verdad se me escapa, nunca he tratado con tantos registros con excel. Pero en teoría no debería ser ningún problema. ¡Has probado con 100 filas? ?Pasa lo mismo?. Acabo de probar con la excel que colgaste y funciona. Y no le debería costar mucho hacer las 300k filas.
  12. Estimado, como te repito, una palabra entre comillas, jamás será interpretada como variable. Dim var As String var = UserForm1.ComboBox1.Value Application.Speech.Speak var Abraham Valencia
  13. Pero abraham si no le coloco las comillas y le coloco esto: Application.Speech.Speak & var no me deja,como lo resuelvo
  14. Si pones una palabra entre comillas es una cadena, no una variable. Por cierto, el error parece provenir de otro lado, ojo con eso. Abraham Valencia
  15. Pues a mi me da error Abraham observa,como se soluciona,saludos cordiales
  16. Last week
  17. Muchas gracias Héctor miguel quedo excelente!!! caso solucionado
  18. Estimados, alguien me podría dar una mano con este tema? necesito poder contar celdas de colores, los cuales cambian en función del formato condicional, estuve buscando por la web pero ninguna de ls publicaciones me fue de utilidad. Gracias. Saludos.
  19. Hola Buenas Tardes,

    Si alguien me puede ayudar para extraer la informacion de los archivos xml al formato excel

    Gracias por su ayuda le estare agradecido

    Saludos,

    Roger

     

     

     

     

    Lectura del XML.zip

  20. este es un "añejo" desarrollo (pero sigue funcionando)... Sub navegaHojas() With Application.CommandBars.FindControl(ID:=957) If Right(.Caption, 3) = "..." Then .Execute Else .Parent.ShowPopup End With End Sub
  21. Saludos a toda la comunidad, requiriendo una vez mas su ayuda. Les explico Siempre trabajo con muchas hojas por lo que moverme lo mas rápido entre las mismas es indispensable tengo una macro que me genera un índice en donde enlista todas las hojas, pero esta me la pone en una hoja de Excel por lo que cada que quiero ir a otra hoja me traslado a esta hoja con índices y de ahí veo a cual hoja quiero ir y ya me manda a la hoja seleccionada a travez de un hipervínculo. Esto es demasiado tardado para mi por lo que me puse a crear un userform con un listbox. La idea es tener un listbox que al llamarlo, automáticamente me muestre una lista con el nombre de todas las pestañas del libro en el que estoy trabajando. Esto ya lo logre. Ahora lo que me hace falta es, una vez llamado este listbox con todos los nombres de las hojas del libro que estoy trabajando. Es que es darle un click al nombre de la hoja a la que quiero ir desde el listbox y que me mande automáticamente a dicha hoja. Espero haber podido explicarme bien, de cualquier forma subo el archivo para mejor comprensión. De antemano muchas gracias. indice de hojas en listbox.xlsm
  22. Hola, Muchas gracias por tu respuesta, he probado ejecutando la macro en el libro que tiene 300k registros y Excel se ha quedado congelado =( y va 30 minutos. Alguna sugerencia?
  23. Hola ¿Y por qué no lo probaste? Abraham Valencia PD: Sí acepta variables
  24. Buenos dias, amigos espero me puedan ayudar con este problema que encontre. Tengo abierto un formulario1 donde hay un listview, llamo al formulario2 donde ingreso los datos para el listview del formulario1, el problema es que al cerrar el formulario2, quisiera que el foco pase al listview, pero no lo consigo: Private Sub btnAceptar_Click() Call Agregar_Asientos_Voucher Unload Me UFVouchers.ListView1.SetFocus ''AQUI Mando el foco pero no lo reconoce End Sub Sub Agregar_Asientos_Voucher() Dim i As Integer With UFVouchers.ListView1 i = .ListItems.Count + 1 Rem MsgBox .ListItems.Count .ListItems.Add(i).Text = UFSubVouchers.txtCtaCble .ListItems.Item(i).ListSubItems.Add.Text = UFSubVouchers.txtDenominacion If UFSubVouchers.txtDebe <> "" Then .ListItems.Item(i).ListSubItems.Add.Text = UFSubVouchers.txtDebe Else .ListItems.Item(i).ListSubItems.Add.Text = " " End If If UFSubVouchers.txtHaber <> "" Then .ListItems.Item(i).ListSubItems.Add.Text = UFSubVouchers.txtHaber Else .ListItems.Item(i).ListSubItems.Add.Text = " " End If End With End Sub
  25. manejo actualmente un formulario que pretende hacer que se reproduzca la vos de excel con el metodo Speech pero la reproduccion de la voz debe mencionar el valor de un combobox y eso me da error,es posible hacerlo? aqui el codigo para su evaluacion Sub voz() Dim var As String var = Userform1.ComboBox1.Value Application.Speech.Speak "var" End Sub
  26. Hola a todos! Tengo dos archivos, AA y BB. Ambos archivos tiene varias hojas y ambos archivos los guardo como HTM. Necesito poner un hipervinculo en AA que me lleve a una hoja específica del HTM de BB. ¿Se puede hacer? Desde ya, muchas gracias por la lectura!
  1. Load more activity
×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 6254 personas - Aprender Excel - Total: 4.7 / 5