Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 07/31/2020 in Posts

  1. LeandroA

    Nuevo Aporte

    Les comparto este ultimo proyecto en que estado jugando espero que les sea de utilidad.
    6 points
  2. Antoni

    ¡ 5.000 likes !

    A por los 10.000. 🙂
    5 points
  3. Hola a los dos Yo creo que entendí otra cosa.. 😆🤪 Saludos, Silvia Ejemplo asignacion de ID a cada semana de acuerdo a historial sq.xlsx
    5 points
  4. También puedes configurar la hoja desde las propiedades en el proyecto VBA Mira la imagen Saludos
    4 points
  5. Hoy, 14/02/2021, se cumple el 75 aniversario de la creación del primer ordenador. Se programaba por cables conectando funciones preestablecidas por hardware, podía hacer hasta 500 sumas por segundo, ocupaba 170 metros cuadrados y gastaba como 18.000 bombillas. (180 Kw/hora) Os dejo el artículo de El País. 75 aniversario de la creación de ENIAC, el primer ordenador electrónico
    4 points
  6. Hola JOCAMI90 la formula tenía una falla =SUMAR.SI.CONJUNTO(Datos!$D$3:$D$5000,Datos!$B$3:$B$5000,"*WH/"&B$3&"*",Datos!$C$3:$C$5000,$A4,Datos!$A$3:$A$5000,">="&$B$1,Datos!$A$3:$A$5000,"<="&FIN.MES($B$1,0)) considera que mi separador de argumentos es la coma (,), si el tuyo es otro, corriges. esto solo funciona para las columnas B y C que pertenecen a Setiembre, deberás cambiar manualmente B1, por D1 en Octubre, esa situación se dá , debido a que utilizaste celdas combinadas, lo que podrías hacer es descombinar las celdas y colocar las fechas en todas las columnas, en ese caso, la formula quedaría así: =SUMAR.SI.CONJUNTO(Datos!$D$3:$D$5000,Datos!$B$3:$B$5000,"*WH/"&B$3&"*",Datos!$C$3:$C$5000,ESPACIOS($A4),Datos!$A$3:$A$5000,">="&B$1,Datos!$A$3:$A$5000,"<="&FIN.MES(B$1,0)) y podrías arrastrarla a la derecha y hacia abajo.. sin modificar nada. Lo de la función Espacios, queda a tu decisión, (según lo que te comento líneas abajo), no olvides que cuanto mas cálculos haga la formula, mas ralentizará tu archivo. Además toma en cuenta lo siguiente: En la columna A, de la hoja resultados, no se si todos, pero por lo menos, los que revisé, tienen un ESPACIO al final. Para que un Texto coincida con otro, debe estar escrito EXACTAMENTE IGUAL que en la base de búsqueda. podríamos agrandar la formula, para quitar los espacios, de esta forma =SUMAR.SI.CONJUNTO(Datos!$D$3:$D$5000,Datos!$B$3:$B$5000,"*WH/"&B$3&"*",Datos!$C$3:$C$5000,ESPACIOS($A4),Datos!$A$3:$A$5000,">="&$B$1,Datos!$A$3:$A$5000,"<="&FIN.MES($B$1,0)) o podrias crear una columna auxiliar provisionar, colocas por ejemplo en k4 =ESPACIOS(A4) Lo llevas hacia abajo y luego lo copias A VALORES en A. ======================== tienes otro inconveniente con los WH/IN/00012 WH/N/A/00003 WH/OUT/00058 WH/IN/00015 como ves, WH/IN y WH/N no son iguales, por lo que esa no se sumará, debes corregir en la base. =================== Toma en cuenta que nunca deberías trabajar con Rangos de columnas completas, tipo A:A, B:B, si es el tema, que tienes todas las columnas llenas de datos (que lo dudo), ese libro te dará muchos problemas, por la lentitud de los cálculos.. ya que tendrá que evaluar las cuchucientas mil filas. Es mejor que trabajes con rangos amplios, dando un margen extra... (o también puedes convertir tu base en TABLA, en ese caso las formulas se autoajustan automáticamente. Bueno, creo que son todas mis observaciones.. Por si acaso incluyo tu archivo. saludos, Silvia AYUDA EXCEL EJEMPLO.xlsx
    4 points
  7. Como @Antoni debe estar muy ocupado, adjunto un archivo con 3 macros para obtener el día de la semana desde el 0100-01-01 (aaaa-mm-dd), en formato ISO 8601, que es el primer día admitido por VBA. La función GetWeekDayName() devuelve el día de la semana si se le pasa una cadena de texto en formato ISO 8601, llamando a las otras dos macros. Es fácil convertir una string con una fecha en formato de texto al formato estándar ISO. Option Explicit Function GetWeekDayName(sDate As String) As String ' ' VBA WeekdayName Function ' Dim iWeekDay As Integer iWeekDay = GetWeekDay(sDate) GetWeekDayName = WeekdayName(iWeekDay, False, vbMonday) End Function Function GetWeekDay(sDate As String) As Integer ' ' VBA WeekDay Function ' Dim dtDate As Date dtDate = GetSerialDate(sDate) GetWeekDay = Weekday(dtDate, vbMonday) End Function Function GetSerialDate(sDate As String) As Double ' ' VBA DateSerial Function ' Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer iYear = Left$(sDate, 4) iMonth = Mid$(sDate, 6, 2) iDay = Right$(sDate, 2) GetSerialDate = DateSerial(iYear, iMonth, iDay) End Function En el fichero adjunto he incluido las fechas especiales que: Fechas incorrectas en Excel inferiores al 1900-03-01 Fecha errónea en Excel y en VBA: 1900-02-29, ya que el año 1900 no es bisiesto. Primera fecha correcta en VBA: 0100-01-01 Fechas que no han existido en el Calendario Gregoriano, anteriores al 1582-10-15 Último día correcto en Excel y en VBA: 9999-12-31 @zelarra821 , @isidrod , espero que sea de ayuda y ayude a comprender el mundo pasado, presente y futuro. Años Menores que 1900 PW1.xlsm
    4 points
  8. Nunca debes utilizar los textbox, la función Val(), ni la función Format() en los cálculos, utiliza las variables y las funciones de conversión del tipo adecuado. He añadido un pequeño calendario. PRUEBA1.xlsm
    4 points
  9. Hola Esas fallas no están relacionadas a la versión del VBA o de Window (7, 10, etc.) sino a: - Uso de objetos ActiveX no compatibles entre ediciones de Office (32 o 64 bits, ojo, bits del Office, no importa lo de Windows). - Uso de objetos ActiveX compatible pero no registrados/instalados entre distintas PC. Recuerden que las librerías y objetos ActiveX (o similares), no "viajan" con los archivos de Excel. - "Llamadas" a funciones de la API de Windows solo para 32 bits. - Uso de propiedades y/u objetos de Excel "nuevas". Recuerden que las versiones más recientes de Excel tienen nuevos objetos y funciones que no son compatibles en versiones más antiguas. Si bien el VBA puede ser igual, obvio usar esas propiedades desde VBA traerá problemas en versiones más antiguas. - Ojo con lo que comentas, Haplox, si usas libros compartidos para trabajar... creo que sabes que traen muchos problemas que tampoco están relacionados a la versión de VBA necesariamente. Por ahí que se me escapan un par de cosas más. Saludos
    4 points
  10. John Jairo V

    si(y y si juntos

    ¡Hola a ambos! Se debe tener en cuenta un principio de Excel a la hora de construir este tipo de fórmulas: los números, si quieres que se reconozcan como tal, no deben ir entre comillas. Teniendo en cuenta esto, verifica la siguiente fórmula propuesta: =SI(F8="efectivo a";36000;SI(F8="efectivo b";48000;SI(M8>0;SI(F8="cuotas a";6000;8000);SI(F8="cuotas a";18000;24000)))) ¡Bendiciones!
    4 points
  11. hola a todos Dieguinho, yo tengo la mejor solución: Resetea tu máquina e instala todo de nuevo... y una mas radical: CAMBIA DE COMPUTADORA😂😂 la antigüita me la puedes donar. 😄 jaja saludos, Silvia
    4 points
  12. Hola! Hace 10 años, subí un aporte similar a lo que necesitas, abajo el tema Saludos
    4 points
  13. ¿Y porqué no ejecutar la macro directamente? Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row > 4 And _ Target.Column = 5 And _ Target(1, 1) <> "" Then Call MacroA End If End Sub
    4 points
  14. Hola @MauriciodeAbreu Selecciona el formulario y busca la propiedad "StartUpPosition". Te dejo una img Eres nuevo. Por favor ten en cuenta que, para una mejor resolución de los problemas, debes subir un archivo ejemplo (no necesariamente el original ni con datos verdaderos, pero que tenga la estructura de aquel). Si deseas retribuir el tiempo invertido en procurar la solución del problema planteado, puedes hacerlo con un click en el corazón que se encuentra en la parte derecha del comentario. Qué tengas un buen día! Suerte!
    4 points
  15. Me aburría y he hecho esto. Abre el adjunto y pulsa sobre la flecha verde. Nota: Si utilizas una tabla en la propiedad RowSource de un listbox/combobox e intentas añadir/eliminar una fila da error, para evitarlo, debes desvincular la tabla del control y volver a cargarlo. En el archivo que he subido verás como hacerlo. 🙂😷 Inventario.xlsm
    4 points
  16. @jhon fredy tus datos personales están seguros en Ayuda Excel. No son cedidos, vendidos o puestos a disposición de terceros. Cuando publicas tu proyecto en el foro lo estás poniendo a disposición de 25.730 usuarios, los cuales tienen permisos para descargarlos y manipularlos para darte una respuesta.. Cuando publicas un archivo en Ayuda Excel lo haces bajo tu responsabilidad, quedando Ayuda Excel exonerado de cualquier uso que los usuarios de la web puedan hacer de él. Por favor, echa un vistazo a este post publicado en la carpeta de Normas: Al registrarte en Ayuda Excel aceptaste las normas de uso: En caso de que ya no estés de acuerdo con ellas, te pediré que retires tus contenidos. Saludos,
    4 points
  17. ¡Ya está! Para mostrar una imagen que está en la hoja, hay que convertirla a jpg previamente. Abre el adjunto y pulsa sobre un código QR de la columna C. GENERADOR CODIGO QR.xlsm
    3 points
  18. Onkey, tiene un argumento opcional, que es llamar a un procedimiento, bueno ahi agregas el mensaje y listo Sub MostrarMensaje() If Application.OnKey Key:="{c}" Then "MiSub" End Sub Sub MiSub() VBA.MsgBox "Hola mundo" End Sub Saludos
    3 points
  19. @pegones1 sin afán de sonar negativo al tema ni generar conflicto, tú te mereces el 100% de la nota.
    3 points
  20. Prueba así: Sub last_row() Application.ScreenUpdating = False With Hoja1 For x = 2 To .Range("A" & Rows.Count).End(xlUp).Row If Not .Range("A" & x) = .Range("A" & x + 1) Then .Rows(x).Copy Hoja2.Rows(Hoja2.Range("A" & Rows.Count).End(xlUp).Row + 1) End If Next End With End Sub
    3 points
  21. 👏👏👏.... ¡¡¡Ayyy... qué haríamos sin ti!!!
    3 points
  22. Un poco más rápido y ordenado. Creo que no necesitas el botón buscar, para agilizar se podría condicionar la búsqueda a que se teclearan como mínimo 3 caracteres en el textbox. Ya comentarás. suministros (1).xlsm
    3 points
  23. John Jairo V

    AYUDA CON BUSCAR

    ¡Hola a ambos! @YOUSAFJAMALD, para la próxima, sube un archivo Excel en vez de una imagen. Nos ayuda mucho más a ayudarte. Ahora, en cuanto a tu problema y como bien te comenta @DiegoPC, efectivamente, con la función BUSCAR "solita", el problema no es posible realizarlo, pero con "ayuda" si que es posible. =BUSCAR(2;1/FRECUENCIA(0;1/(1+(K$37:K$43<=N37)*K$37:K$43));L$37:L$43) otra alternativa un poco más "digerible": =INDICE(L$37:L$43;COINCIDIR(MAX(INDICE(K$37:K$43*(K$37:K$43<=N37);));K$37:K$43;)) o también usar la función BUSCARX (solo disponible en Microsoft 365 / Excel 2021 / Excel Online 😞 =BUSCARX(N37:N63;K37:K43;L37:L43;"No Existe";-1) Analiza detenidamente las propuestas. ¡Bendiciones!
    3 points
  24. Hola!! Otra alternativa, también con macros, pero un poquito más corta y preparada para que el listado de la izquierda crezca sin tener que hacer modificaciones. Listado Productos_Diego.xlsm
    3 points
  25. Gerson Pineda

    Remplazar simbolo

    Hola nico Para poder reemplazar ese signo se debe primero implementar una lógica, por ejemplo colocando a la par el numero cuil y listo, por lo que te adjunto una solución, bastante económica y simple Saludos Libro3.xlsx
    3 points
  26. Hola a todos; -Me respondo a mi mismo. He conseguido lo que pretendía añadiendo las siguientes líneas al código. No sé si el orden es del todo correcto pero cumple la función que buscaba. Aquí os dejo del código de como ha quedado la macro. Private Sub btn_Aceptar_Click() Application.ScreenUpdating = False '<<<<Código añadido If txt_pass.Value = UCase(Sheets("Registro").[G3]) Then Dim HOJA As String '<<<<Código añadido Label2.Visible = True Hoja6.Range("A3") = "Admin" mostrarHojas HOJA = ActiveSheet.Name '<<<<Código añadido ActiveSheet.Visible = 2 Unload Me Sheets(HOJA).Visible = True '<<<<Código añadido Sheets(HOJA).Select '<<<<Código añadido Else MsgBox "Debe registrarse para poder aceder al formulario", vbInformation, "Aviso" Unload Me 'frm_Login.Show End If Application.ScreenUpdating = True '<<<<Código añadido End Sub
    3 points
  27. Hola a ambos. Yo redondearía la fórmula para los casos de ganancia 100%, en los que en el año 2020 es igual a 0, y en el año 2021 es mayor a 0. =SI(Y(C6=0;B6>0);1;SI.ERROR((B6-C6)/C6;"")) Saludos.
    3 points
  28. Antoni

    Copia seguridad

    En España, Galones: Distintivos que indican la jerarquía militar, coloquialmente indica el nivel de conocimiento de un tema/situación.
    3 points
  29. Private Sub Fecha_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Fecha <> Empty Then If Not IsDate(Me.Fecha) Then MsgBox ("Introduzca una fecha correcta"), vbCritical Cancel = True: Fecha = Empty Exit Sub End If If Not CDate(Fecha) = Date Then If MsgBox("La fecha no coincide con el día de hoy" & Chr(10) & _ " ¿Desea continuar?", vbYesNo + vbQuestion) = vbNo Then Cancel = True: Fecha = Empty Exit Sub End If End If Fecha = Format(CDate(Fecha), "dd/mm/yyyy") End If End Sub
    3 points
  30. 3 points
  31. ¡Hola a ambos! Dejo otra opción en el adjunto. ¡Bendiciones! Buscar palabra de una lista en un texto.xlsx
    3 points
  32. ¡Hola a todos! En ese orden de ideas... para qué tablas o dinamización de rangos, si se puede, simplemente: =MAX(1:1) ¡Bendiciones!
    3 points
  33. Por el mismo precio también va incluido el botón de maximizar. 😂 Y no, no puede aparecer en la barra de tareas, que yo sepa. Minimizar.xlsm
    3 points
  34. @jeaa mientras sigas ignorando los comentarios será difícil, está macro simplemente sustituye en tu hoja el nombre del alumno y la la nota, si hay algún cálculo y NO cuadra, pues es simplemente tu archivo y las formulas que tengas, NO es ningún problema de la macro. mientras NO termines de explicar que hace tu archivo o que es lo que necesitas y coloques algún ejemplo de lo que NO cuadra, pues será complicado. suerte
    3 points
  35. ¡Hola a todos! @Cristian 1985: Debes tener en cuenta que en la función INDICE, el argumento 0 hace que la función devuelva TODOS los valores de la columna a analizar (puedes probar con una función en modo edición, y presionar F9 para que lo constates). @victorjavega: Cristian si escribió bien mi nombre (eso hizo que me fijara en el tema). Tu llamaste a un "tocayo"... 😂 Para la propuesta, no necesitas ningún tipo de macros. Simplemente un control de formulario (control número), vinculado con la celda donde está el mes. Mejoré la fórmula que tenías en la selección del mes, además de la fórmula original, donde combino INDICE - COINCIDIR - INDICE. Revisa el adjunto. ¡Bendiciones! Calendario_aulas.xlsx
    3 points
  36. Antoni

    cronograma por etiquetas

    Revisa el adjunto. Pruebamant.xlsm
    3 points
  37. JSDJSD

    Vencimientos

    Me alegro, pero no olvides nunca agradecer a quien te ayuda o intenta ayudar y en este foro es mediante el corazoncillo que hay en la parte inferior derecha.
    3 points
  38. Cualquiera de estas 2 macros te vale: Sub CopiarFiltro1() Hoja2.Range("A:D").Clear Hoja1.Range("A1:C" & Hoja1.Range("A" & Rows.Count).End(xlUp).Row).Copy Hoja2.Range("A1") End Sub Sub CopiarFiltro2() Hoja2.Range("A:D").Clear Hoja1.UsedRange.SpecialCells(xlCellTypeVisible).Copy Hoja2.Range("A1") End Sub
    3 points
  39. considera lo siguiente: las reglas de validación SON (y solo funcionan) para entradas "directas" en las celdas (por el usuario) NO funcionan si la celda es fórmula o se ingresa por copiar > pegar o medios de automatización (macros p.ej.) por lo mismo, el mensaje de entrada sirve como ayuda visual para que el usuario sepa el tipo de dato a ingresar si necesitas evitar (prevenir, corregir, ...) que una fórmula devuelva ceros, requieres de las macros (y unas cuantas "vueltas de tuerca")
    3 points
  40. JSDJSD

    Macro Vlookup

    Bueno te dejo otra opción, prueba y comenta Vlookup (prueba2).xlsm
    3 points
  41. Otra opción, usando fórmulas matriciales (se ingresan presionando la combinación de teclas Ctrl + Shift + Enter). Saludos! Ejemplo asignacion de ID a cada semana de acuerdo a historial.xlsx
    3 points
  42. Hola @Serch! Esta vez me superé a mi mismo y mi propuesta no tiene 1 ni 2 sino 3 columnas auxiliares jajajajajajaja Mi propuesta es bastante engorrosa, pero bueno, paso a explicarla jajajjaaja: La Columna auxiliar1 cuenta la cantidad de repeticiones de cada ID en el historial. La Columna auxiliar3 ordena las repeticiones de acuerdo a la frecuencia de cada una de ellas, con la función JERARQUIA. La Columna auxiliar2 tuve que agregarla para que la función JERARQUIA obtuviera los valores correctos, ya que ésta no ordena los valores repetidos (por ejemplo, a los ID que no aparecían esa función les asignaba a todos el mismo orden). Por último, uso la función BUSCARV para obtener cada uno de los ID haciendo referencia a los valores de la Columna auxiliar3. Tuve que usar las funciones TRUNCAR y CONTARA para que, al asignar 1 vez cada ID, comenzara de nuevo (bucle). Agregué un formato condicional para resaltar los ID repetidos por cada fila y que, si lo deseas, cambies manualmente los que se repitan. Siempre que agregues manualmente los valores sería recomendable asignar los primeros ID de la columna ya que son éstos los que tienen menor frecuencia. Al agregar una semana nueva se deberían agregar las fórmulas en la columna correspondiente (en este caso sería la W41), eliminar las fórmulas de la semana anterior (la W40) copiando los valores y usando "pegado especial => valores" y luego extender los rangos usados en la columna auxiliar1. La verdad espero que alguien proponga una solución más simple que la mía jajajajaja. Quizás se podría obviar todo lo que agregué y usar solamente el formato condicional. O tal vez en este caso podría ser conveniente usar macros para asignar los ID, o también se podría usar una tabla dinámica para ver las frecuencias de cada valor y asignar los ID manualmente. Saludos! Ejemplo asignacion de ID a cada semana de acuerdo a historial.xlsx
    3 points
  43. Archivo modificado INVTA AGROCEN v2 .xlsm
    3 points
  44. Me alegro YianTheJOP, pero no olvides nunca agradecer a quien te ayuda o intenta ayudar y en el foro se agradece mediante el corazoncillo que hay en la parte inferior derecha, un saludo.
    3 points
  45. "esta" SI que... no la vi venir... 😶
    3 points
  46. Antoni

    COLOR EN COLUMNA

    El número total de colores viene de la combinación de 256(Rojo) * 256(Verde) * 256(Azul)=16777216
    3 points
  47. Prueba y comenta Semana numero Prueba (!).xlsm
    3 points
  48. Hola @MauriciodeAbreu Te dejo mi aporte, Nos comentas. PD. Solo modifique las propiedades: LEFT yTOP Formulario1.1.xlsm
    3 points
  49. Tienes un lío conceptual impresionante, intentaré subirte algo hoy y si no, mañana.
    3 points
  • Newsletter

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

Important Information

Privacy Policy