El código hace recuadro en los bordes

15/10/2007 - 15:08 por GRIEGO59 | Informe spam
Hola!
Tengo un código espectacular!

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Msj As String
If Intersect(Target, Range("e34")) Is Nothing Then Exit Sub
If IsEmpty(Target) Then Exit Sub
With Worksheets("clientes")
If Target.Address <> "$E$34" Then GoTo Nombre
Worksheets("clientes").Protect "123"
If Not Evaluate("iserror(c34)") Then Exit Sub
Worksheets("clientes").Protect "123"
If MsgBox("El codigo solicitado: " & Target & " NO existe..." & vbCr & _
"Confirmas que debe darse de alta ?", vbYesNo, _
"Alta de clientes...") = vbNo Then Exit Sub
Worksheets("clientes").Unprotect "123"
SendKeys "{down " & Application.CountA(.[a:a]) - 1 & "}" & Target & "{tab}"
.ShowDataForm
.[a:b].Sort key1:=.[a2], order1:=xlAscending, header:=xlYes
Target.Select
Worksheets("clientes").Protect "123"
Exit Sub
End With
Nombre:
If Application.CountIf([b4:b18], Target) > 1 Then Msj = " esta duplicado !!!"
If Application.VLookup(Target, Worksheets("compras").[a:g], 7, 0) > 0 _
Then Msj = " es un producto YA facturado !!!"
If Msj <> "" Then MsgBox "El serial " & Target & Msj: Target.ClearContents
End Sub

Funciona muy bien, pero después de crear un nuevo cliente, cuando regresa a
la hoja “menú” para continuar introduciendo información, remarca un borde al
rededor de las celdas E34 y E35, como si las estuviese remarcando. Este
efecto visual no se quita haciendo clic en otras celdas. Este efecto visual
no permite ver donde está ubicado el cursor.

Esto tiene solución?

Saludos cordiales,
Griego59

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
16/10/2007 - 03:54 | Informe spam
hola, Darío !

Tengo un codigo ...
Funciona muy bien, pero despues de crear un nuevo cliente, cuando regresa a la hoja "menu"
para continuar introduciendo informacion, remarca un borde al rededor de las celdas E34 y E35...
Este efecto visual no se quita haciendo clic en otras celdas no permite ver donde esta ubicado el cursor.



la unica forma en que he podido reproducir este comportamiento es (p.e.):
- cuando el formulario de datos "cubre" la celda activa
- o cuando existen algunas "obstrucciones" (como paneles fijos y algunas cosillas mas) -?-

prueba sustituyendo la instruccion que re/selecciona la celda activa...
de: -> Target.Select
a: -> Application.ScreenUpdating = True

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ el codigo expuesto __
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Msj As String
If Intersect(Target, Range("e34")) Is Nothing Then Exit Sub
If IsEmpty(Target) Then Exit Sub
With Worksheets("clientes")
If Target.Address <> "$E$34" Then GoTo Nombre
Worksheets("clientes").Protect "123"
If Not Evaluate("iserror(c34)") Then Exit Sub
Worksheets("clientes").Protect "123"
If MsgBox("El codigo solicitado: " & Target & " NO existe..." & vbCr & _
"Confirmas que debe darse de alta ?", vbYesNo, _
"Alta de clientes...") = vbNo Then Exit Sub
Worksheets("clientes").Unprotect "123"
SendKeys "{down " & Application.CountA(.[a:a]) - 1 & "}" & Target & "{tab}"
.ShowDataForm
.[a:b].Sort key1:=.[a2], order1:=xlAscending, header:=xlYes
Target.Select
Worksheets("clientes").Protect "123"
Exit Sub
End With
Nombre:
If Application.CountIf([b4:b18], Target) > 1 Then Msj = " esta duplicado !!!"
If Application.VLookup(Target, Worksheets("compras").[a:g], 7, 0) > 0 _
Then Msj = " es un producto YA facturado !!!"
If Msj <> "" Then MsgBox "El serial " & Target & Msj: Target.ClearContents
End Sub
Respuesta Responder a este mensaje
#2 GRIEGO59
16/10/2007 - 12:42 | Informe spam
Mil gracias! : )
Se quitaron los bordes.
Griego59

"Héctor Miguel" escribió:

hola, Darío !

> Tengo un codigo ...
> Funciona muy bien, pero despues de crear un nuevo cliente, cuando regresa a la hoja "menu"
> para continuar introduciendo informacion, remarca un borde al rededor de las celdas E34 y E35...
> Este efecto visual no se quita haciendo clic en otras celdas no permite ver donde esta ubicado el cursor.

la unica forma en que he podido reproducir este comportamiento es (p.e.):
- cuando el formulario de datos "cubre" la celda activa
- o cuando existen algunas "obstrucciones" (como paneles fijos y algunas cosillas mas) -?-

prueba sustituyendo la instruccion que re/selecciona la celda activa...
de: -> Target.Select
a: -> Application.ScreenUpdating = True

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ el codigo expuesto __
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim Msj As String
> If Intersect(Target, Range("e34")) Is Nothing Then Exit Sub
> If IsEmpty(Target) Then Exit Sub
> With Worksheets("clientes")
> If Target.Address <> "$E$34" Then GoTo Nombre
> Worksheets("clientes").Protect "123"
> If Not Evaluate("iserror(c34)") Then Exit Sub
> Worksheets("clientes").Protect "123"
> If MsgBox("El codigo solicitado: " & Target & " NO existe..." & vbCr & _
> "Confirmas que debe darse de alta ?", vbYesNo, _
> "Alta de clientes...") = vbNo Then Exit Sub
> Worksheets("clientes").Unprotect "123"
> SendKeys "{down " & Application.CountA(.[a:a]) - 1 & "}" & Target & "{tab}"
> .ShowDataForm
> .[a:b].Sort key1:=.[a2], order1:=xlAscending, header:=xlYes
> Target.Select
> Worksheets("clientes").Protect "123"
> Exit Sub
> End With
> Nombre:
> If Application.CountIf([b4:b18], Target) > 1 Then Msj = " esta duplicado !!!"
> If Application.VLookup(Target, Worksheets("compras").[a:g], 7, 0) > 0 _
> Then Msj = " es un producto YA facturado !!!"
> If Msj <> "" Then MsgBox "El serial " & Target & Msj: Target.ClearContents
> End Sub



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida