Pasar datos de una hoja a otra

En la hoja 1 cargo ciertos datos POR que tienen como destino a distintos punto A, B, C, DE, mi idea es que cuando coloco A POR datos, estos datos se depositen en la hoja 2 en la columna que corresponda A, B, C, DE y que sea escalonado, es decir, que no deje espacios en blanco ni se sobrescriba ya que la información sera ingresada aleatoriamente. Muchas Gracias.
Hoja 1 Hoja 2
A    DatosA                 A              B                 C                D  
B    DatosB          DatosA       DatosB        DatosC
C    DatosC         DatosA
A    DatosA
B   DatosB
1

1 Respuesta

6.175 pts. Analista, Manejo de Excel 2003, 2007 Avanzados, Access...
Puedes programar (no sé sí tengas ya algún código con mucho gusto lo revisamos) usando tres variables; una va a recoger el valor de la columna (A, B, C, D... ) otra va a recoger el dato (DatosA, DatosB, DatosC... ) para llevarlo a la otra hoja y la ultima va a validar sí, en la columna donde estoy llevando los datos existe un valor previo.
Necesitaras analizar la información con If Then y sí deseas repetir el proceso por cada una de las filas de la hoja 1 insertas una linea numero "Line#" y usas "Goto" para volver a llamar el proceso... claro esta analizando sí existe algún valor.
Hola, estoy trabajando en eso ahora mismo y hasta el momento lo que hace es copiar los datos y que estos aparezcan en la hoja 2, lo que aun no puedo sacar es que respete la condición en todo momento (de todas maneras aun estoy probando porque soy novato), hasta el momento estoy con esto:
Sheets("hoja2").Select
Range("a65536").End(xlUp).Offset(1, 0).Select
i = ActiveCell.Row
If Sheets("hoja1").Range("H8") = "LA" Then
Range("a" & i).Value = Worksheets("hoja1").Range("d12").Value
Range("b" & i).Value = Worksheets("hoja1").Range("g12").Value
Range("c" & i).Value = Worksheets("hoja1").Range("h12").Value
Range("a4").Select
Sheets("hoja1").Select
Range("d12:h12").ClearContents
MsgBox ("Registro Guardado con Exito")
enf if
end sub
Deberia tener las variables: LA, LB, LC, LD, LE, LF, LG, LI, LK, LL, MOV 1, MOV 3, MOV 4, MOV 5 Y MOV 6 y con este dato se coloque la informacion donde corresponda.
La duda apunta más que todo al algoritmo. Debes organizarlo por pasos de manera lógica
linea1:
Buscar las características del dato en la hoja 1, cargarlo en variable dato1
Si no hay valor en lista de datos ir a lineafin
'continuar con este mismo paso para todos los datos ó como tu desees procesar ese dato1 y llevarlo de una vez a la hoja2 para lo cual analizarás de una vez el valor de la celda dentro de la lista de datos en hoja1 y necesitaras mas variable para cargar todos los datos.
Llevar el dato a la hoja2 debes buscar la columna correspondiente a ese dato1
Luego guardar el valor de la variable cargada con el dato1 correspondiente a la columna en la celda
Volver a la linea1 'para procesar todos los datos del listado en hoja1
Fin si
Lineafin:
Cuadro de mensaje "se termino el proceso"
Lo que hice fue duplicar el proceso ya que fue de la manera en que más o menos me funciono, si bien realiza la misma función lo que hace es depositar los datos en cascada al momento de cambiar la variable (de LA a LB o LC y así sucesivamente) y msgbox repetido que es algo que me imagine que suceda.
Muchas gracias.
if Sheets("hoja1").Range("d8") = "LA" Then
Sheets("hoja2").Select
Range("d65536").End(xlUp).Offset(1, 0).Select
i = ActiveCell.Row
Range("c" & i).Value = Worksheets("hoja1").Range("e8").Value
Range("d" & i).Value = Worksheets("hoja1").Range("f8").Value
Range("e" & i).Value = Worksheets("hoja1").Range("g8").Value
Range("c6").Select
Sheets("hoja1").Select
Range("e8:g8").ClearContents
MsgBox ("Registro Guardado con Exito")
End If
If Sheets("hoja1").Range("d8") = "LB" Then
Sheets("hoja2").Select
Range("d65536").End(xlUp).Offset(1, 0).Select
i = ActiveCell.Row
Range("F" & i).Value = Worksheets("hoja1").Range("e8").Value
Range("G" & i).Value = Worksheets("hoja1").Range("f8").Value
Range("H" & i).Value = Worksheets("hoja1").Range("g8").Value
Range("c6").Select
Sheets("hoja1").Select
Range("e8:g8").ClearContents
MsgBox ("Registro Guardado con Exito")
End If
End Sub
En muchos casos cuando los procesos son repetitivos, se recicla parte del código. Luego se pueden validar acciones repetitivas con condicional. Incluso con "For" para cuando se conocen todas las veces que se debe repetir el mismo proceso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas