Jump to content

tese1969

Members
  • Content Count

    1,507
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by tese1969

  1. Y digo yo, querido maestro, que quizás también para haber aprendido algo. Más que consultar, me da que tiene el Foro como su tutor privado.... En fin, gusto en saludarte, Macro Tese
  2. Buenas, Asaco En fichero adjunto te dejo algo que quizás se parezca a lo que necesitas. He quitado las fechas de revisión de la columna "i" para que al ponerlas de nuevo veas lo que sucede. Ya me contarás. Un saludo, Tese Control automatico de herramienta_tesev1.rar
  3. Veo que tienes un código que hace más o menos lo que deseas (aunque los datos que incluye no son los mismos que tienes en tus columnas de "facturasguardadas") He modificado la línea de la macro "Copiar" donde aparecía una hoja con nombre "facturacion" por "facturasguardadas" y tras ejecutarla incluye los datos en la siguiente línea vacía. Si eso funciona, imagino que sería simplemente modificar las celdas que esa macro toma como referencia por las que tú tienes señaladas en naranja. Échale un vistazo no vaya a ser que no estuviera funcionando bien por ese simple cambio de nombre. Un saludo, Tese
  4. Buenas, Adjunta simplemente un archivo con la estructura real, y con pocos datos (pueden ser ficticios) para que ocupe poco. En base a esa estructura se podría incluir el código y después tú lo pasarías a tu archivo real. Un saludo, Tese
  5. Buenas, txaler La tabla puedes tenerla en columnas alejadas de tus datos dinámicos y ampliar los valores por ejemplo así: =SUMAPRODUCTO(--($F$2:$F$2000=K14);--($E$2:$E$2000="OK");--($C$2:$C$2000<>$C$3:$C$2001))[/CODE] He modificado el rango hasta la fila 2000, pero puedes ampliarlo a voluntad para que recoja siempre los datos. En principio, debería funcionar Un saludo, Tese
  6. Buenas, txaler Efectivamente, se me olvidó incluir el borrado previo de esos datos antes de incluirlos de nuevo..., pero obviamente después de haber visto la "sencilla" y por tanto, mejor solución del maestro Gerson, creo que merece la pena adaptarla. De todos modos, más que utilizar un botón te bastaría con incluir la fórmula en dichas celdas, y no tendrías que ejecutar nada. Al modificar los valores, se iría actualizando. Al maestro Gerson sólo me queda felicitarle por su bendita "locura" y sus conocimientos de las funciones, de los cuáles carezco....yo todo lo intento con código... Un saludo a todos, Tese
  7. Bueno, pues al final se me ha ocurrido una forma un poco retorcida, pero parece que funciona. He creado un nuevo módulo con el código y como verás toma como "muleta" la "Sheet3" para organizar ciertos datos, aunque luego todo desaparece. Si en tu fichero real no tienes esa hoja, créala....jejeje En fin ya me contarás.....He probado a cambiar alguno de los Nao iniciados por OK y parece que lo hace correctamente. Un saludo, Tese recorrerCollection_Tesev1.rar
  8. Buenas a todos, Creo que lo que solicita txaler está bastante claro y no creo que la solución de Walter1702 sea lo que necesita, más que nada porque no está teniendo en cuenta cúal es el concepto de Grupo Funcional y Tabelas "OK" por grupo funcional. No se trata de sumar cuántas veces aparece en la columna un "Grupo Funcional" (el resultado de 5 en EC_Contrato explicaría el error), sino cuantos "bloques" (formados por la misma tabela de un mismo grupo funcional) existen en dicha columna. En el segundo asunto la base es la misma (bloques), pero con la singularidad del valor de la columna (OK ó no), contándose dicho bloque si la tabela tiene todos los valores a "OK". Otra cosa es que sea más o menos sencillo ofrecer una solución, pero dado que el Maestro Gerson está en el asunto, más pronto que tarde tendrás lo que buscas . Por cierto, aprovecho para saludarle... Un saludo y confianza.......que todo llega
  9. Pues GermanZAG, te diré que en este caso la aportación de rogman41 (Target.Select) es más sencilla y eficaz que la que yo te aporté, pues no necesitas crear la variable ni después llamarla. La clave es que al ser un código de evento (en este caso, que se modifica algo de un rango determinado), Target ya está localizado en el momento que se inicia el código y por tanto, puedes seleccionarlo directamente haciendo referencia a él. En otros casos, por ejemplo al buscar en una fila o columna un dato determinado, el crear una variable que recoja su "dirección" (Address) puede ser más útil, para después poder usarla a lo largo del código. Como ves, es cuestión de adaptarte a lo que cada situación requiera y en este caso rogman41 nos indicó la más adecuada. Un saludo a todos, Tese
  10. Buenas, GermanZAG Por la estructura de tu código no termino de ver muy clara cuál es la funcionalidad que buscas, pero te diré que al utilizar un evento como el "Worksheet_Change" cada vez que una celda cambia el valor se vuelve a disparar dicho evento, de ahí que si se modifican varias en la ejecución del código se ralentice todo el proceso. Esto lo puedes solucionar incluyendo después del primer "If" de tu código Application.EnableEvents = False[/CODE] y antes del último "If" [CODE]Application.EnableEvents = True[/CODE] En cuanto a localizar la celda editada, sería tan fácil como recoger su dirección en una variable, algo como esto, también después del primer "If" [CODE]donde = Target.Address[/CODE] Y después solo necesitas volver ahí así [CODE]Range(donde).Activate[/CODE] Aunque he visto que también eliminas el contenido de un rango, tras buscar "1". Se trataría, quizás, de eliminar el rango sin tener que buscar el "1" y después situarse en la celda editada con la línea que te he incluido. En fin, espero que te sirva de ayuda. Un saludo, Tese
  11. Buenas, Drosophila Pues simplemente puedes incluir el rango a recorrer directamente en el código, es decir, en vez de Range("c2:c" & Range("c30000").End(xlUp).Row)[/CODE] directamente.... [CODE]Range("c2:c30000")[/CODE] 30.000 serían las líneas que recorrería, por lo que si tu rango real es de 500 aproximadamente, pues incluyes ese número y pasará por todas ellas.......las vacías y las no vacías. y también deberías eliminar la línea donde se comprueba si está vacía para que pare. [CODE]If dato = "" Then GoTo Fin:[/CODE] De este modo, ya lo tendrías más adaptado. Un saludo, Tese
  12. Buenas de nuevo, Drosophila Pues en el ejemplo que te adjunto lo podrás hacer de ambas maneras. Como ves, he aumentado el número de datos en la columna "C" para que puedas comprobar cómo funciona cuando incluyes "Si" ó "No" manualmente en la columna "F". Con el botoncito de "Actualizar" lo que haces es eliminar los datos de la columna "C" cuando en "F" aparece el "No". El código de este último botón está estructurado para que recorra la columna "C" y pare cuando encuentre la primera celda vacía, por lo que si en tus datos reales existen esas celdas vacías entre los datos habría que modificarlo. Espero que te pueda servir para algo.... Un saludo, Tese Ejemplo_act_Tesev1.rar
  13. Buenas, Sergio Entiendo que una línea, por ejemplo, del tipo colorcelda = Range("a2").DisplayFormat.Interior.ColorIndex[/CODE] no estaría sujeta a ninguna problemática por el número de formatos condicionales, pues en el fondo lo único que recoge es el color visible en esa celda, sin importar si se debe a uno u otro de estos diferentes formatos. Un saludo, Tese
  14. Buenas, Drosophila ¿Tendrías todos los datos en C y en F y querrías ejecutarlo de una vez? ó ¿quieres que según vas incluyendo en F "Sí o No" te elimine el valor de C? Un saludo, Tese
  15. Buenas, a Sergio y al resto, con dedicatoria especial para mi amigo Gerson Creo que lo que necesitas lo puedes hacer más o menos sencillo con "DisplayFormat", que fue incluido en la versión 2010 y que hace ya varios meses me permitió ofrecer ayuda a un usuario de este foro. Sería cuestión de adaptarlo a lo que quieres, pero al menos tienes un ejemplo de cómo funciona esa propiedad. https://www.ayudaexcel.com/foro/threads/contar-celdas-por-colores-con-formato-condicional.36337/#post-175716 Un saludo, Tese
  16. Buenas, ¿A qué te refieres con detectar una discrepancia? ¿Las líneas las incluyes 1 a 1 ó tienes todo el archivo y necesitas comprobarlo en un momento dado? Dependiendo de lo que necesites se podría estructurar de una manera u otra. Un saludo, Tese
  17. Buenas, Creo que con un código muy simple y sencillito como el que te adjunto en el archivo lo logras. He dejado tus columnas a la derecha para que compares cuando lo hayas ejecutado. Desconozco tus conocimientos sobre macros, pero por si acaso, para ejecutarla pulsa Alt+F8 y elige la que aparece. Ya me contarás.... Un saludo, Tese Ejemplo_Tesev1.xls
  18. Así, maestro, parece que va.... Application.CalculateFull[/CODE] A mí al menos me lo actualiza, pero vete tú a saber por qué... Cuídate mucho.... Tese
  19. Buenas, symonky28 Te adjunto una primera versión para que le eches un ojo y veas si se acerca a lo que necesitas. Pulsa en el cuadro azul que he creado para ejecutar la macro. Un saludo, Tese BATERIAS CONTROL_Tesev1.rar
  20. Buenas, Una forma simple de depurarla es incluir en una sola línea los distintos "casos" que tienen el mismo resultado, como por ejemplo: Case "PC", "PD", "RJ" .Color = RGB(254, 249, 214)[/CODE] En cuanto a lo de eliminar el formato y dar error, no sé muy bien a qué te refieres. Lo poco que he trasteado no me ha generado ningún error. Intenta describir mejor a que te refieres. Un saludo, Tese
  21. Pero en tu ejemplo, aparece benetti en segundo lugar de la ventana de códigos y sin embargo tú hablas de que es la batería 1. Intenta, por favor, adjuntar un nuevo archivo ejemplo con parte del resultado buscado, para terminar de entender lo que necesitas. Incluye más datos en otras líneas de MOVIL y completa el resultado esperado en alguna de ellas. Un saludo, Tese
  22. ¿Pero necesitas que lo haga solo en "móvil 100" o en cada una de las líneas? Si he entendido bien, tú le darías manualmente el dato que debe buscar para cada una de las 3 baterías. ¿Es así? Un saludo, Tese
  23. Buenas, No entiendo muy bien qué es lo que realmente necesitas. ¿Lo de buscar "benetti" es por el caso en concreto que aparece en tu ejemplo ó tendría que buscar determinado dato según aparezcan en la tabla que tienes a la izquierda? Intenta explicar un poco mejor cómo vas a usarlo para estructurar el código. Un saludo, Tese
  24. Buenas, Lo que pides es muy sencillito, pero debes leer las normas del foro y te darás cuenta de que te falta algo para que alguien te ayude. (que luego los administradores nos persiguen...) Además, es necesario que expliques bien en qué condiciones trabajaría dicha macro, es decir, si van variando los valores de ese rango y quieres que lo detecte automáticamente o la ejecutarías tú manualmente.....etc.... Un saludo, Tese
  25. Lee las normas del foro y te darás cuenta de que te falta algo para que alguien te pueda ayudar. Un saludo, Tese
×
×
  • Create New...

Important Information

Privacy Policy