Excel - Eventos de uno en uno

 
Vista:

Eventos de uno en uno

Publicado por Bruno (4 intervenciones) el 01/11/2007 23:41:33
Hola a todos,
Acabo de descubrir los eventos de VB para excel, y me estoy encontrando con algún que otro problema que supongo que no tiene que ser muy complicado de resolver.
He generado un código que, en función del campo que de un desplegable de validación, ejecuta una macro u otra macro.
El código es algo así.

El problema es que, al intentar hacer esto con otra validación que tengo en la misma hoja, me repite

Private Sub Worksheet_Change(ByVal Target As Range)
Dim VRange As Range
Set VRange = Range("c7")
If Intersect(VRange, Target) Is Nothing Then
Exit Sub
End If
If [c7] = "" Then
Call Macro1
Range("c7").Select
End If
If [c7] = "SÍ" Then
Call Macro2
Range("c7").Select
End If
If [c7] = "NO" Then
Call Mostrar_Sin_BaseSiete
Range("c29").Value = ""
Range("c31").Value = ""
Range("c33").Value = ""
Range("c35").Value = ""
Range("c37").Value = ""
Range("c39").Value = ""
Range("c41").Value = ""
Range("c29").Select
End If
If [c43] = "PVP" Then
Range("C45") = _
"=IF(OR(R43C3="""",R9C3="""",ISERROR(VLOOKUP(R9C3,BASESIETE!C1,1,0))),"""",IF(R43C3=""PVP"",VLOOKUP(R9C3,BASESIETE!C1:C57,8,0),IF(R43C3=""VFF"",VLOOKUP(R9C3,BASESIETE!C1:C57,55,0),""ERR"")))"
Range("C45").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("c47").Select
End If
If [c43] = "VFF" Then
Range("C45") = _
"=IF(OR(R43C3="""",R9C3="""",ISERROR(VLOOKUP(R9C3,BASESIETE!C1,1,0))),"""",IF(R43C3=""PVP"",VLOOKUP(R9C3,BASESIETE!C1:C57,8,0),IF(R43C3=""VFF"",VLOOKUP(R9C3,BASESIETE!C1:C57,55,0),""ERR"")))"
Range("C45").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("c47").Select
End If
If [c43] = "" Then
Range("C45") = _
"=IF(OR(R43C3="""",R9C3="""",ISERROR(VLOOKUP(R9C3,BASESIETE!C1,1,0))),"""",IF(R43C3=""PVP"",VLOOKUP(R9C3,BASESIETE!C1:C57,8,0),IF(R43C3=""VFF"",VLOOKUP(R9C3,BASESIETE!C1:C57,55,0),""ERR"")))"
Range("C45").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("c47").Select
End If

End Sub
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