Excel crear un macro que al ingresar en una celda de la hoja1 un dato lo ubique en la hoja2 y copie los datos de la hoja1.

Tengo un inconveniente tengo dos hojas de excel, en la hoja 1 tengo celda donde se ingresaran datos ("c10:ah10") que deberán copiarse a la hoja 2, pero estas deberán copiarse ingresando un dato en la celda q6 de la hoja1 y buscarlo en la hoja 2 columna "G" si conside deberá llenarse solo esa fila que con sida con el dato de la hoja1. Ise un macro pero solo me marca la fila en cuestión no se como ingresar los datos de la hoja1 en la fila seleccionada.

Sub CopiarDatos()

Set h1 = Sheets("Hoja1")
Set h2 = Sheets("hoja2")

If Range("n6").Value = "enero" Then
h2.Select

For i = 1 To h2.Range("g" & Rows.Count).End(xlUp).Row
If h2.Cells(i, "g") = h1.Range("q6") Then
bus = h2.Cells(i, "g").Select
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 195)).Select

MsgBox "DATOS GUARDADOS"
End If
Next

Else
MsgBox "EL MES NO ES EL CORRECTO"
End If
End Sub

1

1 Respuesta

4.665.500 pts. Sancho, si los perros ladran ...

H o l a:

Te anexo la macro. Te faltó mencionar en qué columna se tiene que pegar la información. En la macro le estoy diciendo que pegue la información en la columna "A" en esta instrucción:

H2. Cells(b. Row, "A"). PasteSpecial xlValues

Lo que hace es copiar el rango "C10:AH10" y pegarlo en la fila donde encontró el dato empezando a partir de la columna "A".

Si quieres que se pegue a partir de otra columna, cambia "A" por la letra de la columna.

Sub CopiarDatos()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    If h1.Range("N6") = "enero" Then
        Set b = h2.Columns("G").Find(h1.[Q6], lookat:=xlWhole)
        If Not b Is Nothing Then
            h1.Range("C10:AH10").Copy
            h2.Cells(b.Row, "A").PasteSpecial xlValues
            MsgBox "DATOS GUARDADOS"
        Else
            MsgBox "El dato no se encontró"
        End If
    Else
        MsgBox "EL MES NO ES EL CORRECTO"
    End If
End Sub

Muchas gracias me ejecuto bien pero en este caso tengo los doce meses del año cada mes con datos iguales ejemplo:

a   enero

b  enero

c  enero

d  enero

a  febrero

b  febrero

c  febrero

d febrero...

lo que nesecito es que se grave no solo en la fila que tiene los mismo datos sino en la fila que tenga el mismo mes.

H o l a:

Ahora no entiendo cómo quieres que se pase la información.

Puedes ilustrar con un ejemplo. Pon dos imágenes, una de tu hoja1 con los datos y otra imagen de la tu hoja2, en la hoja2 tienes que marcar con color amarillo los datos que pasaste de la hoja1.

Sigo sin entender lo que necesitas.

Puedes ilustrar con un ejemplo. Pon dos imágenes, una de tu hoja1 con los datos y otra imagen de la tu hoja2, en la hoja2 tienes que marcar con color amarillo los datos que pasaste de la hoja1.

Procura que en cada imagen se vean las filas y las columnas de excel.

También dime cuál imagen corresponde a la hoja1 y cuál corresponde a la hoja2.

Hay se puede ver el ejemplo pero si te das cuenta la hoja 1 se ingresar los datos y los parámetros de búsqueda en las celdas con marco rojo las cuales serán buscadas en la hoja 2 si conside el dato con el mes se ingresaran los datos de la hoja1 a esta fila que contiene ambas concidencias... GRACIAS

Disculpa, pero sigo si entender.

Tus imágenes no son claras.

Te pedí 2 imágenes, una imagen de la hoja1.

La otra imagen de la hoja2.

Tienes que poner qué datos de la hoja1 estás pasando a la hoja2 y en dónde los quieres.


En tu ejemplo tienes Enero y Eleazar, ¿pero qué datos hay que pasar a la hoja2? ¿Y en dónde se tienen que poner?

En tu imagen no se aprecia cuáles datos de la hoja1 se están pasando a la hoja2.

Completa el ejemplo con Enero y Eleazar.


En ambas imágenes se tienen que ver las filas y las columnas de excel:

Sal u dos

H o l a:

En esta parte de la macro le tengo que poner en cuál columna y cuál fila tiene que hacer el pegado:

H2. Cells(b.Row, "A"). PasteSpecial

Pero si no pones las imágenes con las filas y con las columnas no puedo saberlo, entonces no puedo actualizar la macro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas