UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1 funcion de código el 30/09/16, 12:46 am

RafaDF29


Hola a todos!

Estoy teniendo problemas para limpiar rangos de listas dependientes, copio mi código para ver si alguien me puede decir que estoy haciendo mal 

Private Sub Worksheet_Change(ByVal Target As Range)

If Target = Range("C10") Then
Range("D10").Value = ""
If Target = Range("C11") Then
Range("D11").Value = ""
If Target = Range("C12") Then
Range("D12").Value = ""
If Target = Range("C13") Then
Range("D13").Value = ""
If Target = Range("C14") Then
Range("D14").Value = ""
If Target = Range("C15") Then
Range("D15").Value = ""
If Target = Range("C16") Then
Range("D16").Value = ""
If Target = Range("C17") Then
Range("D17").Value = ""
If Target = Range("C18") Then
Range("D18").Value = ""
If Target = Range("C19") Then
Range("D19").Value = ""
If Target = Range("C20") Then
Range("D20").Value = ""
If Target = Range("C21") Then
Range("D21").Value = ""
If Target = Range("C22") Then
Range("D22").Value = ""
If Target = Range("C23") Then
Range("D23").Value = ""
If Target = Range("C24") Then
Range("D24").Value = ""
If Target = Range("C25") Then
Range("D25").Value = ""
If Target = Range("C26") Then
Range("D26").Value = ""
If Target = Range("C27") Then
Range("D27").Value = ""
If Target = Range("C28") Then
Range("D28").Value = ""
If Target = Range("C29") Then
Range("D29").Value = ""
If Target = Range("C30") Then
Range("D30").Value = ""
If Target = Range("C31") Then
Range("D31").Value = ""
If Target = Range("C32") Then
Range("D32").Value = ""
If Target = Range("C33") Then
Range("D33").Value = ""
If Target = Range("C34") Then
Range("D34").Value = ""
If Target = Range("C35") Then
Range("D35").Value = ""
If Target = Range("C36") Then
Range("D36").Value = ""
If Target = Range("C37") Then
Range("D37").Value = ""
If Target = Range("C38") Then
Range("D38").Value = ""
If Target = Range("C39") Then
Range("D39").Value = ""
If Target = Range("C40") Then
Range("D40").Value = ""
If Target = Range("C41") Then
Range("D41").Value = ""
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If



End Sub

Gracias y saludos!

2 Re: funcion de código el 30/09/16, 01:38 am

Igtelo


Hola Rafa.

Prueba así:

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [C10:C39]) Is Nothing Then Exit Sub  'Sólo se ejecuta en el rango C10:C39

If Target = [C10] Then [D10] = ""
If Target = [C11] Then [D11] = ""
If Target = [C12] Then [D12] = ""
If Target = [C13] Then [D13] = ""
If Target = [C14] Then [D14] = ""
If Target = [C15] Then [D15] = ""
If Target = [C16] Then [D16] = ""
If Target = [C17] Then [D17] = ""
If Target = [C18] Then [D18] = ""
If Target = [C19] Then [D19] = ""
If Target = [C20] Then [D20] = ""
If Target = [C21] Then [D21] = ""
If Target = [C22] Then [D22] = ""
If Target = [C23] Then [D23] = ""
If Target = [C24] Then [D24] = ""
If Target = [C25] Then [D25] = ""
If Target = [C26] Then [D26] = ""
If Target = [C27] Then [D27] = ""
If Target = [C28] Then [D28] = ""
If Target = [C29] Then [D29] = ""
If Target = [C30] Then [D30] = ""
If Target = [C31] Then [D31] = ""
If Target = [C32] Then [D32] = ""
If Target = [C33] Then [D33] = ""
If Target = [C34] Then [D34] = ""
If Target = [C35] Then [D35] = ""
If Target = [C36] Then [D36] = ""
If Target = [C37] Then [D37] = ""
If Target = [C38] Then [D38] = ""
If Target = [C39] Then [D39] = ""
If Target = [C40] Then [D40] = ""
If Target = [C41] Then [D41] = ""
End Sub

Escribir:             if Target = Range("C10") Then range("D10")  'Forma larga
Es lo mismo que: If Target = [C10] Then [D10] = ""    'Forma corta

Cuando toda la sentencia o instrucción es en la misma línea no es necesario el End If.
El Value tampoco es necesario ya que es el predeterminado o por defecto.

Saludos
Ignacio Téllez

3 Re: funcion de código el 30/09/16, 01:47 am

RafaDF29


MUCHAS GRACIAS! Estaba perfecto, pero si se elimina una celda adelantada, se elimina superiores (ej. si modifico el valor de la celda C20, borra la D10)



Última edición por RafaDF29 el 30/09/16, 01:58 am, editado 1 vez

4 Re: funcion de código el 30/09/16, 01:49 am

Igtelo


Rafa.
Márcalo como resuelto, por favor lee las normas.

Saludos
Ignacio Téllez

5 Re: funcion de código el 30/09/16, 02:11 am

Igtelo


Hola otra vez.

No te entiendo, lo que hace el código:
Si modifico la celda C10 borra la D10 y no se mete para nada con lo demás, lo mismo para cada caso.

Tal vez tu archivo tenga otras cosas en tus validaciones, así que mejor lo subes y ya se verá con calma, lo dejas y mañana alguien te echa la mano sino lo veré hasta por la noche.

Saludos
Ignacio Téllez

6 Re: funcion de código el 30/09/16, 02:18 am

RafaDF29


Subo el archivo, modifiqué un poco el código para que borrara más celdas, sin embargo, sigue eliminando registros previos
Archivos
FORMATO REGISTRO PRODUCTO NO CONFORME.xlsx
No tienes los permisos para descargar los archivos.
(170 KB)

7 Re: funcion de código el 30/09/16, 12:28 pm

Igtelo


Que hay Rafa.

Borras en celda de columna C y borra la de junto.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C10:C31]) Is Nothing Then Exit Sub
If Target = "" Then Target.Offset(, 1) = ""
End Sub

Saludos
Ignacio Téllez

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.