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
    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
  21. 2 points
    @JuanP, es una lastima que no consideres mi primera propuesta, creo que no seria difícil de adaptar incluso es mas fácil que usar solo VBA, pero bueno te dejo una opción sin SQL. Comentas . Saludos a todos. Doble busqueda (1).xlsm
  22. 2 points
    La diferencia es sencilla, prueba con los dos metodos y veras los resultados. Un saludo.
  23. 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.
  24. 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.
  25. 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
  26. 2 points
    Sergio

    Botones de opción en word

    Presiona Alt + F11 e introduce el siguiente código en la ventana de ThisDocument: Private Sub OptionButton111_Click() OptionButton4.Enabled = False OptionButton5.Enabled = False End Sub Private Sub OptionButton112_Click() OptionButton4.Enabled = True OptionButton5.Enabled = True End Sub Espero que te sirva.
  27. 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.
  28. 2 points
    johnmpl

    Formula

    ¡Hola, @canjose! Puedes usar la siguiente fórmula, en H3: =C7/SI(C7>436;60;40) ¡Bendiciones!
  29. 2 points
    Siento decirte que aquí no se da soporte a ningún tipo de desbloqueo.
  30. 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🤝
  31. 2 points
    Saludos @Perssefones, un ligero cambio, Buscar simbolos.xlsm
  32. 2 points
    Hola: Yo hace mucho encontré este archivo, solo habría que adecuarlo a los euros en vez de pesos, a ver si alguno de los maestros en macros te echan la mano Saludos. Cantidad en letra.xls
  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
    Hola No hay que olvidarnos que Onedrive, por más que se use desde la aplicación de escritorio y sincronizado con la nube, pues lo que hace es crear más de un archivo que permanentemente se está, en realidad, copiando. ¿Hay entonces una forma en que se eviten conflictos para poder seguir usando libros con macros, y sus macros por supuesto, en OneDrive de escritorio? Pues no, no la hay, y justamente por eso que menciono de que en realidad lo que vemos no es un único archivo. ¿Hay una forma de que una macro cierre y abra el libro/archivo que la contiene? No, no la hay, necesariamente tiene que ser desde otro archivo/libro. Entonces ¿es OneDrive la solución para usar archivos de Excel y compartirlos? En general no se recomienda usar Excel para esas cosas, pero de insistir quizá te sea más útil usar todo en Excel OnLine y JavaScript. Justamente se ha abierto un sub foro sobre esos temas. Ah, claro, tendrías que aprender un nuevo lenguaje. Saludos.
  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
    Saludos @JuanP te dejo la macro con el cambio para que cuando pases de una columna a otra se ajusten todas primero al tamaño original Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim anchoG As Single Dim anchoP As Single anchoG = 24 anchoP = 5.57 If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Range("K7:AO24")) Is Nothing Then Range("K7:AO24").Columns.ColumnWidth = anchoP 'ESTA ES LA FILA NUEVA Target.Columns.ColumnWidth = anchoG Else Range("K7:AO24").Columns.ColumnWidth = anchoP End If End Sub Lo otro que dices, pues no lo entiendo, según lo que yo vi en tu macro original, eso es lo que hace, simplemente seleccionas lo que quieres y dejas el texto que está justo antes del primer espacio, no es eso, o que falta?
  41. 2 points
    Pon un ejemplo de como debe quedar
  42. 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
  43. 2 points
    Hola Isidro Te adjunto una solución, ya nos comentaras... Saludos Transponer filas a columnas_GP.zip
  44. 2 points
    Hola: Checa el adjunto, utilizo una columna auxiliar (columna A), la fórmula esta en la columna F. Saludos. Sumar_ID.xlsx
  45. 2 points
    Hola, el código debería ir así: Sub CopyPaste() Dim xRng As Range On Error Resume Next Set xRng = Application.InputBox("Selecciones el rango:", "MS Excel", , , , , , 8) If xRng Is Nothing Then Exit Sub xRng.SpecialCells(xlCellTypeBlanks).Select Range("A1").End(xlDown).Offset(1, 0) = "=R[-1]C" Columns("A:A").SpecialCells(xlCellTypeFormulas, 23).Copy ' Range("A1").End(xlDown).Copy ActiveSheet.Paste End Sub Saludos
  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
    Abusando de esta recomendación de Héctor Miguel asumiendo que te refieres a los desplegables en listas de reglas de validación (?), mira por aquí: - Drop Down List Too Wide - Make the Dropdown List Temporarily Wider - Make the Dropdown List Appear Larger - Data Validation Tips and Quirks
  49. 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.
  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