Buscarv necesito ayuda

14/04/2007 - 23:12 por naldo | Informe spam
Tengo un problema y no lo he resuelto con buscarv, debido a que
regresa el primero unicamente.
Siento que estoy serca, con su ayuda espero solucionarlo.

a).- Tengo dos hojas, una se llama "LparaF", con seis columnas con los
titulos sig.
NUMFACT, CONCEPTO, UNIDAD, CANTIDAD, PRECIO, IMPORTE.
y tiene 2000 filas
Los Titulos inician en A5, B5, C5, D5, E5, F5.
Los Registros inician en A6, B6, C6, D6, E6, F6.
NUMFACT se repite en ocaciones 10 veces, pueden ser mas.
pero con diferente CONCEPTO, UNIDAD, CANTIDAD, PRECIO, IMPORTE, son los que
varian.

b). La otra hoja se llama "0869"(numfact). Es donde quiero que aparezcan los
registros.
En esta hoja quiero escribir el numero de factura
(Por ejemplo 869). estando en "B1".
Los Titulos inician en A12(CONCEPTO), B12(UNIDAD), C12(CANTIDAD),
D12(PRECIO), E12.(IMPORTE), es por que tengo otros datos entre B1 y B12.
Los Registros repetidos(de 869) quiero que inicien a partir
de la fila 13 (A13, B13, C13, D13, E13).

Copie un codigo que vi en este foro(lo comento IVAN)
Hice las modificaciones correspondientes estando en la hoja "869".

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Me.Range("b1").Address Then
Dim Celda As Range, nroFact
With Me
If .[a13] <> "" Then .Range("a13:a" & _
.[a65536].End(xlUp).Row).EntireRow.Delete
nroFact = .[b1]
End With
Application.ScreenUpdating = False
With Worksheets("LparaF")
If .[a5] = "" Then Exit Sub
If .[a6] = "" Then
If .[a5] = nroFact Then _
.Range(.[b6], .[iv2].End(xlToLeft)).Copy _
Me.[b65536].End(xlUp).Offset(1, 0)
Exit Sub
End If
For Each Celda In .Range("a5:a" & .[a65536].End(xlUp).Row)
With Celda
If .Value = nroFact Then Worksheets("LparaF") _
.Range("B" & .Row & ":iv" & .Row).Copy _
Me.[a65536].End(xlUp).Offset(1, 0)
End With
Next
End With
End If
End Sub
==>
==>
El resultado no coincide con el numero de factura buscada, me da datos
de otras facturas. (Si encuentra registros, pero no coinciden con los
esperados, son otros.)
Encuentra los Registros que estan en "LparaF" a partir de fila A13, A14,
A15, A16.
En este caso da cuatro porque se repite esta factura 869, cuatro veces en la
hoja "LparaF".
Y siempre da estas filas( Cuando se cambia el numero de factura).

Me equivoque en alguna entrada?

Espero que me puedan ayudar con estos datos. gracias

Tambien he usado esta que vi en este foro

=SI(CONTAR.SI(LparaF!$B$5:$B$100,LparaF!$A$5)>FILA(LparaF!A5)-1,
BUSCARV($B$1,LparaF!$A$100:INDIRECTO("'LparaF'!$A$"&COINCIDIR($B$1,
LparaF!$A$5:$A$100,0)+FILA(LparaF!A5)-1),2,0),"")
No da resultado aparece en blanco y no dice si hay error alguno
En este ejemplo use 100 filas unicamente

Gracias de antemano, necesito ayuda, no he terminado mi trabajo.

Escribio "naldo"

sin
 

Leer las respuestas

#1 Héctor Miguel
15/04/2007 - 01:15 | Informe spam
hola, !

a).- Tengo dos hojas, una se llama "LparaF", con seis columnas con los titulos sig.
NUMFACT, CONCEPTO, UNIDAD, CANTIDAD, PRECIO, IMPORTE. y tiene 2000 filas
Los Titulos inician en A5, B5, C5, D5, E5, F5. Los Registros inician en A6, B6, C6, D6, E6, F6.
NUMFACT se repite... pero con diferente CONCEPTO, UNIDAD, CANTIDAD, PRECIO, IMPORTE...
b). La otra hoja se llama "0869"(numfact). Es donde quiero que aparezcan los registros.
En esta hoja quiero escribir el numero de factura (Por ejemplo 869) estando en "B1".
Los Titulos inician en A12(CONCEPTO), B12(UNIDAD), C12(CANTIDAD), D12(PRECIO), E12.(IMPORTE) ...
Los Registros repetidos(de 869) quiero que inicien a partir de la fila 13 (A13, B13, C13, D13, E13). [...]



1) 'mueve' el numero de factura que estas buscando [en la hoja "0869"] de B1 a B2 y pon en B1 el mismo titulo [NUMFACT]
o... si el titulo [NUMFACT] ya lo tienes p.e. en A1... 'mueve' B1 a A2 =>el ejemplo asume lo primero B1:B2<
2) tambien estoy suponiendo que en la hoja "LparaF" esta en blanco la fila 4 ->anterior a los titulos [NUMFACT, CONCEPTO, etc.] -?-

3) copia/pega las siguientes instrucciones en el modulo de codigo de la hoja "0869"

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub
Worksheets("LparaF").Range("a5").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("b1:b2"), _
CopyToRange:=Range("a12:e12"), _
Unique:=False
End Sub

si cualquier duda [o informcion adicional]... comentas ?
saludos,
hector.

Preguntas similares