Visual Basic para Aplicaciones - error1004 no se puede obtener la propiedad vlookup de la clase worksheetfunction,

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 4 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error1004 no se puede obtener la propiedad vlookup de la clase worksheetfunction,

Publicado por Oscar (1 intervención) el 16/05/2019 01:35:47
Escribo por ayuda, ya que no eh podido solucionar este error

Se genera el error1004 no se puede obtener la propiedad vlookup de la clase worksheetfunction,

cuando ejecuto el userform orden_Fact, con el boton Generar.

Set Rango_Factura = Sheets("FacturacionOrder").Range("A:A")
Orden_Factu = Application.WorksheetFunction.VLookup(p, Rango_Factura, 1, 0) -- Aca genera El ERROR

Con esta linea Valido que no exista otro ID, para no generar duplicado.


Muchas Gracias
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 Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error1004 no se puede obtener la propiedad vlookup de la clase worksheetfunction,

Publicado por Antoni Masana (498 intervenciones) el 16/05/2019 12:40:13
El uso de algunas funciones de Excel en VBA provoca un error cuando la cosa no funciona y yo prefiero las viejas técnicas del WHILE y recorrer la columna manualmente para buscar el valor y saber si existe o no.

Te marco los cambios realizados para que funcione:

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Dim Orden_Factu As Variant
Dim Factura, IVA, ValorIVA, ValorSIVA As Variant
Dim RProducto As Range
Dim Rango_Factura As Range
 
Private Sub CommandButton1_Click()
    Dim ordennum As String
 
    'Item a anexar en Facturacion Order
 
    OrderRow = Sheets("FacturacionOrder").Cells(Rows.Count, 1).End(xlUp).Row
    OrderRow1 = OrderRow + 1
 
    'Items
 
    Order = Sheets("TBL_ProductoOrden").Cells(Rows.Count, 1).End(xlUp).Row
    Order1 = Order + 1
 
    Set RProducto = Sheets("TBL_Productos").Range("b:H")
    Set Rango_Factura = Sheets("FacturacionOrder").Range("A:A")
 
    'Extraccion
    For x = 2 To Order
        ordennum = Orden_Fact.TextBox1
        p = Sheets("TBL_ProductoOrden").Cells(x, 1)
        Y = Sheets("TBL_ProductoOrden").Cells(x, 2)
        Z = Sheets("TBL_ProductoOrden").Cells(x, 5)
 
        on Error Goto Falta
        Orden_Factu = Application.WorksheetFunction.VLookup(p, Rango_Factura, 1, 0)
        On Error Goto 0
 
        If Y = ordennum And Z = True Then
            If p = Orden_Factu Then
 
            Else
                OrderRow = Sheets("FacturacionOrder").Cells(Rows.Count, 1).End(xlUp).Row
                OrderRow1 = OrderRow + 1
                Sheets("FacturacionOrder").Cells(OrderRow1, 1) = Sheets("TBL_ProductoOrden").Cells(x, 1)
                Sheets("FacturacionOrder").Cells(OrderRow1, 2) = Sheets("TBL_ProductoOrden").Cells(x, 2)
                Sheets("FacturacionOrder").Cells(OrderRow1, 3) = Sheets("TBL_ProductoOrden").Cells(x, 3)
                Sheets("FacturacionOrder").Cells(OrderRow1, 4) = Sheets("TBL_ProductoOrden").Cells(x, 4)
                Sheets("FacturacionOrder").Cells(OrderRow1, 5) = Sheets("TBL_ProductoOrden").Cells(x, 5)
                Factura = Application.WorksheetFunction.VLookup(Sheets("TBL_ProductoOrden").Cells(x, 3), RProducto, 6, 0)
                IVA = Application.WorksheetFunction.VLookup(Sheets("TBL_ProductoOrden").Cells(x, 3), RProducto, 4, 0)
                ValorIVA = Application.WorksheetFunction.VLookup(Sheets("TBL_ProductoOrden").Cells(x, 3), RProducto, 5, 0)
                ValorSIVA = Application.WorksheetFunction.VLookup(Sheets("TBL_ProductoOrden").Cells(x, 3), RProducto, 3, 0)
 
                Sheets("FacturacionOrder").Cells(OrderRow1, 6) = Factura
                Sheets("FacturacionOrder").Cells(OrderRow1, 7) = IVA
                Sheets("FacturacionOrder").Cells(OrderRow1, 8) = ValorIVA * Sheets("FacturacionOrder").Cells(OrderRow1, 4)
                Sheets("FacturacionOrder").Cells(OrderRow1, 9) = ValorSIVA * Sheets("FacturacionOrder").Cells(OrderRow1, 4)
            End If
        Else
 
        End If
    Next x
    exit Sub
 
Falta:
    orden_Facto=0: resume Next
End Sub

El problema usando VLookup es que si no lo encuentra dara un error 1004.


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