Saltar al contenido

Pasar datos de acuerdo a valor de celdas(columna)


Recommended Posts

publicado

Hola amigos, actualemnte estoy tratando de crear una macro que pase datos de una hoja a otra de acuerdo a un criterio y este el nombre del encabezado de cada columna.

por ejemplo de la hoja "origen " debo pasar todos ls datos de la columna que en la sprimeras celdas tiene el valor de "Codigo " y "Valor",sin embargo no sé como hacerlo.

estos valores no siempre estaran en la columna A ni D, pueden variar de ubicación.

mas o menos imagino, es que se deb tener un bucle que rrecorra las celdas desde la A1 hasta la ultima columna con datos que en este caso es D1) y buscar aquellas columnas que tengan en el encabezado los valores de "Codigo" y "Valores"

espero que puedan ve el libro que adjunto al presente y me puedan echar una mano.

desde ya quedo agradecido.

celim

pasar_ Hoja_Hoja.zip

publicado

Hola Celim..... manda tu archivo con mas datos... para mejor hacernos una idea, asi como el resultado que buscas con los datos que incorpores. Por ejemplo.... los datos que quieres conseguir... deben situarse todos los codigos en una columna y los valores en otra... o se deben colocar en la misma fila alternando un codigo con un valor....¿¿ ??

Un saludo

publicado

Gracias por tu tiempo Supervoro.En realidad el libro original en la hoja "Origen" tiene 35 columnas con datos de los cuales se deben pasar a la Hoja "Pasa" 15 , en ese sentido en el ejemplo adjunto solo algunas columnas. por que creo que si se desarrolla con pocas columnas tranquilamente se peude hacer con mas.

Adjunto de nuevo el libro con mas datos,el resultado que se busca esta en la hoja "Pasa", y si efectivamente los codigos deben estar en una columna (A) y el valor en entro columna (B)...

lo que busco es hacer esta tarea de manera automatica con macros y no con la función BuscarV por que deberia actualizar constantemente indicando el número de columnas, por que la ubicación de los datos van a variar.

Gracias espero que se hay entendido

pasar_ Hoja_Hoja.zip

publicado

Gracias Supervoro.

mil Gracias.

funciona yo diria muy bien,sin embargo he encontrado un problemita y es que cuando se ejecuta la macro pasa los códigos de los valores que no corresponden , por ejemplo en la celda A2 de la hoja "pasa", tiene el código del valor de la ciudad de Cuzco, es decir paso la celda "F2" de la hoja "Origen",cuando en realidad debio pasar la celda "A2". y el código que le corresponde en realidad es el 32 que esta en la celda "A109" de la Hoja "pasa".

en el libro que adjunto detallo el problema,espero que me puedas entender.

desde ya estoy agradecido con usted Supervoro.

Celim1.xls

publicado

Hola Celim.... para hacerlo rapido y no modificar el codigo... ( y si no te es ningun inconveniente ), la solucion mas rapida es insertar una columna en la hoja "Origen", de modo que los primeros datos aparezcan a partir de la fila B.

Si esto no fuese posible... pues nada... habria que cambiar el codigo,...... dime si esta rapida solucion te vale o sino... procederemos a modificar el codigo....

Celim1.xls

publicado

Hola, parte de este codigo puedes generarlo con la grabadora:

Sub TransGroups()
Application.ScreenUpdating = False
X = Hoja1.UsedRange.Rows.Count
Hoja1.[A1:D1].Copy Hoja3.[A1]
For Col = 1 To 31 Step 5
Hoja1.Cells(1, Col).Resize(X, 4).Offset(1).Copy Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1)
Next
Columns(2).Cut Columns(5)
Columns("B:C").Delete
Application.ScreenUpdating = True
End Sub[/CODE]

publicado

Gracias;SuperVoro Y Armando Montes...son unos genios.

de verdad cada día aprendo mas con ustedes..

Que Dios les bendiga..hoy y siempre...

publicado

si Supervoro..me sirve ..pero sería interesante que antes de jecutar se inserte la columna y una vez concluida se elimine .

eso sería genial.

así que he creado esta macro que hace ello, inserta la columna ejecuta la macro que me pasaste y elimina despues.

Sub prueba()
Sheets("Origen").Activate 'activamso la hoja origen
Range("A1").Select
Columns(1).Insert 'insertamos una columna
busca_Cod_y_Valor'ESTA ES LA MACRO QUE ME ENVÍO SUPERVORO
Sheets("Origen").Activate
Range("A1").Select 'seleccionamos la celda a1
Columns(1).Delete 'y eliminamos la columna
End Sub[/CODE]

Si tienes alguna sugerencia par mejorar te agradeceré.

La solucion brindada por Armando es buena sin embargo las columnas de los datos no siempre tendran esa distribución ni ese orden,entonces la macro debe buscar los datos en función a los encabezados.

mil gracias por su tiempo.

saludos

publicado

Hola denuevo Celim

.... nada que objetar... si no te sirve la macro que el maestro Armando nos sugirio,y con la nuestra te apañas añadiendo primero y eliminando despues esa columna....Perfecto

Encantado de haberte podido ayudar....

Un saludo

  • 2 weeks later...
publicado

Buen día, amigos .

tengo un problema conla macro al acoplar a mi archivo original y es que no sé como hacer para que pase solamente copie los valores, y no las formulas....

mil gracias...

publicado

Range("turango a copiar").Select

Selection.Copy

Range("donde copiar").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

publicado
Range("turango a copiar").Select

Selection.Copy

Range("donde copiar").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

pegar como valores :D

espero que te funcione :D

publicado

Gracias Jaz,sin embargo.

cuando trato de aplicar a la macro que se encuntra en el archivo excel que se encuentra en el archivo "Celim1", # 6.

no puedo acomodarlo...

Mil Gracias

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.