Excel - Pegar datos de una tabla a otra en la celda disponible

   
Vista:

Pegar datos de una tabla a otra en la celda disponible

Publicado por Karla (1 intervención) el 20/03/2018 20:08:32
Buen dia,
Quiero copiar datos de una tabla y pegarla en otra tabla (otra hoja).
En la sheet1 pongo los datos actuales y quiero que en la sheet4 los pegue pero en la celda disponible, es decir que vaya hasta la celda vacia y comience a pegar para generar un historico de datos. El problema es que reemplaza los datos que ya estan. Empieza desde la celda A2.
Ojo: al pasar la informacion de la sheet1 a sheet4 no estan en el mismo orden. No es solo un copy paste.
Espero me puedan ayudar

Dejo mi macro:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Sub cmdSave()
Dim Ndiario As Integer
Dim NAcumulado As Integer
Ndiario = 45 'cantidad de defectos
NAcumulado = Sheet4.Cells(1, 26)
Dim X As Integer
X = NAcumulado + 1
 
 
For i = 1 To Ndiario
 
  Sheet4.Cells(X + i, 1) = Sheet1.Cells(i + 9, 1) 'operacion
  Sheet4.Cells(X + i, 18) = Sheet1.Cells(7, 9) 'orden
  Sheet4.Cells(X + i, 19) = Sheet1.Cells(7, 5) 'Fecha
  Sheet4.Cells(X + i, 20) = Sheet1.Cells(6, 5) 'Turno
  Sheet4.Cells(X + i, 21) = Sheet1.Cells(6, 9) 'Numero de parte
  Sheet4.Cells(X + i, 2) = Sheet1.Cells(i + 9, 2) 'Codigo
  Sheet4.Cells(X + i, 3) = Sheet1.Cells(i + 9, 3) 'Descripcion
 
  Sheet4.Cells(X + i, 4) = Sheet1.Cells(i + 9, 4)
  Sheet4.Cells(X + i, 5) = Sheet1.Cells(i + 9, 5)
  Sheet4.Cells(X + i, 6) = Sheet1.Cells(i + 9, 6)
  Sheet4.Cells(X + i, 7) = Sheet1.Cells(i + 9, 7)
  Sheet4.Cells(X + i, 8) = Sheet1.Cells(i + 9, 8)
  Sheet4.Cells(X + i, 9) = Sheet1.Cells(i + 9, 9)
  Sheet4.Cells(X + i, 10) = Sheet1.Cells(i + 9, 10)
  Sheet4.Cells(X + i, 11) = Sheet1.Cells(i + 9, 11)
  Sheet4.Cells(X + i, 12) = Sheet1.Cells(i + 9, 12)
  Sheet4.Cells(X + i, 13) = Sheet1.Cells(i + 9, 13)
  Sheet4.Cells(X + i, 14) = Sheet1.Cells(i + 9, 14)
  Sheet4.Cells(X + i, 15) = Sheet1.Cells(i + 9, 15)
  Sheet4.Cells(X + i, 16) = Sheet1.Cells(i + 9, 16)
 
 'precio unitario
 Sheet4.Cells(X + i, 28) = "=VLOOKUP(RC[-27],Costos!R1C2:R21C3,2,0)"
 'costo total scrap
  Sheet4.Cells(X + i, 17) = Sheet1.Cells(i + 9, 16) * Sheet4.Cells(X + i, 28)
 
  Next i
 
 
  MsgBox ("Informacion Guardada correctamente")
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de wordexperto.com

Pegar datos de una tabla a otra en la celda disponible

Publicado por wordexperto.com (1621 intervenciones) el 20/03/2018 20:58:40
Los resúmenes por fechas, históricos, los puedes hacer directamente desde la base de datos con Tablas dinámicas. Si subes un ejemplo te lo muestro.
https://wordexperto.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Pegar datos de una tabla a otra en la celda disponible

Publicado por Antoni Masana (910 intervenciones) el 21/03/2018 06:45:49
La macro con unos cambios:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub cmdSave()
    Dim Ndiario As Integer, NAcumulado As Integer, X As Long
 
    Ndiario = 45 'cantidad de defectos
    NAcumulado = Sheet4.Cells(1, 26)  ' --- No se que guardas en esta celda
    X = 2
    While Sheet4.Cells(X + i, 1)<>""
        x=x+1
    Wend
    For i = 1 To Ndiario
        Sheet4.Cells(X + i, 1) = Sheet1.Cells(i + 9, 1) 'operacion
        Sheet4.Cells(X + i, 18) = Sheet1.Cells(7, 9) 'orden
        Sheet4.Cells(X + i, 19) = Sheet1.Cells(7, 5) 'Fecha
        Sheet4.Cells(X + i, 20) = Sheet1.Cells(6, 5) 'Turno
        Sheet4.Cells(X + i, 21) = Sheet1.Cells(6, 9) 'Numero de parte
        Sheet4.Cells(X + i, 2) = Sheet1.Cells(i + 9, 2) 'Codigo
        Sheet4.Cells(X + i, 3) = Sheet1.Cells(i + 9, 3) 'Descripcion
 
        Sheet4.Cells(X + i, 4) = Sheet1.Cells(i + 9, 4)
        Sheet4.Cells(X + i, 5) = Sheet1.Cells(i + 9, 5)
        Sheet4.Cells(X + i, 6) = Sheet1.Cells(i + 9, 6)
        Sheet4.Cells(X + i, 7) = Sheet1.Cells(i + 9, 7)
        Sheet4.Cells(X + i, 8) = Sheet1.Cells(i + 9, 8)
        Sheet4.Cells(X + i, 9) = Sheet1.Cells(i + 9, 9)
        Sheet4.Cells(X + i, 10) = Sheet1.Cells(i + 9, 10)
        Sheet4.Cells(X + i, 11) = Sheet1.Cells(i + 9, 11)
        Sheet4.Cells(X + i, 12) = Sheet1.Cells(i + 9, 12)
        Sheet4.Cells(X + i, 13) = Sheet1.Cells(i + 9, 13)
        Sheet4.Cells(X + i, 14) = Sheet1.Cells(i + 9, 14)
        Sheet4.Cells(X + i, 15) = Sheet1.Cells(i + 9, 15)
        Sheet4.Cells(X + i, 16) = Sheet1.Cells(i + 9, 16)
 
        ' --- precio unitario
        Sheet4.Cells(X + i, 28) = "=VLOOKUP(RC[-27],Costos!R1C2:R21C3,2,0)"
        ' --- costo total scrap
        Sheet4.Cells(X + i, 17) = Sheet1.Cells(i + 9, 16) * Sheet4.Cells(X + i, 28)
    Next i
    MsgBox ("Informacion Guardada correctamente")
End Sub

El While busca la primera celda de la columna A libre.
Si defines X como integer solo podrás poner hasta 32768 registros, el siguiente dara error.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad