La Pregunta

30/08/2005 - 05:10 por Hermano2 | Informe spam
Te hago la nueva pregunta... con respecto a un codigo que me mando MIGUEL y
pondre al final.

Bueno.. quiero que desaparezca el A, o sea que el que esta en el B ahora
pase al A, el C en B, el D en C y el E en D, por lo cual no necesitare que
llegue a F, solamente hasta el E.
Y tambien que ponga 210305 y en vez de que aparezca 21/03/05, aparezca
21/03/2005.
Solamente eso, desde ya muchisisimas gracias.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("a2:f10")) Is Nothing Then Exit Sub
On Error Resume Next
Application.EnableEvents = False
If Target.Count > 1 Then ActiveCell.Select
If ActiveCell.Column = 2 Then
If Not IsEmpty(ActiveCell) Then
ActiveCell.NumberFormat = "General"
ActiveCell = CLng(Format(ActiveCell, "ddmmyy"))
SendKeys "{F2}+{Home}"
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a2:f10")) Is Nothing Then Exit Sub
If Target.Column = 1 And Not IsEmpty(Target.Offset(, 1)) _
Then Target.Offset(, 2).Select: Exit Sub
If Target.Column = 2 Then
On Error Resume Next
Application.EnableEvents = False
Target = DateSerial(Right(Target, 2), Mid(Target, 3, 2), Left(Target, 2))
Target.NumberFormat = "d/mm/yy"
Application.EnableEvents = True
End If
With Target
Cells(.Row + IIf(.Column = 6, _
IIf(.Row = 2000, -1998, 1), 0), _
.Column + IIf(.Column = 6, -5, 1)).Select
End With
End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
30/08/2005 - 07:38 | Informe spam
hola, Hermano2 !

... nueva pregunta... que el que esta en el B ahora pase al A
... no necesitare que llegue a F, solamente hasta el E.
... que ponga 210305 y en vez de que aparezca 21/03/05, aparezca 21/03/2005 [...]



entendiendo que el nuevo 'rango de accion' es 'A2.E2000' y que la columna de fechas -ahora- es la columna 'A'...
[y definitivamente...] 'tratar de controlar' las eventualidades de como pudiera 'navegar' el usuario... son... <\°|°/>
aunque he -al menos- tratado de 'detectar/prevenir/corregir/...' [solo] algunas [de las que se me han 'ocurrido]...
el siguiente codigo [todavia] tiene los siguientes [considero yo] 'fatales'... errores :-((
1) si el usuario 'se mueve' ->hacia la columna A<- [desde cualquier otra celda] usando {Ctrl}+{flechas}...
la macro [y los eventos] 'entran en un bucle-sin-fin'... hasta que... se rebase la pila de ciclos :-( <= OJO OJO OJO
[seria necesario incluir otro tipo de variables -quizas estaticas- para detectar -p.e.- 'de donde viene' la navegacion] :))
2) si el usuario selecciona cualquier celda en la columna A [fechas] que YA tuviera 'su entrda de fecha'...
Y pulsa {Escape}... EN LUGAR de {Enter/Return} o 'seleccionar' otra celda...
-> la siguiente vez que se selecciona 'esa' celda... [es cuando] va a tener una fecha -muy- distinta de la originalmente 'deseada' :-(
[creo que] sigue siendo de mayor 'control/horizontes/...' un formulario de usuario :))

haz pruebas y comentas?
saludos,
hector.
en el modulo de codigo de 'esa' hoja ==Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("a2:e2000")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Count > 1 Then ActiveCell.Select
If ActiveCell.Column > 1 Then GoTo Salida
If IsEmpty(ActiveCell) Then GoTo Salida
ActiveCell.NumberFormat = "General"
ActiveCell = CLng(Format(ActiveCell, "ddmmyy"))
SendKeys "{F2}+{Home}"
Salida:
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a2:e2000")) Is Nothing Then Exit Sub
If Target.Column = 5 Then If Not IsEmpty(Target.Offset(1, -4)) _
Then Cells(Target.Row + 1, 2).Select: Exit Sub
If Target.Column > 1 Then GoTo Salta
Application.EnableEvents = False
Target = DateSerial(Right(Target, 2), Mid(Target, 3, 2), Left(Target, 2))
Target.NumberFormat = "d/mm/yyyy"
Application.EnableEvents = True
Salta:
With Target
If .Row = 2000 And .Column = 5 Then Range("b2").Select: Exit Sub
Cells(.Row + IIf(.Column = 5, _
IIf(.Row = 2000, -1998, 1), 0), _
.Column + IIf(.Column = 5, -4, 1)).Select
End With
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida