Saltar al contenido

Israel Cassales

Miembro
  • Unido

  • Última visita

Todo se publica por Israel Cassales

  1. Bueno, para asegurarte de que los nuevos datos se peguen a partir de la última fila utilizada, primero se debe encontrar la última fila con datos en “BASE GENERAL”. Puedes usar lastRow (Ejemplo): Encuentra la última fila con datos en "BASE GENERAL" lastRow = wsBaseGeneral.Cells(wsBaseGeneral.Rows.Count, "B").End(xlUp).Row + 1 Y modifica en tu código: Destination:=wsBaseGeneral.Range("B" & lastRow) Haz una prueba y regresas con el avance o comentarios, sino es uno mismo tal vez algún Maestro pueda aportar algo adicional. Nota: Para una ayuda mejor elaborada se recomienda poner un libro de ejemplo, esto evita conjeturas que no ayudan en la determinación de sentencias. Saludines.
  2. Hola, Aunque parece claro lo que busca, aún deja espacio a la especulación. Entiendo que parte de una lista el primer día del mes y cada día que pasa la lista sufre cambios. Es decir tienes adiciones y eliminaciones, pero no menciona si el primer día de cada mes, la lista es igual a la anterior del último día del mes pasado. Yo supondría que sí. Tiene que desarrollar en su tema cómo es que esa lista va creciendo, ¿Extrae, copia y pega, vincula, etc.? Además está el orden de los eventos y menciona que recibe un archivo por cada día. Considerando esas explicaciones puedo participar con una idea, y hago énfasis es una idea. Algo pragmático para encontrar las diferencias sería usar la función COINCIDIR() Para los nuevos su matriz de comparación será hacia “atrás” en el rango. Y para los eliminados será hacia “adelante”. Lo mostrado anteriormente fue un ejemplo y con el filtro puede ver los resultados. Después para acomodarlo en un solo resultado puede usar esas matrices combinando ORDENARPOR() con APILARV() Si le interesa la idea podría intentarlo y regresar con su avance o sus comentarios. También esperar un poco a que un Maestro le comparta alguna idea adicional. Saludines
  3. @Héctor Miguel Fíjate que el contar las palabras o los espacios, considero no es el desafío principal, sino la interpretación. Por ejemplo, LUNA puede ser nombre o apellido y como éste hay múltiples situaciones. Lo que me sorprende es el origen de los datos, por lo regular en los desarrollos el nombre o nombres y los apellidos se escriben en cuadros de texto independientes, algo que no pasa con los usuarios tradicionales cuando hacen su plantillas en las hojas de Excel, por lo regular los dejan juntos y luego ocurre que los necesitan separar para extraer por decir algo el número de identificación RFC, DNI, etc., concatenando algunas letras de los nombres y pasan este tipo de escenarios. Saludines.
  4. Saludos totales, Bueno, se tiene que editar un poco porqué el tratar de gestionar las múltiples variantes en los nombres aunque no es complicado hay que intentar ser creativos. =CONCATENAR(EXTRAE(A2, HALLAR("#", SUSTITUIR(A2, " ", "#", LARGO(A2) - LARGO(SUSTITUIR(A2, " ", "")) - C2)) + 1, LARGO(A2))," ",SUSTITUIR(A2,(EXTRAE(A2, HALLAR("#", SUSTITUIR(A2, " ", "#", LARGO(A2) - LARGO(SUSTITUIR(A2, " ", "")) - 1)) + 1, LARGO(A2))),"")) También se debería poder simplificar un poco: =LET( texto, A2, espaciosTotales, LARGO(texto) - LARGO(SUSTITUIR(texto, " ", "")), posicionSegundoEspacio, HALLAR("#", SUSTITUIR(texto, " ", "#", espaciosTotales - 1)), textoRestante, EXTRAE(texto, posicionSegundoEspacio + 1, LARGO(texto)), nombreRestante, SUSTITUIR(texto, textoRestante, ""), CONCATENAR(textoRestante, " ", nombreRestante) ) Y bueno, si nos ponemos creativos para anticipar opciones, se podrían reemplazar el "Y" y los "DE" con los "DEL" por "" para eliminarlos. Lo anterior es solo una idea, no es exacta para TODAS las posibles combinaciones, así por lo general hay que personalizar.
  5. Saludos cordiales. Antes de que cierren el tema, algo diferente que me parece oportuno comentar para los diferentes posibles lectores es que antes podías anidar efectivamente hasta 7 IF, ahora pueden ser hasta 64. Aunque no se recomienda pero se puede, y en esos casos es mejor combinar SI() con O() y también con Y()
  6. Para una posible ayuda le recomiendo que deje un libro de ejemplo que evite las conjeturas y las deducciones porque su redacción final es confusa. Trate de ser lo más explicito que pueda.
  7. Excelente propuesta Maestro @John Jairo V yo tuve problemas para aterrizar el cálculo en una sentencia.
  8. Mira intente otro ejemplo: El problema aquí no es crear esa macro que no esté considerando cada partido dos veces, ejemplo: una vez cuando el HOMBRE_01 juega con la MUJER_01 contra el HOMBRE_02 y la MUJER_02, y otra vez cuando el HOMBRE_02 juega con la MUJER_02 contra el HOMBRE_01 y la MUJER_01. Entonces sí, son efectivamente el mismo partido, por lo que deberíamos contarlos solo una vez y discriminarlos, ese considero es el detalle. En tu caso, estás buscando un “diseño de torneo de parejas mixtas”, donde cada hombre juega con cada mujer exactamente una vez, y cada pareja juega contra cada una de las otras parejas exactamente una vez. Esto es un problema más de matemáticas que de programación, y aunque existen algoritmos para resolverlo algunos son bastante complejos y pueden ser difíciles de implementar en VBA. Por ejemplo buscando en Internet lo tuyo se considera un problema de combinatoria y se podría resolver con un algoritmo conocido como “round-robin”, lo que habría que hacer es crearlo en VBA pero en el contexto de tu consulta sería de una manera un poco diferente. En lugar de seleccionar elementos de un grupo para procesar, estamos generando todas las combinaciones posibles de parejas de jugadores para los partidos de padel. Cada jugador juega con cada otro jugador exactamente una vez, lo cual es similar al concepto de “Round-Robin” de dar a cada elemento en un grupo una oportunidad equitativa. Así que en el adjunto que te mando inicie con HOMBRE_01 y sus combinaciones, luego HOMBRE_02 y sus combinaciones, sería seguirlo construyendo con los 10 que hacen falta. Pero solo es una idea, esperando te ayude a lograr lo que buscas ya que una vez entendido los ejemplos que mencionas de momento no puedo aportar algo adicional. Mixto.xlsb
  9. Mis mejores deseos para cada uno de los que participan en el foro, consultantes, miembros, maestros, moderadores, administradores... Y a cada quien que pase por aquí. ¡Feliz Año 2024! Saludines
  10. Tu libro Consulta de Afiliados AFP - PTO ILO.xlsx
  11. En base a lo explicado participo con la siguiente propuesta que debería poder cumplir con lo expuesto. Saludines. =CONCATENAR(DERECHA(D4,LARGO(D4)-HALLAR(" ",D4,HALLAR(" ",D4)+1)), " ", IZQUIERDA(D4,HALLAR(" ",D4,HALLAR(" ",D4)+1)-1)) Por favor solo cambia tu separador de argumentos de (;) a (,)