Jump to content

tese1969

Members
  • Content Count

    1,507
  • Joined

  • Last visited

  • Days Won

    4

About tese1969

  • Rank
    Advanced Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Buenas Tardes

     

    Una pregunta eres nueva en este foro.

     

    ¿como dejo un comentario sobre una duda con una macros?

     

  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 6254 personas - Aprender Excel - Total: 4.7 / 5