Macro en Excel que copie los datos de una tabla uno por uno en una misma celda

Explico mi situación:

Tengo un documento en Excel, en el que a mano tengo que colocar las fichas de los vendedores una por una para generar sus datos, guardar la pestaña en PDF y luego enviar un correo con sus datos y el PDF adjunto. El proceso de guardar el documento, adjuntar el archivo y enviar el correo ya lo ejecuta una macro, no tengo problema con eso, lo que sucede es que se pierde mucho tiempo colocando ficha por ficha ya que son demasiados vendedores. Lo que necesito es una macro que de una tabla que tengo en otra pestaña llamada "REF FICHAS" coloque las fichas en la celda "N10" de la pestaña "RIG ANUAL" y vaya ejecutando la macro de enviar el correo una por una. Adjunto imagen.

1 Respuesta

Respuesta
3

Confírmame lo siguiente, en la hoja "REF FICHAS" tienes todas las fichas; y en la hoja "RIG ANUAL", en la celda N10 quieres poner ficha por ficha.

Si es así, ejecuta la siguiente macro

Sub Colocar_Fichas()
'Por.Dante Amor
    Set h1 = Sheets("REF FICHAS")
    Set h2 = Sheets("RIG ANUAL")
    For j = 1 To h1.Cells(1, Columns.Count).End(xlToLeft).Column Step 2
        For i = 2 To h1.Cells(Rows.Count, j).End(xlUp).Row
            ficha = h1.Cells(i, j).Value
            h2.Range("N10") = ficha
            '
            'en esta línea poner el nombre de tu macro
            Call Enviar_Correo
            '
            '
        Next
    Next
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Excelente estimado Dante, funciona a la perfección,  justo lo que necesitaba, muchisimas gracias!!

Pero creo que la idea de hacer las cosas es aprender y si no es molestia podrías explicarme como funciona la parte que indica que daba ir copiando una por una y que no tome las columnas vacías ya que en la tabla las fichas están en columnas intercaladas.

Quedo atento a comentarios.

Saludos.

Según tu imagen las fichas van saltando de 2 en 2 columnas, entonces con esta instrucción, empieza en la columna 1 (A) hasta la última columna con datos y va saltando de 2 en 2 (Step 2)

    For j = 1 To h1.Cells(1, Columns.Count).End(xlToLeft).Column Step 2

.

'S aludos. Dante Amor. Recuerda valorar la respuesta

.

Si la tabla comenzara en la columna 3 (C), ¿se cambia el numero (1) que esta después de la igualdad y el que esta luego de "Cells"?

¿Quedaría así?

  For j = 3 To h1.Cells(3, Columns.Count).End(xlToLeft).Column Step 2

Y si la celda donde se colocan las fichas no esta en otra Hoja sino en la misma donde se encuentra la tabla como quedaría?

Gracias de antemano.

Con mucho gusto te ayudo con todas tus peticiones.

Valora esta respuesta y crea una nueva pregunta por cada petición. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.

Sal u dos

¡Gracias! 

Ya voy a crear la otra pregunta pero referente a esta misma macro, 

Si la tabla comenzara en la columna 3 (C), ¿se cambia el numero (1) que esta después de la igualdad y el que esta luego de "Cells"?

¿Quedaría así?

  For j = 3 To h1.Cells(3, Columns.Count).End(xlToLeft).Column Step 2

El primer número corresponde a la columna inicial

El segundo número corresponde al número de fila donde tienes los encabezados

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas