Macro alerta valor intruducido ya existe..

Hola, expertos... Paso a explicar lo que necesito a ver si me ayudan.. Tengo una celda en blanco en la hoja 1 y una base de datos en la hoja 2, lo que necesito es que al introducir un valor en la celda de la hoja 1, la macro me recorra el rango A:A de la hoja 2 y verifique que el valor introducido en la delda de la hoja 1 no se repita, dándome así un mensaje que diga "Valor introducido ya exite, intente nuevamente... Yo encontré una macro similar que me resulta muy bien cuando quiero introducir un valor que ya exite, pero dentro del mismo rango y lo utilizo para que me verifique si e ingresado anteriormente a un mismo trabajador en mi base de datos, pero no me resulta, para introducir datos en celda que que se encuentra en otra hoja, quizá ustedes la puedan modificar o adaptar.. Esta esta:
Private Sub Worksheet_Change(ByVal Target As Range)
'Si la columna es A
If (Target.Column = 1) Then
'Si la celda posee algo
If (Target.Value <> "") Then
If (buscarContenido(Target.Value, Target.Row)) Then
MsgBox "ESTE RUT YA SE ENCUENTRA EN LA BASE DE DATOS."
End If
End If
End If
End Sub
Private Function buscarContenido(valor As String, celda As Long) As Boolean
Dim rgRango As Range
Dim i As Long
buscarContenido = False
Set rgRango = Range("A1:A65536")
'Recorro todas las celdas de la primer columna
For i = 1 To rgRango.Cells.Count
'Si encuentra una celda vacia deja de buscar, se puede
'comentar para que siempre busque en toda la columna.
If rgRango(i).Value = "" Then Exit For
If Trim(rgRango(i).Value) = Trim(valor) And i <> celda Then
buscarContenido = True
Exit For
End If
Next i
End Function
Es urgente.. Si pudieran ayudarme lo antes posible les estaría muy agradecida...
Vania.

1 Respuesta

Respuesta
1
En la rutina de la función, donde definís el rango debés establecer también la hoja.
Set rgRange = Sheets("Hoja2").Range("A1:A65536")
Además modificá la primer línea de la primer rutina, porque cuando selecciones 2 o + celdas para borrarlas (siempre podrás necesitar hacer algo así) te dará error.
If target.Column = 1 and target.count = 1 then
Saludos
Elsa
* Aún sin un manual de macros?
http://es.geocities.com/lacibelesdepunilla/manuales

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas