Concanación y formato en Excel

Resuelto
Luana33 Mensajes publicados 13 Estado Miembro -  
Luana33 Mensajes publicados 13 Estado Miembro -
Hola,

tengo un pequeño problema en Excel.
Me gustaría concatenar los valores de 3 celdas en una sola manteniendo el formato inicial de las celdas base, en particular el color de la fuente original.

En otras palabras, mi primera celda contiene un texto en rojo, la segunda en verde y la última en amarillo.
Quisiera crear una celda que recoja los valores de estas 3 celdas pero también el color de la fuente de cada una de ellas.

Muchas gracias por vuestra ayuda,

Lou

17 respuestas

  1. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    No es muy tranquilizador: "Rigoureusement impossible"??? ¿De verdad?

    Sin embargo, a priori parece relativamente sencillo; solo quiero añadir en la función de concatenación de valores una opción que me permita conservar también el formato de las celdas originales...

    Es imposible hacerlo a mano, debo manejar más de 300 tablas de 300 celdas cada una...

    ¿Existe algún otro programa que me permita hacer esto?
    0
    1. Raymond PENTIER Mensajes publicados 58226 Fecha de registro   Estado Colaborador Última intervención   17 488
       
      Imagino que sí.
      Pero entonces ya no sería un simple software de Ofimática, sino un lenguaje de Programación, lo que te obligaría a cambiar de foro.
      0
    2. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
       
      Hola Raymond,
      Tienes razón en gran medida.
      Además, incluso con VBA, es factible, pero con tantas condiciones que deben cumplirse que se convierte en un rompecabezas para el usuario...
      0
  2. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
     
    Hola,
    Parece posible en Excel, pero habrá que pasar por una función VBA.
    Usted dice...
    --
    Atentamente,
    Franck P
    0
  3. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    Hola y gracias por la rapidez de vuestra respuesta,

    es reconfortante pero mis habilidades en VBA son muy limitadas...

    Aun así intentaré buscando por ahí. Pero si alguien ya se ha encontrado con este problema y lo ha resuelto, me encantaría intercambiar para entender el procedimiento...

    Muchas gracias,
    0
  4. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    Aparentemente el problema es complejo y, para afrontarlo, mis habilidades en VBA son extremadamente limitadas. Reconozco que realmente estoy teniendo muchísimas dificultades...

    He visto otros mensajes sobre el tema y alguien había proporcionado una solución vía VBA en un sitio específico, pero ya no está disponible...

    En fin, no sé muy bien cómo hacerlo...

    ¿Alguien sabe dónde podría buscar indicaciones sobre el problema o indicarme otro software para tratarlo?

    Muchas gracias por adelantado...
    0
  5. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
     
    Hola,

    Ya debes saber que lo que pides no es realizable con una función personalizada; solo puede ser un procedimiento llamado captura por captura o bien en un evento (modificación de una celda, activación de una hoja, por ejemplo).

    Aquí tienes un procedimiento que había realizado hace un tiempo. El archivo de ejemplo parece complejo, pero es por que hay varios ejemplos de uso.

    Para probar:
    Las fórmulas de concatenación están en H3:H8; seleccionas ese rango y ejecutas el procedimiento RecupFormatCel, eso es todo.
    Yo recupero negrita, subrayado, color.

    Actúa sobre el rango seleccionado que contiene las fórmulas de concatenación y puedes elegir dónde colocar la concatenación respecto a la fórmula gracias al offset (0 écrase la fórmula).

    Lo mejor es usar un offset de 1 y ocultar la columna con las fórmulas. Así siguen siendo editables.
    También añadí la posibilidad de insertar saltos de línea con el código "vbLf" insertado en la fórmula.

    http://www.cijoint.fr/cjlink.php?file=cj201107/cij2AlrPwi.xls

    Mira si te sirve y no dudes en hacer preguntas, no estoy seguro de haberlo explicado bien ;-)

    eric
    0
  6. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    Muchísimas gracias por tu respuesta...
    Realmente es genial, solo tengo algunas preguntas...

    En cuanto a la explicación, debe ser muy clara pero mis habilidades limitadas en VBA hacen que me cuesta entender...

    Entonces, si hago un resumen de la forma en que he entendido las cosas...
    La macro utiliza la fórmula concatenada para recuperar el formato de las celdas base, ¿es eso?
    El archivo funciona muy bien pero tengo solo algunos problemas para la adaptación: ¿cómo obtener la macro para adaptarla a mis tablas?, ¿tengo que, como tú, especificar en la macro las celdas que contienen la fórmula concatenada base y las celdas de destino? ¿O puedo simplemente seleccionarlas para activar la macro y obtener el resultado?

    Por otro lado, no entiendo muy bien la idea de partida... ¿Lo que quieres decir es que estoy obligada a crear un comando y que no puedo escribir directamente una fórmula simple, es eso?

    Gracias de nuevo, de verdad, gracias...
    0
    1. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      He hecho este procedimiento para que sea general, y para eso debemos pasarle parámetros.

      Quizás tu caso sea particular y podamos fijar estos parámetros de forma fija.
      Necesitaría un archivo de ejemplo (cijoint.fr y pegar aquí el enlace proporcionado) y que describas con precisión qué hay que hacer, y en qué acción.
      eric
      0
  7. Sylvlau
     
    Hola,

    Debes copiar su código (copiar pegar) en tu archivo y adaptarlo a la zona que quieres procesar. Pero acabo de ver su código (Alt-F11), ¡hay que adaptarlo a tu caso!
    Para ejecutar la macro, \herramientas \macro...

    Si de verdad te interesa, reemplaza "Sub RecupFormatCel()" por "Function RecupFormatCel()" y la macro se convierte en una función que puedas reutilizar en una celda, tipo "=Recupformatcel()"

    ¿Me entiendes?

    Saludos
    0
    1. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      Me permito corregir esto:
      cambiar "Sub RecupFormatCel()" por "Function RecupFormatCel()" y la macro se convierte en una función que puedes reutilizar en una celda, tipo "=Recupformatcel()"
      no, una función devuelve un valor y nunca puede modificar su entorno (color, formato, etc)

      eric
      0
  8. Sylvlau
     
    Hola,

    Mea culpa. Tienes razón, Eric. Por lo tanto, queda hacer que la macro funcione sobre una selección antes de llamarla.

    Buenas noches.
    0
  9. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    Hola,

    Gracias por esta intervención Sylvain, supongo...

    Querido Eric,

    adjunto un extracto de uno de mis cuadernos de Excel con al final la concatenación simple realizada (sin los colores de la fuente)
    http://www.cijoint.fr/cjlink.php?file=cj201107/cijhSxDBHS.xls.

    Gracias de antemano por tu ayuda...

    Buenas noches o buenas tardes,

    Luana.
    0
  10. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    Perdón, quizá olvidé precisar las acciones que deseo que desencadenen la macro.

    Sería genial que se disparara en el momento de abrir la hoja en cuestión.

    Gracias de nuevo...

    Luana.
    0
    1. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      Hola, Primero que nada, confírmame que tus colores están puestos manualmente y no por formateo condicional. Por otro lado, quizá podamos simplificar tu trabajo... - Si cada una de las 3 tablas de números genera en ese orden siempre P, M y A, podemos obtener los colores directamente de los números y prescindir de las tablas intermedias. - Si existe una regla para los colores de los números, quizá se pueda automatizar esa parte. Así que si quieres, explica mejor cómo construyes tu tabla y también si las tablas pueden variar en tamaño y/o posición, y si siempre son 3, y veremos qué es posible hacer. eric edit: Sería genial que se disparara al abrir la hoja en cuestión. Ok, pero has hablado de varias hojas. Habría que que los nombres de las hojas implicadas tengan una particularidad que las demás no tengan. Por ejemplo, que su nombre empiece por una D.
      0
    2. Luana33 Mensajes publicados 13 Estado Miembro 1
       
      Hola, Sí, los colores son condicionales, pero solucioné este problema con el software SAS, exporto los resultados a Excel y los valores ya están coloreados cuando llegan a Excel. Creo que es equivalente a hacerlo de forma manual... Con respecto a la tabla final, efectivamente siempre comprenderá las 3 letras PMA, y espero que cada una pueda colorearse con el color correspondiente a cada uno de los 3 cuadros iniciales (los que incluyen los valores si es posible). En cada hoja, solo hay 3 tablas que voy a disponer de la misma manera para facilitar la operación. Tienes razón, tengo varias hojas, alrededor de 7 por libro, cada una con 3 tablas y para cada una de ellas quiero realizar la misma operación de concatenación. Ok para el D si es necesario... Espero haber sido lo suficientemente claro; si falta alguna información, sigo totalmente disponible. Gracias...
      0
  11. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
     
    ¡Hola!

    No debería estar demasiado lejos del objetivo, solo funciona con los colores manuales.
    Todas las hojas cuyo nombre empieza por D se procesan al activarlas.

    Al abrir el archivo el resultado está vacío.
    Selecciona Hoja2, luego Data1, aparece el resultado. Será necesario hacerlo en cada actualización que desees si has modificado colores.

    En el módulo init he agrupado las variables esenciales a modificar si tus tablas evolucionan un poco (número/tamaño/posición).
    Como extra, al seleccionar un resultado las celdas de datos correspondientes quedan resaltadas.

    http://www.cijoint.fr/cjlink.php?file=cj201107/cijd7j8Mot.xls

    Pruébalo a fondo, es mucho más fácil volver a ello dentro de 4 días...

    Una reflexión: ante la ausencia de valor, ¿no habría sido más legible conservar la letra en tinta blanca? Seguirían manteniendo siempre su posición (y facilitaría el trabajo.. ;-) )

    eric
    0
  12. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    Es realmente genial, eres un genio, funciona increíblemente…
    Los probé en 3 cuadernos diferentes y es perfecto…

    Yo que estaba deprimido después del “absolutamente imposible” y del “calvario para el usuario”…

    Tengo una propuesta para ti, ¿no quieres trabajar en la investigación? Creo que podría encontrar algo bastante fácilmente para ti…

    Muchas gracias, me salvas la vida…

    Te debo una línea de agradecimiento…
    0
    1. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      no exagéramos... ;-)
      0
  13. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    Excelente fin de semana...
    0
    1. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      Gracias, tú también.
      0
  14. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    Juste pour la réflexion,

    Oui, effectivement, tu as raison...
    En plus dans ces cellules, j'ai normalement des valeurs de 1, j'aurais pu les passer en blanc directement sous SAS...

    Désolée, à l'origine, je pensais que ca allait être beaucoup plus facile que cela... :-)) Para la reflexión,

    Sí, efectivamente, tienes razón...
    Además, en estas celdas, normalmente tengo valores de 1, podría haberlos dejado en blanco directamente en SAS...

    Perdona, al principio pensé que sería mucho más fácil que eso... :-))
    0
    1. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      Aquí está lo que sale con PMA todo el tiempo pero tinta blanca sobre los valores ausentes.
      Si eres tú quien elimina los 1 puedes fácilmente reemplazar la prueba ="" por =1
      No olvides marcarlo como resuelto cuando llegue el momento
      http://www.cijoint.fr/cjlink.php?file=cj201107/cijYRWpggn.xls
      eric
      0
    2. Luana33 Mensajes publicados 13 Estado Miembro 1
       
      Perfecto, muchas gracias, casi he terminado casi todas las operaciones...
      Me has ahorrado 1 mes de trabajo innecesario...

      Buenas noches...
      0
  15. Raymond PENTIER Mensajes publicados 58226 Fecha de registro   Estado Colaborador Última intervención   17 488
     
    Hola Lou.

    Como te das cuenta, el trabajo importante realizado por eriiic ha requeridode el uso del lenguaje VBA para escribir macros.
    Por lo tanto entiendes por qué a tu solicitud "me encuentro con un pequeño problema en Excel. Me gustaría concatenar los valores de 3 celdas en una sola manteniendo el formato inicial de las celdas" respondí espontáneamente "De ninguna manera. Absolutamente imposible", ya que de hecho las fórmulas, funciones y comandos clásicos de Excel no permiten lograrlo.
    Y confieso que pensé que, incluso con macros, no podríamos hacerlo!

    Cordialmente.
    --
    Qué bien, la jubilación! Sobre todo en las Antillas ... :-)
    ☻ Raymond ♂
    0
  16. Luana33 Mensajes publicados 13 Estado Miembro 1
     
    De acuerdo, y bien, gracias Raymond por tu respuesta...

    Simplemente no creo que haya que ser tan categórico cuando no se conocen los procedimientos para realizar una acción.

    En este caso, simplemente es posible decir: sé que no se puede realizar esta acción mediante las funciones clásicas de Excel y no creo que sea posible llevarla a cabo mediante el uso de macros.

    C está siempre mejor que un “de ninguna manera”, estrictamente imposible...
    Teóricamente, todo es posible...

    Por último, muchas gracias de todas maneras por haber considerado mi problema...

    Buenas noches...
    0
  17. Raymond PENTIER Mensajes publicados 58226 Fecha de registro   Estado Colaborador Última intervención   17 488
     
    De ninguna manera.
    Riguroso imposible.
    --
    ¡Está bien, la jubilación! Sobre todo en las Antillas ... :-)
    ☻ Raymond ♂
    -1