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

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 naldo
17/04/2007 - 02:40 | Informe spam
Perfecto, Gracias Hector.

Si realiza la busqueda y encuentra correctamente los registros repetidos
(facturas).

Una segunda ayuda.
Se puede que mis registros repetidos llegen hasta la fila 28.
Para que apartir de la fila 29, pueda utilizar las celdas E29 como SUBTOTAL,
E30 como IVA, E31 como TOTAL, E32 como CANTIDAD CON LETRA. (En F29, F30, F31,
F32, pondria las respectivas operaciones).

Lo que sucede es que, cuando cambio el numfac, encuentra los datos repetidos
y borra todo lo que esta hacia abajo.

Espero que me puedas apoyar, recibe un saludo, y gracias nuevamente.


escribio "naldo"

sin


"Héctor Miguel" escribió:

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.



Respuesta Responder a este mensaje
#3 Héctor Miguel
17/04/2007 - 05:41 | Informe spam
hola, !

Se puede que mis registros repetidos llegen hasta la fila 28. Para que apartir de la fila 29, pueda utilizar las celdas
E29 como SUBTOTAL, E30 como IVA, E31 como TOTAL, E32 como CANTIDAD CON LETRA.
(En F29, F30, F31, F32, pondria las respectivas operaciones).
Lo que sucede es que, cuando cambio el numfac, encuentra los datos repetidos y borra todo lo que esta hacia abajo.



el 'detalle' con los filtros avanzados, es que necesitan 'libertad de accion' [a partir de donde se depositan los resultados]
[practicamente] no 'saben' hasta donde pudiera llegar la extraccion de lo solicitado :))

si no existe la posibilidad de que alguna vez la extraccion se 'extienda' mas alla de la fila 28...
una posible alternativa es completar la macro [o una segunda macro] que re/ponga los datos 'finales' [textos y formulas] -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida