Jump to content

adaptar datos con macro


Recommended Posts

Bueno gente buenas noches

Mi duda es la siguiente tengo unos datos nuevos que genera un software pero los genera muy diferentes como los trabajamos la idea es adaptar esa misma informacion al formato que ya manejamos , lo esplico mejor en el aejmplo que subo

de antemano muchas gracias si me pueden colaborar

EJEMPLO PARA MACRO.rar

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

Hola Iowrider.... Perdona por tanta demora en la respuesta,pero.. he estado mucho tiempo desconectado de todo esto y no he leido hasta ahora tu mensaje... ni el de el amigo jhonleonardo... si sigue interesandote la explicacion... solo dimelo y te la hare

Link to comment
Share on other sites

Hola Jhonleonardo... en oprimer lugar disculparme por no responder con antelacion...

No se si aun te interesa la solucion a tu problema... si es asi... mandame el archivo que tienes con los datos que genera el sofware nuevo he intentare darle solucion,...

Y... lo dicho... pido perdon

Salvador.

Link to comment
Share on other sites

Estupendo amigo lowrider..... te paso la macro con los comentarios añadidos para la mejor comprension.... De todos modos... creo que la mejor manera de aprender sobre las macros es ejecutarlas en el modo paso a paso e ir viendo como se van ejecutando las instrucciones sobre la hoja de calculo.

Para cualquier duda... no dudes en preguntar...

Un saludo desde Valencia ( España )

Sub pasar_datos()

Application.ScreenUpdating = False
Range("A3:Q3").Select 'Selecciona el rango entrada de datos...
Selection.Copy
Range("A5").Select '...para pasarlo al destino definitivo
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
For A = 1 To 30 ' con este bucle le asigna a "P"(Preguntas)numeros del 1 al 30
Cells(4, 17 + A) = "P" & A
Next A
[Q3].Activate ' Ahora nos situamos en la fila donde se encuentran los "OK"....( fila 3)
ARRIBA:
ActiveCell.End(xlToRight).Select '...y desde Q3 nos desplazamos hacia la derecha hasta
' tropezar con el primer "OK"

If ActiveCell.Column > 200 Then ' en el caso de que no hubiese ningun "OK" ...
[A1].Activate ' activa la celda A1 y salimos de la rutina
Exit Sub
End If

CELDA = ActiveCell.Address '... una vez encontrado el primer "OK", toma nota de la direccion de dicho "OK" (variable CELDA)
VALOR = ActiveCell.Offset(-1, 0).Value '... toma nota del valor que hay en la celda inmediatamente superior (variable VALOR)....
ColumnA = ActiveCell.Column 'y del nº de columma
Cells(1, ColumnA).Activate ' ... se posiciona el la primera celda de arriba ( donde esta el nº de Pregunta )
PE = ActiveCell.Text '... y toma nota del nº de Pregunta ( variable PE )

[4:4].Find(WHAT:=PE, LOOKAT:=xlWhole).Activate '...Ahora en la columna nº4,busca el nº de pregunta (variable PE)
ActiveCell.Offset(1, 0) = VALOR ' ... y en la celda inmediatamente inferior anota el valor que habia tomado antes (variable VALOR)
Range(CELDA).Select ' Ahora vuelve a la posicion donde encontro el primer "OK" (variable CELDA).....
GoTo ARRIBA ' .... para desde alli volver a la misma rutina de encontrar otro "OK" en la fila3
End Sub[/CODE]

Link to comment
Share on other sites

Estimado, muy agradecido. En especial con eso de

[4:4].Find(WHAT:=PE, LOOKAT:=xlWhole).Activate

Nunca visto para mí y me genera millones de dudas, sobre qué más se puede hacer con este tipo de instrucciones.

Podrías crear un tema para enseñar, pues me siento como viendo la caja de pandora... jejeje pero con efectos positivos.

Muy agradecido y si no es abusar de la buena voluntad y conocimientos, si pudiese considerar el tema de ampliar esta sección.

Saludos cordiales desde mi Chile hermoso. Y desde ya muy agradecido.

Link to comment
Share on other sites

Me alegro de que te haya servido de algo la explicacion... la verdad es que aqui en este foro puedes aprender muchisimas cosas como estas... Te aconsejo que utilices la grabadora de macros y luego... edites las macros generadas y con la ejecucion paso a paso ir viendo el desarrollo de las mismas... tambien es muy util utilizar la Ayuda VBA ( seleccionar la palabra que te llame la atencion,en este caso Find y pulsar F1...... alli te aparecera una definicion con ejemplos de todo lo relacionado con lo buscado...).

Recibe un saludo y muchos animos en la tarea esta de aprender.

Salvador

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy