Saltar al contenido

Máximos colaboradores


Popular Content

Showing content with the highest reputation since 22/12/17 in all areas

  1. 5 points
    Síiii, Feliz Navidad a todos los miembros de este foro y a sus familias. en este tema ha sido muy oportuno Macroooos de paz y Maaacros de amor para todos y gracias por toooodo
  2. 4 points
    ¡Hola, @GabrielRaigosa! Quizá podría servirte la propuesta del adjunto. ¡Bendiciones! Dias y meses de la actividad en cada año.xlsx
  3. 4 points
    Tranquilo, el tampoco.
  4. 4 points
    Lo reconozco, voy por el 2º whisky y me superas. Ahora que no nos oye nadie, ¿No existes, verdad? ¿Eres una creación virtual de Ayuda Excel para mantenernos ocupados? ¿A que si,.....?
  5. 4 points
    Visor espero no salgas con esas dudas "dudosas" para estos días y que te conformes con el abrazo de noche buena! Feliz navidad y PAZ en cada uno de sus hogares
  6. 4 points
    Salud, paz, amor y "plata" para todos, por cierto, otro recital del "Rey León Messi" en el Bernabeu, 0-3 para el Barça,......que semana mas completa que llevo. ¡ FELIZ NAVIDAD PARA TODOS !,......SI, TODOS, PARA TI TAMBIÉN,......
  7. 3 points
    Hola Visor en respuesta a tu pregunta copio y pego del blog " El Sabio de Excel" aunque en este caso solamente es capricho mío. Un saludo. Ventajas de utilizar el formato .xlsb Libro Binario de Excel Muchos usuarios no son conscientes de los muchos beneficios y ventajas de formato .xlsb libro binario de Excel Los libros binarios de Excel (.xlsb) almacenan información en formato binario en lugar del formato XML al igual que con la mayoría de los archivos de Excel. Puesto que los archivos xlsb son binarios, se pueden leer y escribir mucho más rápido lo que les hace extremadamente útil para hojas de cálculo muy grandes. Esto también implica que con los cálculos en archivos .xlsb serán más rápidos y los libros serán mucho más pequeño. Los archivos .xlsx tardan en cargar 4 veces más que las .xlsb y en guardar 2 veces más lento y además tienen 1.5 veces un archivo más grande. Algunos foros ha hecho el experimiento con una hoja de cálculo generada con 10000 filas x 10000 columnas = 10.000.000 (10 ^ 7) de celdas simples encadenados ... = 1 + fórmulas: .xlsx .xlsb Tiempo al abrir 165 seg 43 seg Tiempo para guardar 115 seg 61 seg Tamaño de archivo 91 MB 65 MB Además, desde el punto de vista de seguridad, al estar los datos en formato binario y no en XML, los archivos .xlsb mostrarán contenidos ilegibles si un usuario intenta cambiar la extensión del archivo a .zip. Otras ventajas del formato de archivo .xlsb incluyen: Inconvenientes y desventajas de archivos .xlsb: • Ninguna modificación de la cinta permitido para formatos XLSB. Debe convertir de nuevo a XLSM, realice los cambios de la cinta, y luego de vuelta a XLSB • Una posible falta de interoperabilidad con OpenOffice • No es compatible con Excel 2003 y versiones anteriores La compatibilidad en el uso de los datos con un software que requiere XML en lugar de binario (servidor web, por ejemplo). Si se enlaza una gran cantidad de sistemas que lo componen, esto puede causar un problema con una de las capas, como XML fue desarrollado específicamente para este propósito. • Ahorro en binario permite fórmulas que se guarden adecuadamente si son más largos que el límite de 8192 caracteres Código de macros, VBA es totalmente compatible
  8. 3 points
    Haplox

    AYUDA EN LENTITUD DE MACRO

    Coño (perdon... ) @paolychile , al menos dinos qué botón o qué macro de los 90 módulos que tienes es la que te da problemas
  9. 3 points
    sería una victoria pirrica mejorar la propuesta de John, dividir las fechas para reducir el calculo (como el original de Gabriel) seria optimizar el resultado de 0.4 ms a 0.35 ms solo sugeriría cambiar el estilo de hacer referencia a fechas (textos entre comillas) ya que "ene" y "dic" seguramente no serían interpretados en un excel instalado en idioma distinto de español (ingles "jan" y "dec" p.ej.) para una interpretación "universal" cambiaría "1ene"&<celda:año> a: <celda_año>&"/01/01" (aaaa/mm/dd) e igual para cualquier otro mes saludos, hector.
  10. 3 points
    Hola existe una función llamada "RegExp" la cual encuentra los caracteres no validos dentro de una cadena de texto, luego por medio de la función "Replace" los podemos eliminar. Dejo un ejemplo. Sub Reemplazar_caracteres() Dim Permitido As String Dim r As Object Permitido = "[^a-z0-9-]" Texto = "Prueba()/&%& #99 8" Set reg = CreateObject("VBScript.RegExp") With reg .Global = True .IgnoreCase = True .Pattern = Permitido If .Test(Texto) Then MsgBox .Replace(Texto, "") 'Resultado = Prueba998 End With End Sub Saludos a ambos.
  11. 3 points
    DiegoLG

    Agrupar por proveedor, modelo y color.

    Buen día a todos. Que tal amigo @Gerson Pineda precisamente en mi tema anterior (Que se borro), adjunte el avance, a continuación adjunto nuevamente el borrador. Digo para que no piensen que no pongo mi granito de arena, no me considero un experto en este tema es por ello que me acudo a ustedes de vez en cuando. Como comenta el señor y maestro @Antoni a quien merece todo mi respeto, de lo que sé yo trato de ayudar a los demas, porque gracias a expertos como ustedes he aprendido ciertas cosas. Estimado amigos @ikanni y @tierra_pampa es justo lo que necesito, por lo que agradesco por el tiempo que le invirtieron a mi tema. Muchas gracias. Saludos y excelente día. Copia de Agrupar datos por hoja.xlsm
  12. 3 points
    Humm Nos podemos sumar a los teóricos de la conspiración...
  13. 3 points
    ¡Increíble!... El Gran Antoni (de la Gente) ya cumplió dos veces "los 40": ¡Y no anda divulgándolo por ahí! Y como decía "El Martín Fierro" (en versión libre, claro): Los "mayorcitos" sean unidos porque ésa es la ley primera. Tengan unión verdadera en cualquier tiempo que sea: Porque si entre ellos se pelean... ¡ya no viajarán a otra era!
  14. 3 points
    Silvia

    Sumas Condicionadas

    gracias Lázaro .. es cierto, la salud es muy importante... Mis deseos recíprocos para ti, multiplicados y elevados a la potencia N..
  15. 3 points
    Muchas gracias Antoni! Felices fiestas también para ti y los tuyos. También para todos los que conformamos este foro!
  16. 3 points
    Querido @digitalboy creo que debemos hacer nuestro gruoo anti Java jajjajaja, eso sí, no digas la palabra plaga porque ahorita aparecen @Cacho R y @Antoni pero no les digas que he dicho eso de ellos @Gerson Pineda ando preocupado, a d portas de fiestas parece que sí hemos hecho como mínimo desmayarse a nuestro amigo Otto... ojala que no se pierda el pavo Abraham Valencia
  17. 3 points
    Porque como lo tienes en formato general y las horas en realidad son números (solo que debido al formato, lo ves cono horas); entonces, cuando haces la resta y lo multiplicas por 24 el resultado es este>> 21.5000000000582 Pero debido al formato que se le dé, podrás llegar a verlo como horas y minutos, siendo en realidad un numero y en este caso, con decimales. Prueba colocando en una columna diversas horas ejm 08:00 y en la celda de al lado, por ejemplo =n(a1). saludos, Silvia
  18. 3 points

    Version 1.0.0

    41 downloads

    No tiene mas misterio de lo que explica el título. Abrir el archivo, pulsar sobre la flecha azul y ver lo que ocurre en la barra de estado. La idea no se me ha ocurrido a mi, pero me hubiera gustado.
  19. 3 points

    Version 1.0.0

    13 downloads

    Fixture Mundial Rusia 2018
  20. 2 points
    avalencia

    INSERTAR FECHA Y HORA

    Hola: Usa el evento "Change" de la hoja. Una forma sería la siguiente: Private Sub Worksheet_Change(ByVal Target As Range) Dim nfila As Long If Not Application.Intersect(Target, Range("I:I, J:J, K:K, L:L, M:M, N:N, O:O")) Is Nothing Then Let nfila = Target.Row Range("P" & nfila).Value = Now End If End Sub Saludos Abraham Valencia
  21. 2 points
    Hola a todos @meduvilla abajo otro método (asígnalo al botón) For Each vh In Array("Hoja1", "Hoja2", "Hoja3") With Sheets(vh) uLinea = .Range("B" & .Rows.Count).End(xlUp).Row + 1 .Range("K" & uLinea).Value = Me.TextBox1.Text '..... Y ASI CONSECUTIVAMENTE CON EL RESTO End With Next Saludos!
  22. 2 points
    Antoni

    Problema con macro copiar con filtro

    Yo creo que el problema no está en seleccionar la hoja o no. Copia de COPIAR CON FILTRO.xlsm
  23. 2 points
    Haplox

    Problema con macro copiar con filtro

    Ya solo por amor propio, y gracias a @Antoni que me hizo pensar en el fallo Copia de COPIAR CON FILTRO.xlsm
  24. 2 points
    . Tu problema está tiene 2 causas: La hoja Tramos no existe El rango de partida es incorrecto, debe ser B3, C3 y D3 en lugar de B4, C4 y D4. Y puedes evitarte especificar ThisWorkbook en cada instrucción, no es necesario. Según el ejemplo de tu archivo, lo correcto sería: Sheets("Tramo").Range("B3").End(xlDown).Offset(1, 0) = Sheets("Gotero").Range("A5") Sheets("Tramo").Range("C3").End(xlDown).Offset(1, 0) = Sheets("Gotero").Range("C24") Sheets("Tramo").Range("D3").End(xlDown).Offset(1, 0) = Sheets("Gotero").Range("I14")
  25. 2 points
    Hagamos uno igual, o similar, y cobremos en cerveza Abraham Valencia
  26. 2 points
    tierra_pampa

    Agrupar por proveedor, modelo y color.

    Hola @DiegoLG y a todos! Me permito modificar el archivo de @ikanni, tan solo para evitar un error; si ejecutas la macro más de una vez; sin borrar las hojas existentes. Que tengas una buena jornada! ae20180114_Copia de Desglosar por proveedor.xlsm
  27. 2 points
    ikanni

    Agrupar por proveedor, modelo y color.

    Hola a todos, Pues la verdad sí que te lo podías haber currado un poquito más. Y la verdad que está facilito. Con filtros avanzados me genero los registros por proveedor y con el objeto dictionary los coloco como lo pedias. Vamos bien sencillo para alguien que trabaje habitualmente con todo esto, como tu. Saludos Copia de Desglosar por proveedor.xlsm
  28. 2 points
    He sido yo... Jugueteando con mis teorías de la relatividad. Creo que se me fue la mano
  29. 2 points
    Mejor, cumplo 40 el 17 de enero así que esto de haber retrocedido unos días me mantiene "en mis 30" Abraham Valencia
  30. 2 points
    Lázaro

    Felicidades

    Saludos a [email protected] Os deseo Muchísimas Felicidades a [email protected] en estas Fiestas Navideñas y una vez más Muchísimas Gracias por su Entrega y Altruismo en este Foro. Un Fortísimo Abrazo Lázaro
  31. 2 points
    Cacho R

    Error con una búsqueda usando VLookup

    ¡Ni te empieces a hacer problema, amigo!... Cuando @JAP advierta que su código "no atrapa" a todos sus registros volverá a preguntar... ¡Y recomenzaremos la prédica por el estudio y el esfuerzo propios (propio de él, claro)! (Jajjjajajaj)
  32. 2 points
    Cacho R

    Error con una búsqueda usando VLookup

    Mi estimado Haplox : con Abraham ( @avalencia ) estábamos intentando enseñar al consultante (y a tí, ya que estamos) el uso de los bloques With-End With. Tu solución (como la llamas, jejeje) no es buena por cuatro razones: - Primero porque no promueves en el consultante las ganas de estudiar sino, y solo, las de que le hagamos las cosas sin demasiado esfuerzo de su parte. - Segundo porque en lugar de añadir Sheets("CATALOGO").Activate bastaba .Activate dentro del bloque With - End With (esto "se te escapó" claramente). - Tercero porque -en realidad- tampoco es necesario agregar .Activate (como te mencionó Abraham). - Y cuarto por "aquello" del "Range dentro del Transpose"... En efecto, no le has dado oportunidad al consultante a que entienda la diferencia que hay entre el modelo mostrado (que contiene una ÚNICA hoja) y su propio modelo que tiene varias hojas. Hay una quinta razón (que tiene que ver con el aprendizaje) pero -con ella- no tienes nada que ver, y está asociada a que el consultante hizo un mero "copiar y pegar" y no adaptó nada (como ya lo vimos) pero hay más cosas que no adaptó por las que seguirá teniendo problemas... En resumen: ¡Te apuraste innecesariamente! y desperdiciamos una oportunidad de conducir una enseñanza (al menos es lo que pretendemos quienes llevamos muchos años enseñando). ¿Comprendes -ahora- el sentido del comentario de Abraham?... Saludos, Cacho R.
  33. 2 points
    avalencia

    Error con una búsqueda usando VLookup

    Hola: En realidad no es necesario activar/ seleccionar la hoja, queridos amigos, por eso @Cacho R en su último mensaje mencionó lo del "With" y yo, para que continuen "investigando" daría una pista más que es la "continuación" de lo que Cacho ya dijo: el Range dentro del Transpose. Saludos Abraham Valencia
  34. 2 points
    1. seleccione toda la region 2. presiona F5 - especial - seleccionar celdas en blanco 3. ficha inicio - grupo celdas opcion eliminar 4. comando eliminar celdas 5. selecconar desplazar celdas a la izquierda ACEPTAR
  35. 2 points
    Antoni

    VBA - Cargar ListBox con nombre de hojas.

    Que ha naciiiiiiido Jesúuuuuuus, que haaaaaa naaaaaciiiiiiido Jeeeesúuuus.
  36. 2 points
    Cacho R

    Bloquear acceso a desprotejer hoja

    ¡Eh! Un respeto: ¡Mézclame con gente!, por favor...
  37. 2 points
    Antoni

    Bloquear acceso a desprotejer hoja

    ¡Eh! Un respeto, no me mezcles con gente de dudosa reputación,.....JAJAJAJAJA
  38. 2 points
    Cristian 1985

    Sumar Si Varias Condiciones

    Hola @goldemediacancancha! Debes usar la función SUMAR.SI.CONJUNTO (o su equivalente en inglés) ya que se evalúan múltiples condiciones. Adjunto el archivo. Saludos! Ejemplo.xlsx
  39. 2 points
    Descomprime el adjunto y abre el archivo Insertar imagen.xlsm. Para facilitar el trabajo del que te puede ayudar, en futuras consultas no olvides subir un archivo Excel con un ejemplo de lo que quieres. Firmar.rar
  40. 2 points
    Héctor Miguel

    Seleccionar hoja para guardar PDF

    el siguiente es un procedimiento (ya viejito) al que solo le agregue la exportación a pdf, el truco es seleccionar desde el inputbox los números de las hojas correspondientes (para seleccionarlas agrupadas) utilizando una coma como separador (OJO: aun si se trata de hojas contiguas) nota: si el libro contiene mas de 20 hojas... (necesitaras de una pantalla alta o "trocear" el inputbox a mas columnas o cambiar a un formulario de usuario ?) las adecuaciones que se te puedan ocurrir para mejorar el procedimiento... (ya van por tu cuenta ?) Sub seleccionaHojas(): Dim lista As String: On Error Resume Next ' procedimiento para seleccionar/eliminar 'determinadas' hojas ... ' _ R&D: Héctor Miguel Orozco Díaz (febrero 16, 2009) ' Names.Add "hojas", "=substitute(get.workbook(1),""[""&get.document(88)&""]"","""")" lista = InputBox("Indica el # de hoja separando por comas" & vbCr & vbCr & _ Join(Evaluate("transpose(row(1:" & [counta(hojas)] & "))&char(9)&transpose(transpose(hojas))"), vbCr), _ "Paso unico para administrar las hojas seleccionadas"): Names("hojas").Delete Sheets(Evaluate("{" & lista & "}")).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy-mm-dd"), _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=True End Sub saludos, hector.
  41. 2 points
    Manuales para manejar archivos PDF (API): http://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/iac_api_reference.pdf http://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/iac_developer_guide.pdf Incluyen código de ejemplos en VB, adaptables a VBA. Ejemplos: http://www.vbaexpress.com/kb/getarticle.php?kb_id=977 http://www.khk.net/wordpress/2009/03/04/adobe-acrobat-and-vba-an-introduction/ Esos son los que tenía en mi archivo y por suerte como conservé los nombres originales, me ha tomado dos minutos "guglear" Abraham Valencia
  42. 2 points
    @Zak, te diria que sigue siendo poco útil? Por que? hay dos tipos de documentos PDF? aquellos que son una simple imagen de los cuales no puedes seleccionar el texto y mucho menos copiarlo y aquellos en los que si puedes seleccionar texto. Es por ello que es muy útil poder brindar un pdf por lo menos con datos dummy, pero este tipo de extracción es muy complicada. Alternativas? 1.En caso de estar como imagen. Documentos de Google incorpora reconocimiento óptico de caracteres, el problema, sera que cuando te de el texto tendras que guardarlo en tu computadora de alguna manera para después parsearlo con VBA/Excel. Aqui el problema es cuantos son los PDF's? 2.La otra es que utilices algún lector pdf y envíes teclas (utilizando sendkeys) para guardar el pdf como texto y después minarlo. 3.Busca en los aportes de este foro, quizás encuentres algo. Saludos!
  43. 2 points
    johnmpl

    Función SI con varias condiciones

    ¡Hola, a ambos! Revisa el archivo adjunto, con otra opción. ¡Bendiciones! ejemplo (4).xlsx
  44. 2 points
    Gerson Pineda

    Sumas Condicionadas

    Ahora @Silvia se ha reído Solo tenias que decir que la suma debe ser tomando en cuenta los valores de la fila 1 (según las S's), pero condicionado al valor H109 (-1) y a partir de ahí, trazar hacia la derecha el rango para sumar (lo dije bien?) Y si entendí, prueba así (evitando a toda costa DESREF) =SUMA(INDICE(J83:AM83,,COINCIDIR(($H$109-1)&"",I$1:AM$1,)+1):INDICE(J83:AL83,,COINCIDIR("*s",I$1:AM$1,)-6)) Y money también jaja Saludos
  45. 2 points
    ¡Hola, @FrutaDeToro! (y SIL!!!) De acuerdo con las normas del foro, es mejor que siempre adjuntes una pequeña muestra de tu archivo Excel, para que sea más fácil reproducir lo que tienes para las personas que quieran ayudarte, y además de eso, pueda ser una ayuda más inmediata a las personas que tienen una situación similar. En este caso, decidí hacer "el adjunto" por ti - aunque la idea es que lo hagas tu -, y puedas ver las soluciones propuestas. En el primer caso, al ser únicos usé una fórmula matricial, la cual debe ser introducida con la combinación de teclas Ctrl + Shift + Enter, y no solo con Enter (los corchetes antes y después de la fórmula no deben ser introducidos manualmente, solo con la combinación de teclas antes expuesta). En el segundo caso, con una fórmula con comodín * es suficiente. ¡Bendiciones! ejemplo.xlsx
  46. 2 points
    Haplox

    Mensaje al Eliminar Lineas

    Aparte del aporte de @Antoni , te dejo el código para intentar evitar el problema con la 1ª hoja Dim aBorrar As Range Dim nColumnas, suma, uF As Long Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Intersect(Target, Sh.Range("B6:F" & uF)) Is Nothing Then Exit Sub MsgBox "Registros eliminados: " & nColumnas & " ,que suman un total de: " & FormatNumber(suma, 2), vbInformation End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) uF = Sh.Range("B" & Rows.Count).End(xlUp).Row If Intersect(Target, Sh.Range("B6:F" & uF)) Is Nothing Then Exit Sub Set aBorrar = Selection.Columns(5) suma = WorksheetFunction.Sum(aBorrar) nColumnas = aBorrar.Rows.Count End Sub
  47. 2 points
    Parece que el título de este tema, a despertado la pasión del "the best and fastest" El sr Otto estará un poco asustado Saludos!
  48. 2 points
    avalencia

    Felices Fiestas

    Felices fiestas a todos/as. Me alegra mucha haber "regresado" y ver a mucha gente participando, incluidos a mis "viejos" amigos de antaño que ya no mencionaré pues todos ellos saben quiene son Pásenla lindo Abraham Valencia
  49. 2 points
    Una tontería tan grande como olvidar el "+1" en la siguiente línea uFD = wsDestino.Range("A" & Rows.Count).End(xlUp).Row + 1 Te lo dejo de nuevo Copia de 0011Acum_CuT_Ch_Nov16-Nov17_P_editado-1-1 De todas formas a @Antoni le ha parecido chulo, y con todo el fin de semana por delante, descansadito y con la perspectiva en el horizonte de la victoria de su equipo, verás como sube una virguería de archivo y ¡Ala! todo el trabajo a tomar por saco...
  50. 2 points
    Xanito

    Felices Fiestas

    Felices fiestas Genios de Excel, bendiciones.
×