Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 12/01/2019 in Posts

  1. 4 points
    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
  2. 2 points
    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
  3. 2 points
    Silvia

    Buscar y pasar datos entre hojas

    sin las auxiliares.. Gtos Km.Ok sq3.xls
  4. 2 points
    No revuelvas temas amigo... ya se te contesto. Saludos.
  5. 2 points
    Ahora alguien puede ayudarme con mi problema ?😥
  6. 2 points
    DiegoLG

    Buscar y pasar datos entre hojas

    Jaaaaa. Era mas fácil de entender si hubiera dicho @Luis paz, buscar con un criterio y mostrar múltiples resultados... Saludos amiga @Silvia
  7. 2 points
    ah bueno, si no hubiera vacaciones, el tuyo restaría 1...
  8. 2 points
    Hola a todos! En raros casos y con otra función de VBA, invocar una función nativa de Excel, puede resultar exitosa Tus puntos @avalencia siguen siendo muy atinados desde la prehistoria de Excel, como lo eres tu! Saludos
  9. 2 points
    Con la hoja sin proteger, selecciona tu barra de desplazamiento y dale clic derecho, elige "Formato de control..." y en la pestaña "Proteger" quita el check de "Bloqueado". Ahora sí protege tu hoja y podrás seguir usando tu objeto.
  10. 2 points
    Hola a todos Tengo la impresión de que lo que han hecho en esa web es justamente intentar evitar el envío masivo de datos (tal y como se intenta por ejemplo con el uso de captchas). Es decir, si tienes los archivo para ir ahí, y no usar justamente el captcha anterior, tampoco podrá hacerse algo automatizado. ¿Por qué? Las cajas de texto no reciben rutas como están intentando, sino que están relacionadas a código que si mal no me equivoco es JavaScript. Intente localizar la función correspondiente para "correrla" desde VBA, pero me encontré con código que por lo que veo está ofuscado: Enlace. Y aunque no soy un experto en web, me imagino que con algo de ingeniería inversa se podrá "desofuscar", pero al no conocer a profundidad cosas relacionadas a web, definitivamente tomará demasiado tiempo (al menos es mi caso). Ah, incluso si se intenta capturar la caja de dialogo para enviarle la ruta, pues intenté hacerlo usando funciones de la API de Windows, pero nada, no pude detectarlas. ¿Alternativas? Al parecer necesariamente hay que encontrar/"desofuscar" el código JavaScript para automatizar todo a través de VBA, pero repito, no soy experto en temas web, aunque creo no equivocarme. A ver si alguien que conozca más de webs nos lo (re)confirma.
  11. 2 points
    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
  12. 2 points
    Leopoldo Blancas

    separar texto en renglones

    Hola, Prueba con: Sub DividirTexto_LBV() Dim aA, n&, m& aA = Split(Range("C4"), Chr(10)) m = 15 For n = LBound(aA) To UBound(aA) Cells(m, "C") = Replace(Mid(aA(n), InStr(1, aA(n), "Descripción", vbTextCompare) + 14), Chr(13), "") m = m + 1 Next n End Sub NOTA: Si tienes dudas del Código Puedes preguntar... Saludos
  13. 2 points
    !Vamos hombre! no llores más, que sabes que en el fondo te quiero. 🥰🥰🥰
  14. 1 point
    Si lo que pretendes hacer es cambiar el CodeName de una hoja: ActiveWorkbook.VBProject.VBComponents(Sheets("Hoja1").CodeName).Name = "NuevaHoja1"
  15. 1 point
    @rariascl, Pulsa la flecha azul Copia de Archivo ejemplo.xlsm
  16. 1 point
    El acceso al modelo de objetos de proyectos de vba es un tema "sensible" de seguridad y no puede NI DEBE ser manipulado por un código auto-configurable (por obvias razones) Puedes modificar su configuración alterando el registro de Windows, concretamente un valor DWord de nombre "AccessVBOM" desde esta llave: HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Excel\Security (donde "x.0" corresponde a la versión de Office/Excel -que tendrás que averiguar-) Por lo anterior, solo tendrá efectos si la llave se modifica ANTES de ejecutar Excel, misma razón por la que "tu" aplicación NO PODRÁ auto-configurarse (se entiende ?) Alternativas ?... Avisar al usuario si las condiciones no son óptimas para tu aplicación Usar un script (*.vbs) que permita el acceso (modificando el registro) y... - Ejecute Excel y tu aplicación (o ...) - Configure una "tarea programada" para ejecutar Excel y tu aplicación NO olvides (al terminar) restablecer la configuración a la preferencia del usuario (?)
  17. 1 point
    Hola Ya viendo todo el código, hay algo que resalta y es el atributo "aria-pressed" del botón el cual está en False, por eso no ocurre nada cuando mandas el clic, dicha propiedad debe cambiarse previamente, es casi fijo que hay algún otro objeto en dicha web que lo hace y/o algún código, probablemente JavaScript, que realiza eso. Por eso tu programa WildFire puede lograrlo después del cambio que mencionas. ¿Podría hacerse a través de VBA? Probablemente sí, pero al no tener acceso a dicha web/aplicación solo tú puedes saberlo y/o buscar cómo, y no, no sería fácil explicarte qué buscar. Igual, y solo por si acaso, intenta modificar dicho atributo así: objIE.document.getElementById("__button0").SetAttribute "aria-pressed", "True" Pero no garantizo que funcione ya que... no tengo acceso para probar. Saludos.
  18. 1 point
    Podrías ayudarme con un caprichito? Podrías adjuntar el archivo de otra menera en la que no necesite acceder a mi Correo Gmail? 😅
  19. 1 point
    Haplox

    Sumar una columna Filtrada

    @segalo , no entiendo tu problema... . Para que quieres autofiltrar los valores iguales a 0 para hacer una suma? ¿En una suma el 0, siempre es 0 y no suma? Vamos, hasta donde recuerdo ahora mismo... ¿No te serviría simplemente lo siguiente? aparte de que no sé dónde te lleva todas esas selecciones y copias Sub sumas() Dim uF&, i% Application.ScreenUpdating = False uF = Range("E12:E" & Rows.Count).End(xlDown).Row For i = 5 To 26 Cells(9, i) = WorksheetFunction.Sum(Range(Cells(12, i), Cells(uF, i))) Next i End Sub
  20. 1 point
    JAJAJAJJAJAJAJJA un día me la pagarás Pineda 😛
  21. 1 point
    Kolokon

    Buscar y pasar datos entre hojas

    Al final lo conseguiste....me quedo con la ultima. Por ello te agradezco tu ayuda y paciencia que has tenido, personas como usted, son las que hacen grande estos foros. Gracias de nuevo y salu2
  22. 1 point
    Silvia

    Buscar y pasar datos entre hojas

    y otra por si son muchos datos.. Gtos Km.Ok sq2.xls
  23. 1 point
    Silvia

    Buscar y pasar datos entre hojas

    será? Gtos Km.Ok sq.xls
  24. 1 point
    Antoni

    Barra Scroll con pestaña bloqueada

    Tendrás que cambiar la barra de desplazamiento a ActiveX. Sube el archivo y te muestro como.
  25. 1 point
  26. 1 point
    -FILA(Tabla2[[#Encabezados],[FECHA]]) toda esa parte corresponde a la celda A4, puedes reemplazar por Fila(A4), o simplemente por 4, ya que los datos de la hoja1 empiezan en 5, se restan 4 filas para empezar de 1. saludos, Silvia
  27. 1 point
    Listo, La solución está aquí
  28. 1 point
    Revisa el adjunto.. Ejemplo2.xlsm
  29. 1 point
    @avalencia @Leopoldo Blancas @Snake
  30. 1 point
    Luis paz

    ANSWERED Ayuda con Función SI.CONJUNTO

    =SUMAPRODUCTO(--(FRECUENCIA(COINCIDIR(Tabla2[CLIENTE],Tabla2[CLIENTE],0),FILA(Tabla2[CLIENTE])-FILA(Tabla2[@CLIENTE])+1)>0))-1
  31. 1 point
    No, sin tomar en cuenta la fecha.
  32. 1 point
    Puede subir uno con datos aleatorios, y mostrar que es lo que deseas conseguir... Porque yo entendí que necesitabas buscar un producto... Pero luego entendí que necesitas remplazar la formula buscarv porque se te alentó
  33. 1 point
    Con independencia de que la macro se puede enfocar de otra forma, simplemente: For Each celda In Range("E10:Y10") celda.select 'Fila 10 ... celda.Offset(1).Select 'Fila 11 ... celda.Offset(-1).select 'Fila 9 ... Next
  34. 1 point
    Hola segalo, Te voy a creer, por que no lo he realizado como lo tienes... pero... Te hice este FORCITO... y esta seria una manera, otra seria con For Each...o... Sub SigCol_LBV() Dim aCol, n&, LE$ aCol = Array("E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y") For n = LBound(aCol) To UBound(aCol) LE = aCol(n) MsgBox LE Next n End Sub Saludos
  35. 1 point
    Hola, Deberías de subir tu archivo, y de esa manera vemos que proceso tarda menos... Incluso menos de 10 segundos... Saludos.
  36. 1 point
    fsabater

    HORAS EXTRAS

    @Silvia estupendo! esto era lo que necesitaba muchas gracias!!! Me has salvado el pellejo jajajajjaa
  37. 1 point
    Silvia

    HORAS EXTRAS

    hola fsabater (y Luis paz) a ver si es lo que entendí? revisa el adjunto.. Saludos, Silvia Horas extras sq.xlsx
  38. 1 point
    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
  39. 1 point
    Luis paz

    HORAS EXTRAS

    Podrías mostrar un ejemplo de como esperas que queden los datos? No entiendo bien lo que deseas obtener Sorry
  40. 1 point
    Leopoldo Blancas

    separar texto en renglones

    Solo te falto: Texto = Replace(Texto, Chr(13), "") Saludos.
  41. 1 point
    Antoni

    separar texto en renglones

    Lo mismo que Leopoldo, pero con algo de cosecha propia. Sub DividirTexto_Antoni() Dim PRO As Variant, Texto As Variant Dim Columna As Integer, VAL As Variant Dim Fila As Integer, x As Integer '-- Texto = [C4] Texto = Replace(Texto, "Cantidad", "") Texto = Replace(Texto, "valorUnitario", "") Texto = Replace(Texto, "Importe", "") Texto = Replace(Texto, "Descripción", "") Texto = Replace(Texto, " ", "") Texto = Replace(Texto, "| ", "|") Texto = Replace(Texto, " |", "|") '-- Fila = 5 PRO = Split(Texto, Chr(10)) For x = 0 To UBound(PRO) - 1 VAL = Split(PRO(x), "|") Fila = Fila + 1 For Columna = 1 To 4 Cells(Fila, Columna + 3) = VAL(Columna) Next Next End Sub
  42. 1 point
    Ajá, dale, tienes razón. Coloca esto en el módulo del libro (borra lo que tienes ahora): Private Sub Workbook_BeforeClose(Cancel As Boolean) ActiveWorkbook.UpdateLinks = xlUpdateLinksNever End Sub Private Sub Workbook_Open() Workbooks.Open Filename:=ThisWorkbook.Path & "\2.xlsx", Password:="123" Workbooks("2.xlsx").Close False End Sub Ahora guárdalo y ciérralo, abre el archivo llamado "2", cambia cualquier valor de los que "alimentan" los vínculos, cierra dicho libro y vuelve a abrir el archivo de las macros y vínculos. Ahora ya no debería preguntarte nada. Saludos y discúlpanos el lapsus.
  43. 1 point
    Ya no me regañes y menos en Público...😂😂😂 Pues si lo leí en su momento... pero como ya pasaron días ya no me acorde...contesto a lo último que veo... por eso opine así... Saludos...
  44. 1 point
    ¿Antes de contestar te molestas en leer las respuestas anteriores? porqué a esa conclusión ya se llegó el 24 de noviembre y ya se han dado varias soluciones en ese sentido.
  45. 1 point
    Haplox

    Ayuda macro

    Cells(1,1):FormulaLocal= "=INDICE('TIPO VIA'!A1:C70;COINCIDIR(B2;'TIPO VIA'!C1:C70;0);1)"
  46. 1 point
    @ziipoo III , no sé si al final te entendí bien... así que te dejo un primer fichero a ver si acerté ENVIAR FORO AYUDA EXCEL 9.zip
  47. 1 point
    @joselica , te dejo una solución. Verás que la macro solo trae los campos contactos y e-mail, el resto te toca a ti . Pon el número en K9 y pulsa el botón "BUSCAR". Copia de MACRO BUSCAR GRUPO - CleanOK.xlsm
  48. 1 point
    Leopoldo Blancas

    Macro con ciclo repetitivo

    Hola... Sub Filtro() Dim n&, cCriterio$ For n = 5 To 19 If n = 5 Then cCriterio = "<>0" Else cCriterio = "0" ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=n, Criteria1:=cCriterio Next n 'suma Range("E10").Select Range(Selection, Selection.End(xlDown)).Select Range("E11").Select Selection.End(xlDown).Select Range("E498").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-482]C:R[-2]C)" Range("E498").Select Selection.Copy Selection.End(xlUp).Select Range("E9").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 'filtro Rows("11:11").Select ActiveSheet.ShowAllData Range("A10").Select ' 2do ciclo For n = 6 To 19 If n = 6 Then cCriterio = "<>0" Else cCriterio = "0" ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=n, Criteria1:=cCriterio Next n End Sub Saludos.
  49. 1 point
    Antoni

    Formulario

    ¡Dios mío, que carácter! Con poner Me.Zoom = 85 en el evento Initialize del formulario se acaba el problema, ¡Ale!, ya no tienes excusa.😂😂😂
  50. 1 point
    Héctor Miguel

    ANSWERED Indice de hojas

    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


  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
×
×
  • Create New...

Important Information

Privacy Policy