Hacer búsquedas mediante programación

me has comentado en una pregunta anterior que para que tardara menos una macro en la que al dar valor a una celda automáticamente ejecutara una macro en la que se hacían varios buscarv, se copiaba y pegaba valores y se borraba el dato inicial, se debían hacer las búsquedas programando. ¿se le puede meter mano a esto para que tarde menos?

esto es lo que tengo en el change escrito:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("f1").Value <> "" Then
Application.ScreenUpdating = False
Range("D1:E1").Select
ActiveCell.FormulaR1C1 = "=RC[2]"
Range("D1:E1").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F1").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("G5:G10").Select
Range("G10").Activate
Selection.ClearContents
Range("D1:E1").Select
Range("B5:F5").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-4]C[2],R[8]C[-1]:R[2630]C,2,0)=TRUE),"""",VLOOKUP(R[-4]C[2],R[8]C[-1]:R[2630]C,2,0))"
Range("B6:F6").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-5]C[2],R[7]C[-1]:R[2629]C[1],3,0)=TRUE),"""",VLOOKUP(R[-5]C[2],R[7]C[-1]:R[2629]C[1],3,0))"
Range("B7:F7").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-6]C[2],R[6]C[-1]:R[2628]C[2],4,0)=TRUE),"""",VLOOKUP(R[-6]C[2],R[6]C[-1]:R[2628]C[2],4,0))"
Range("B8:F8").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-7]C[2],R[5]C[-1]:R[2627]C[3],5,0)=TRUE),"""",VLOOKUP(R[-7]C[2],R[5]C[-1]:R[26627]C[3],5,0))"
Range("B9:F9").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-8]C[2],R[4]C[-1]:R[2626]C[4],6,0)=TRUE),"""",VLOOKUP(R[-8]C[2],R[4]C[-1]:R[2626]C[4],6,0))"
Range("B10:F10").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-9]C[2],R[3]C[-1]:R[2625]C[5],7,0)=TRUE),"""",VLOOKUP(R[-9]C[2],R[3]C[-1]:R[2625]C[5],7,0))"
Range("B5:F10").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B5:F5").Select
Application.CutCopyMode = False
End If
End Sub

gracias nuevamente

Respuesta
1

Francamente no tengo tiempo de analizar tu código. Prefiero que me mandes un excel con un supuesto explicado para resolver y yo te lo mando construido. Mándame solo un ejemplo:

[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas