Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 03/01/2020 in all areas

  1. 4 points
    avalencia

    vsto vs JavaScript

    Hola Aunque por mucho tiempo Microsoft intentó impulsar el uso de VSTO, en mi evaluación no lo ha logrado y somo muy pero muy pocos los que conocemos su uso. No tengo duda de que eso se debe a qué necesariamente hay que descargar/tener alguna versión de Visual Studio, lo que no necesariamente quiere o necesita un usuario de Excel por más que sea programador de VBA, ya que basta instalar Office y/o Excel para usar dicho lenguaje. Sobre JavaScript, y "derivados" que se pueden usar en Excel, no creo que vaya en detrimento de VBA, sino más bien que ante la constante necesidad de usar la nube para el trabajo, es una tecnología(s) que hay que conocer y/o usar para hacer cosas que solo con VBA no se pueden. Ojo que algo que algunos olvidan es que hay cosas que JavaScript tampoco puede y VBA sí, así que sin duda no es que uno reemplace al otro. Saludos
  2. 4 points
    Juan P esto sucede porque el evento Worksheet_Change que ha utilizado Gerson están dirigido a los cambio que ocurran en la celda E2, si lo que deseas es aplicar en E4 solo debes cambiar la referencia. Private Sub Worksheet_Change(ByVal Target As Range) '************ by Gerson Pineda ************ '************ Feb/2020 ************ On Error Resume Next Application.EnableEvents = False With Target If .Address(0, 0) = "E4" Then .Value = _ VBA.Left(.Value, VBA.InStr(1, .Value, " ", vbTextCompare) - 1) End With Application.EnableEvents = True On Error GoTo 0 End Sub
  3. 3 points
    Me alegro, pero no olvides agradecer a quien te ayuda o intenta ayudar y en este foro es mediante el corazoncito que tenemos en la parte inferior derecha. Un saludo
  4. 3 points
    Prueba y comenta. También tengo que decirte que el adjunto de GabrielRaigosa, haciéndole la modificación que comentas funciona perfectamente. excel PEDIDO PROVEEDORES 2020 (3).xlsm
  5. 3 points
    Amigos @Haplox, @JSDJSD, @bigpetroman, quiero agradecerles sinceramente el tiempo, la dedicación, el esfuerzo y el apoyo brindado para la solución del tema expuesto en Ayuda Excel. Los tres aportaron, sus grandes conocimientos en Excel y lograron finalmente el objetivo planteado. MUCHAS GRACIAS!!!!! Tema resuelto!!!!
  6. 3 points
    ¡Animo! una respuesta más, llegais a las 50 y ¡premio!, este mes consiste en una mascarilla para prevenir la infección del coronavirus. 🤣😘
  7. 3 points
    Saludos @CarlosKurt, revisa el anexo, tiene la macro para colocar el formato condicional a toda una tabla, luego de colocar el formato ya queda listo, no es necesario ejecutar la macro otra vez suerte formato condicional a secuencias.xlsm
  8. 3 points
    hola Perssefones Adjunto una opción.. Saludos, Silvia Buscar simbolos.xlsx
  9. 3 points
    hola sretamalb (y Snake 😀 ) Dejo dos opciones mas... saludos, Silvia PRUEBA 1.1.xlsx
  10. 3 points
    Es decir que en tu mundo las manzanas no existen?... 😒🤧🤨 🤪😆
  11. 3 points
    rolano

    ANSWERED Al digitar en una celda

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) ListBox1.BoundColumn = 2 ListBox1.TextColumn = 2 Hoja3.Range("D9") = ListBox1.Value Exit Sub End Sub Hola Xanito, copia este código. Saludos @Gerson Pineda
  12. 3 points
    isidrod

    Buscar palabras dentro de un texto

    te de dejo esto @alvaroballes buscar palabra saludos isidro
  13. 3 points
    johnmpl

    Buscar palabras dentro de un texto

    ¡Hola, @alvaroballes! En el adjunto, dejo dos opciones: 1. Con la función UNIRCADENAS - útil en Excel 2019 y/o Office 365 - : =UNIRCADENAS(", ";;SI(ESNUMERO(HALLAR(Tabla1[Terminos];B12));Tabla1[Terminos];"")) 2. Con la función definida por el usuario (UDF: User Defined Function) programada en VBA llamada PalabrasCoincidentes. Function PalabrasCoincidentes$(Terminos As Range, Celda As Range, Optional Sep = ", ") Dim i&, C As Range ReDim a(1 To 1) For Each C In Terminos If InStr(1, Celda, C) Then i = 1 + i: ReDim Preserve a(1 To i) a(i) = C End If Next C PalabrasCoincidentes = Join(a, Sep) Set C = Nothing End Function Cuyo uso puedes dar, así: =PalabrasCoincidentes(Tabla1[Terminos];B12) Revisa el adjunto, con detenimiento. ¡Bendiciones! Duda excel.xlsb
  14. 2 points
    el detalle en tu consulta es que usas un estilo de "adivinen lo que estoy pensando" (?) con respecto de tu adjunto... 1) el módulo "de clase" no contiene nada y en tanto no decidas para qué quieres que "sirva", puedes iniciar pesquisas analizando artículos como este (solo por mencionar alguno): - Introduction To Classes 2) en el evento '_click' del commandbutton de tu formulario (BTNBUSCAR) haces un "intento" de llamada a un procedimiento que NO existe: TraerNombre 3) ese "TraerNombre" es el nombre de un módulo de código, que es un "contenedor" de procedimientos, es decir... - un módulo puede contener varios procedimientos siempre y cuando... - a) ningún procedimiento se llame igual a otro (tampoco igual a ningún módulo de código) - b) cualquier procedimiento declarado en módulos normales puede ser asignado a objetos con solo indicar el nombre del procedimiento en una línea u usando el método: => Call nombre_del_procedimiento 4) en ese módulo (TraerNombre) parece que simulaste el traspaso del evento '_click' de un control indefinido de un userform (?) - aquí entrarían los módulos de clase, previa lectura del artículo sugerido (entre otros) - aunque haces referencia al control "TXTBUSCAR" (mismo que SI se encuentra en tu formulario), no es tan "simple" de referir sin calificar sugiero avanzar más lento (programación rutinaria en vba) y después avanzar a los módulos de clase (y mucho más) ?
  15. 2 points
    Antoni

    Omitir funcionamiento de una macro

    En lugar de suprimirlo yo lo cambiaría por Exit Sub. Un abrazo Juan. 🙂
  16. 2 points
    avalencia

    Desbloqueo de Macro

    Hola Los proyectos de VBA protegidos deben ser desprotegidos por sus autores. Es una mala práctica que otros lo hagan.
  17. 2 points
    ¡Hola, a ambos! Dejo otra opción en el adjunto, con solo medidas. ¡Bendiciones! UltimoVendedor.xlsx
  18. 2 points
    José_Santos

    Ya se veía venir...

    @digitalboy De momento Office Scripts es de pago, Script Lab es gratuito y también puedes programar Add-Ins desde Visual Studio para cosas más avanzadas (también con una versión gratuita) La mayoría de lo que publico en la nueva sección es con Script Lab porque es lo más sencillo a la hora de empezar, pero también hay algo creado con Visual Studio. Saludos.
  19. 2 points
    digitalboy

    vsto vs JavaScript

    Hola a todos! Nunca trabaje con VSTO, tal como menciona @avalencia se necesitaba instalar Visual Studio, siempre me incomodo que fuera un entorno tan pesado... Pero que bueno que hay que gente que lo ha probado y en este caso puede darnos su opinión! VBA tendrá esa ventaja de estar integrado a Excel por lo cual no dejara de ser usada, dependiendo las aplicaciones que se tengan en mente... Siempre he pensado que conviene saber un poquito de todo y si no es posible, por lo menos leer las opiniones de otras personas que utilizan otra herramienta que nosotros no. El caso de todo esto es tener varias alternativas a la mano y saber cuando poder aplicarlas. Ignoro hasta que punto MS lleve la integración de JS/Excel, pero si se lo toma en serio se debería de poder hacer lo mismo que con VBA/Excel. Saludos!
  20. 2 points
    Uff, tienes toda la razón del mundo activada la casilla y funcionando 100%, subo video para que se vega el error que mandaba. https://drive.google.com/open?id=1wrA5LnfqzFrOMsJt7ThHsPgwNut5_AZH Tema resuelto
  21. 2 points
    Hola La imagen me sale muy pequeña para ver el error, pero sospecho que es: Archivo - Opciones - Centro de confianza - Configuración del centro de confianza - Configuración de macros, en la sección "Configuración de la macro del programador" activar "Confiar en el acceso al modelo de objetos de proyectos de VBA". Saludos
  22. 2 points
    La diferencia es sencilla, prueba con los dos metodos y veras los resultados. Un saludo.
  23. 2 points
    johnmpl

    ANSWERED Orden de fecha

    ¡Hola, @Diego1991! He preparado un vídeo, que puedes visualizar para que entiendas el paso a paso realizado para trabajar con datos como los que muestras, usando Power Query. También, comparto por acá el archivo final del trabajo realizado. ¡Bendiciones! Normalización.xlsx
  24. 2 points
    hola, a todos ! otra posibilidad es agregar un comando "perdido" en la interfaz desde la versión xl-2007 +/- así: a) desde las opciones de configuración de excel, personalizar la QAT b) muestra de la opción -> comandos que no están en la cinta de opciones (o todos los comandos) c) localiza (por orden alfabético) el que dice: "enviar a destinatario de correo" - nota: al poner el puntero sobre este comando, aparece una descripción que al final dice: -> (SendCopySendToMailRecipient) <= así... entre paréntesis d) pulsa en el botón de: Agregar >> (a tu barra de herramientas de acceso rápido) al pulsarlo (desde la QAT) te dara la opción de enviar todo el libro como datos adjuntos o enviar la hoja actual (o el rango seleccionado) como cuerpo del mensaje OJO: deberás tener configurado cliente y cuenta de correo en windows (preferentemente outlook de office) también puedes hacer una macro que muestre el "sobre" para envóos por correo +/- con la siguiente instrucción: ActiveWorkbook.EnvelopeVisible = True saludos, hector.
  25. 2 points
    Te subo el archivo comentariado para que veas los pasos que se siguen, también te dejo enlace del video para que veas como puedes acceder al código. https://drive.google.com/open?id=1YdSSlQdtOBfMOJ4Ev5OSn-j9r5V2Vd12 excel PEDIDO PROVEEDORES 2020 (5).xlsm
  26. 2 points
    Prueba así, no olvides reemplazar por tus rutas: Sub ExtraerPaginasPDF() Dim jso As Object, PDDoc As Object, AVDoc As Object, gApp As Object Dim Ruta As String, Nombre As String Dim x As Long Let Ruta = "D:\Varios\Por clasificar\Matriz.pdf" Set gApp = CreateObject("Acroexch.app") Set AVDoc = CreateObject("AcroExch.AVDoc") If (AVDoc.Open(Ruta, Ruta)) Then Set AVPageView = AVDoc.GetAVPageView Set PDDoc = AVDoc.GetPDDoc() Set jso = PDDoc.GetJSObject For x = 0 To jso.numPages - 1 Nombre = "D:\Carpeta\" & "Página_" & Right(x + 1001, 3) & ".pdf" jso.extractPages x, x, Nombre Next End If gApp.exit MsgBox "Listo" Set jso = Nothing Set PDDoc = Nothing Set AVDoc = Nothing Set gApp = Nothing End Sub Ah, ojo, aquí creo un pdf por página, ya queda como tarea para ti que sea cada cuatro.
  27. 2 points
    Sub CopiarA5K5() Application.ScreenUpdating = False For x = 1 To 5 Range("A5:K5").Copy Range("A6").End(xlDown).Offset(1).Insert xlDown Next End Sub
  28. 2 points
    He descargado el mismo archivo que le adjunté, cambio el pedido de J1 y los datos que hay en la región que comienza en R20 se actualizan correctamente. No veo cual es el problema.
  29. 2 points
    johnmpl

    Formula

    ¡Hola, @canjose! Puedes usar la siguiente fórmula, en H3: =C7/SI(C7>436;60;40) ¡Bendiciones!
  30. 2 points
    Siento decirte que aquí no se da soporte a ningún tipo de desbloqueo.
  31. 2 points
    SI @JSDJSD, ya te iba a comentar. También funcionó perfecto. El objetivo se cumplió como debe ser. El amigo @bigpetroman detectó algo en el código de @Haplox y funcionó perfecto también. Le dí la mejor respuesta a bigpetroman ya que la solución aportada no modifica la estructura del proyecto base que cuenta con 11 hojas y que luego se van a ir insertando hojas adicionales pudiendo superar 100 o 200 hojas y casi 60 macros en total. Como dije anteriormente, te agradezco sinceramente el apoyo brindado, Los 3 aportaron muchísimo🤝
  32. 2 points
    Saludos @Perssefones, un ligero cambio, Buscar simbolos.xlsm
  33. 2 points
    ¡Hola, a todos! He subido una serie de videos en mi canal de youtube que pueden ayudar al consultante, sobre como se pueden extraer numeros dentro de una cadena alfanumérica entre palabras. Aquí subo el último que muestra la extracción, pero la recomendación es también ver los anteriores para entender mejor las técnicas que aquí se usan. ¡Bendiciones para todos!
  34. 2 points
    Amigo @Perssefones, en la macro, cambia esta linea sSubTexto01 = Split(rCelda.Text, sSeparador)(0) por esta otra sSubTexto01 = Trim(Split(rCelda.Text, sSeparador)(0)) listo
  35. 2 points
    y dejo un archivo con una macro Buscar simbolos.xlsm
  36. 2 points
    Es complicado hacerlo con formulas cuando puedes tener infinidad de opciones!!!, con un macro tal vez pudiera ser más fácil, sin embargo dejo una combinación de ambas formulas que cubre todas las opciones mostradas hasta ahora =SI.ERROR(SI(HALLAR("%";IZQUIERDA(B12;HALLAR(" ";B12)-1);1);IZQUIERDA(B12;HALLAR(" ";B12)-1);0);ESPACIOS(IZQUIERDA(SUSTITUIR(EXTRAE(ESPACIOS(B12);BUSCAR(100;HALLAR($I$2:$I$7;ESPACIOS(B12)))+2;100);" ";REPETIR(" ";100));50)))
  37. 2 points
    Saludos a todos, amigo @Leonardo Briceño, en el archivo original, el que te paso el amigo @Haplox el problema que existe es que estas usando el control activeX, y haces referencia a el en el evento Change de la hoja: prod = TempCombo Cuando seleccionas primero el ingrediente y luego la unidad de medida, PLUS, te da el error ya que TEMPCOMBO hace referencia al listado de unidades y NO al listado de productos. pero SI solo seleccionas el Producto (o primero unidad y luego producto) NO se produce el erro ya que TEMPCOMBO hace referencia correctamente al listado de Productos. la solución es facil cambia: prod = TempCombo por prod = Range("A" & Target.Row).Value espero que les sirva esta información suerte
  38. 2 points
    amigo @JuanP, la explicación no la entendi mucho, luego de revisar y revisar, pues note que es UNA FORMULA que tienes que llama a esa funcion, pues NO habias dicho nada y andaba loco. NO entiendo cual es la idea, simplemente saber si por algún motivo alguien coloco un turno que no existe?, si es asi, revisa el anexo, NO es necesaria la formula, simplemente en el mismo evento CHANGE de la hoja realizas la validación luego del cambio y das el mensaje. y en tu funcion de busqueda, buscas en TODAS las hojas, lo cual NO es lógico, pues es una perdida de tiempo, la acomode para evitar eso Suerte Lista con dos columnas - PRUEBAS 8.xlsm
  39. 2 points
    amigo @JuanP ya conteste el otro tema, viendo la pregunta aqui, sigo sin entender, pero creo que te estas ahogando en un baso de agua amigo, en la tabla que tienes en la hoja "Datos 2" la columna TURNO tiene codigo UNICOS para cada turno, por lo tanto la busqueda la puedes hacer simplemente por ese campos, es decir, daria lo mismo si buscas "1" o buscas "1 - Mañana" ya que es código es unico, igual si buscas "1FSI" o buscas "1FSI - Mañana FS Inicio", ahora si tuieras por ejemplo "1 - Tarde", alli si tendrías problema, pues el 1 NO sería unico y estaría asociado a dos resultados, por lo cual si tendrias que buscar la palabra completa no se si es que no estoy entendiendo, si no es asi, pues explica mejor exactamente que es lo que necesitas. suerte
  40. 2 points
    La conclusión ha llegado para ti o continua otra ronda para el vino?
  41. 2 points
    Lista con dos columnas - PARA JUAN P.xlsm
  42. 2 points
    Pon un ejemplo de como debe quedar
  43. 2 points
    Juan P A ver si con esto me invitas a un café : Sub Worksheet_SelectionChange(ByVal Target As Range) Dim anchoG As Single Dim anchoP As Single anchoG = 24 anchoP = 5.57 Static Col As Long If Target.Count > 1 Then Exit Sub If Target.Column >= 11 And Target.Column <= 41 Then Target.Columns.ColumnWidth = anchoG Else Target.Columns.ColumnWidth = anchoP End If If Col > 0 Then Columns(Col).ColumnWidth = 8 End If Col = Target.Column End Sub Saludos J
  44. 2 points
    avalencia

    ANSWERED ComboBox Supervisión Obras

    Solo para que no quede la duda y te vuelva a ocurrir, un poco de teoría, como ya es mi costumbre 😛 Usas el evento Change de varios combobox, dicho evento se "dispara" cuando hay, justamente, cambios en los objetos ActiveX y/o controles, entonces, tu evento Click de lCmdRegistrar "dispara" (nuevamente) dicho evento al usa, por ejemplo, Combobox3.Clear, produciendo un efecto "cascada", algo así como un "loop" infinito y el error en cuestión. Al usar @JSDJSD la propiedad Value, en este caso, evita el efecto que menciono. Si los objetos en los Userform tuvieran una propiedad como Application.EnableEvents, sería fácil evitar dicho "loop" activando y desactivando cada vez dicha propiedad, pero al no existir, o haces cambios como los que te han sugerido, o a través de una variable boleana "creas" tu propiedad, algo así: Enlace Saludos
  45. 2 points
    Hola Isidro Te adjunto una solución, ya nos comentaras... Saludos Transponer filas a columnas_GP.zip
  46. 2 points
    Juan P. no logré ver la imagen que mencionas, pero veamos: para que cuando se pulse sobre una celda se agrande y luego vuelva a tener su tamaño ya que la celda solo tendrá unos 4 caracteres. A ver si damos en el clavo a lo que he logrado comprender: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Intersect(Target, Range("h7:al7,h8:AL8")) Is Nothing Then ActiveWindow.Zoom = 100 Else ActiveWindow.Zoom = 120 End If End Sub
  47. 2 points
    buen dia! 1.- la formula ya pone la hora en este archivo. 2.- en la hoja PLANO no tienes que poner ningun numero de plaza, solo copiar la formula de una celda a otra y eso es todo. 3. agregue una hoja que se llama "Plaza", en esta hoja tienes que poner los números de plaza tal y como quieras que aparezcan en la hoja PLANO. por ejemplo yo puse 3563 en la celda B10 de la hoja "Plaza" para que la formula que esta en la celda B10 de la Hoja "PLANO" aparezca este numero de plaza. 4.- si quieres re diseñar la ubicación de las plazas ( me refiero al formato de los bordes de las celdas) eso lo haces en la hoja PLANO y ya nada mas copia la formula. 5.- respecto a la validación de datos que pones en la columna B de la Hoja "REGISTRO" ya la arregle para que se extienda automáticamente el rango de datos que pones en la "Hoja2" prueba-parqking 4.xlsx
  48. 2 points
    Otro ejemplo más de cómo se puede acceder al Panel de Tareas de Excel y diseñarlo con HTML y CSS Para interactuar con la hoja de cálculo utilizamos la API de JavaScript para Office.
  49. 2 points
    Damos inicio, a esta nueva sección, presentando un formulario que puede ser ejecutado desde la versión de Excel de escritorio y la versión de Excel Online. Estate atento a próximas publicaciones donde mostraremos como programarlo, desde el inicio, con JavaScript, HTML y CSS, desde el propio Excel, con Script Lab. Puedes importar la plantilla, desde Script Lab, utilizando el siguiente link: https://gist.github.com/tuyoyexcel/35f446e2fb74e07a3c310941240e6eb1 Adjunto puedes encontrar el fichero Excel que tienes que tener abierto para pasar los datos del formulario a la hoja de Excel. Script Lab es un complemento que ha creado Microsoft para que practiques con la API de JavaScript para Office. Lo puedes descargar desde la pestaña "insertar" y luego haciendo click en "complementos" y "obtener complementos", búscalo y simplemente lo agregas. Abajo puedes dejar tus consultas, dudas o sugerencias. Saludos. Formulario Web Excel.xlsx
  50. 2 points
    Hola Sretamalb, revisa el adjunto. saludos @Antoni. Prueba (2).xlsm


  • Newsletter

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

Important Information

Privacy Policy


CTA Templates.png