BUSCAR REGISTRO Y COPIAR TODA LA FILA
Publicado por JUAN ZARATE OBREGON (10 intervenciones) el 18/03/2008 09:35:03
AMIGOS:
espero que me ayuden con este problema ,estoy creando una factura necesito buscar 1 registros en otra hoja y si es igual copiar la fila completa
me explico mas claro:
ingreso una ORD VTA en la celda (E23) de la hoja (“FACTURA”) y lo busco en la columna desde B2 en la hoja (“CD-200”) . si es igual copia las siguientes columnas
C2 se copia en B23 de la hoja (“FACTURA”)
D2 se copia en B45 de la hoja (“FACTURA”)
E2 se copia en B20 de la hoja (“FACTURA”)
F2 se copia en B21 de la hoja (“FACTURA”)
G2 se copia en D45 de la hoja (“FACTURA”)
H2 se copia en I22 de la hoja (“FACTURA”)
J2 se copia en B23 de la hoja (“FACTURA”)
K2 se copia en D15 de la hoja (“FACTURA”)
mis tablas son la siguientes:
HOJA (“CD-200”)
A--------------B---------------C----------------D-----------E
1--RUTA-------ORD VTA---COD.CLIENT--SALA---CLIENTES
2---1200---------E0069446----5050.024------ GFRS-----AAAA
3---1200---------E0069446----5050.024------ KIUY.----BBBBB
4---1200---------E0069446----5050.024------ GTRD----CCCCC
5---1201---------E0069394----5000.013------ OIUH-----DDDD
6---1202---------E0069435----5000.041------ GTRF----EEEEE
F----------------------G---------H--------------J----------------K
1--DIR CENT------DIR SUC---GIRO-----FECH.TERM--ORD COMP
2---ZZZZZ-----------ZZOO------GFRS-------16/04/08------EDI-154235
3---NNNN-----------NNHH------KIUY.-- ---16/04/08------EDI-254510
4---KKKK-----------KKIII-------GTRD------16/04/08------EDI-584100
5---LLLLL-----------LLÑÑ------OIUH-------16/04/08------PDA-58141
6---PPPPP------------PPWW----GTRF-------16/04/08------ PDA-58710
HOJA(“FACTURA”)
E
5--ALMACEN
6-----“ “
7-----“ “
8-----“ “
9-----“ “
10---“ “
23—E0069446 o puede ser cualquier otra orden de la tabla (“CD-200”)
el codigo que estoy efectuando es el siguiente pero todavía no me resulta
Sub factura()
'copia los registros de la hoja Hoja2 cuyo mes = celda A1 de la Hoja3
Dim ordvta As String, mes As Integer, mayor As Long
Dim filadestino As Integer, aumenta As Long
Dim ordvtadig As String
filadestino = 2
relacion = 2
For repetir = 1 To Application.WorksheetFunction.CountA([B:B]) - 1
'la variable ordvta indica el codigo de los registros a copiar
ordvta = Sheets("CD-200").Range("B" & relacion).Value
'busca registros cuya codigo es el valor de la variable ordvta
Sheets("FACTURA").Activate
Range("E23").Select
While ActiveCell.Value <> ""
ordvtadig = ActiveCell.Value
If ordvtadig = ordvta Then
Worksheets("CD-200").Cells(filadestino, 3).Copy Destination:=ActiveCell.Offset(0, -3)
Worksheets("CD-200").Cells(filadestino, 4).Copy Destination:=ActiveCell.Offset(0, 22)
Worksheets("CD-200").Cells(filadestino, 5).Copy Destination:=ActiveCell.Offset(-3, -3)
Worksheets("CD-200").Cells(filadestino, 6).Copy Destination:=ActiveCell.Offset(-3, -3)
Worksheets("CD-200").Cells(filadestino, 7).Copy Destination:=ActiveCell.Offset(2, 22)
Worksheets("CD-200").Cells(filadestino, 8).Copy Destination:=ActiveCell.Offset(-1, 4)
Worksheets("CD-200").Cells(filadestino, 10).Copy Destination:=ActiveCell.Offset(0, 4)
Worksheets("CD-200").Cells(filadestino, 11).Copy Destination:=ActiveCell.Offset(-5, 0)
filadestino = filadestino + 1
End If
ActiveCell.Offset(1, 0).Select
Wend
relacion = relacion + 1
Next repetir
Application.CutCopyMode = False
End Sub
espero su ayuda
Atte.
Juan Zarate O
espero que me ayuden con este problema ,estoy creando una factura necesito buscar 1 registros en otra hoja y si es igual copiar la fila completa
me explico mas claro:
ingreso una ORD VTA en la celda (E23) de la hoja (“FACTURA”) y lo busco en la columna desde B2 en la hoja (“CD-200”) . si es igual copia las siguientes columnas
C2 se copia en B23 de la hoja (“FACTURA”)
D2 se copia en B45 de la hoja (“FACTURA”)
E2 se copia en B20 de la hoja (“FACTURA”)
F2 se copia en B21 de la hoja (“FACTURA”)
G2 se copia en D45 de la hoja (“FACTURA”)
H2 se copia en I22 de la hoja (“FACTURA”)
J2 se copia en B23 de la hoja (“FACTURA”)
K2 se copia en D15 de la hoja (“FACTURA”)
mis tablas son la siguientes:
HOJA (“CD-200”)
A--------------B---------------C----------------D-----------E
1--RUTA-------ORD VTA---COD.CLIENT--SALA---CLIENTES
2---1200---------E0069446----5050.024------ GFRS-----AAAA
3---1200---------E0069446----5050.024------ KIUY.----BBBBB
4---1200---------E0069446----5050.024------ GTRD----CCCCC
5---1201---------E0069394----5000.013------ OIUH-----DDDD
6---1202---------E0069435----5000.041------ GTRF----EEEEE
F----------------------G---------H--------------J----------------K
1--DIR CENT------DIR SUC---GIRO-----FECH.TERM--ORD COMP
2---ZZZZZ-----------ZZOO------GFRS-------16/04/08------EDI-154235
3---NNNN-----------NNHH------KIUY.-- ---16/04/08------EDI-254510
4---KKKK-----------KKIII-------GTRD------16/04/08------EDI-584100
5---LLLLL-----------LLÑÑ------OIUH-------16/04/08------PDA-58141
6---PPPPP------------PPWW----GTRF-------16/04/08------ PDA-58710
HOJA(“FACTURA”)
E
5--ALMACEN
6-----“ “
7-----“ “
8-----“ “
9-----“ “
10---“ “
23—E0069446 o puede ser cualquier otra orden de la tabla (“CD-200”)
el codigo que estoy efectuando es el siguiente pero todavía no me resulta
Sub factura()
'copia los registros de la hoja Hoja2 cuyo mes = celda A1 de la Hoja3
Dim ordvta As String, mes As Integer, mayor As Long
Dim filadestino As Integer, aumenta As Long
Dim ordvtadig As String
filadestino = 2
relacion = 2
For repetir = 1 To Application.WorksheetFunction.CountA([B:B]) - 1
'la variable ordvta indica el codigo de los registros a copiar
ordvta = Sheets("CD-200").Range("B" & relacion).Value
'busca registros cuya codigo es el valor de la variable ordvta
Sheets("FACTURA").Activate
Range("E23").Select
While ActiveCell.Value <> ""
ordvtadig = ActiveCell.Value
If ordvtadig = ordvta Then
Worksheets("CD-200").Cells(filadestino, 3).Copy Destination:=ActiveCell.Offset(0, -3)
Worksheets("CD-200").Cells(filadestino, 4).Copy Destination:=ActiveCell.Offset(0, 22)
Worksheets("CD-200").Cells(filadestino, 5).Copy Destination:=ActiveCell.Offset(-3, -3)
Worksheets("CD-200").Cells(filadestino, 6).Copy Destination:=ActiveCell.Offset(-3, -3)
Worksheets("CD-200").Cells(filadestino, 7).Copy Destination:=ActiveCell.Offset(2, 22)
Worksheets("CD-200").Cells(filadestino, 8).Copy Destination:=ActiveCell.Offset(-1, 4)
Worksheets("CD-200").Cells(filadestino, 10).Copy Destination:=ActiveCell.Offset(0, 4)
Worksheets("CD-200").Cells(filadestino, 11).Copy Destination:=ActiveCell.Offset(-5, 0)
filadestino = filadestino + 1
End If
ActiveCell.Offset(1, 0).Select
Wend
relacion = relacion + 1
Next repetir
Application.CutCopyMode = False
End Sub
espero su ayuda
Atte.
Juan Zarate O