Forums Últimos mensajes - Powered by IBM
 
Tags Palabras claves

UNA PREGUNTA

29/08/2005 - 22:46 por Hermano2 | Informe spam
Hola:
Tengo un par de problemas con el mismo... el primero me -la fecha, o sea que
llegara hasta la celda E.
lo 2do. seria que cuando pongo la fecha por ejemplo 210305, a veces me pone
otra fecha cualquiera...
3ro. cuando paso con las fechitas por sobre cualquiera de los de fecha me
aparece como si tocara ENTER ese cualquiera de eso cuadritos.
4to. no me podrias poner que me limite lo que ahora seria C y D, pero cuando
llegue solo a E, seran B y C, el B (4 digitos, pero que no te deje introducir
mas aun que aprietes otra tecla, y el C lo mismo pero con 20 digitos)
5to que el que cuando llegue solo a E, sera D y E, esos 2 serian de NUMBER,
en las opciones de numeros, abajo del que seria GENERAL en Format Cells...
pero cuando uno de los 2 lo dejes en blanco te marque 0,00, ya que una
columna sera de Pagado y otra Cobrado.
6to. no puedo seleccionar todo lo que creo como para copiarlo en otro lado...
7mo. cambiando (a2;f10) por (a2;f20000) te hara lo mismo hasta la fila
20000???
obviamente me lo cambiaras si podes a que llegue a E nomas...
desde ya muchas gracias por lo anterior.. y 10000000000000 gracias por esto

"Héctor Miguel" escribió:


hola, Hermano2 !

> ... que solo llegue hasta la celda F... que en vez de... que se desplace hacia abajo pase a la derecha
> ... al llegar a F vuelva a la celda A del 2do ringlon
> ... que la celda B por ejemplo escriba 210305 y en vez de eso te ponga 21/03/05
> ... que en la celda D se pueda poner solo un maximo de 20 caracteres... C un maximo de 4 caracteres...

1) para los 'maximos caracteres' [columnas C y D]... te sugiero que utilices 'validaciones' en las celdas de dichas columnas :))
-> [menu] datos / validacion... / [seccion] configuracion / permitir -> longitud del texto / menor o igual que... 4/20 [segun el caso] ;)
2) para que la seleccion 'se vaya moviendo' hacia la derecha y luego hacia abajo desde las columnas A a la F...
y para que toda entrada en la columna 'B' sea 'estimada' como fecha en el formato dd/mm/aa...
'tendras que...' hacer uso de codigo en los eventos de 'esa' hoja :-(
[incluso, surgen posibles 'situaciones' en el caso de configuraciones regionales distintas en las pc's donde se ejecute] :-((
[por lo que 'me vi forzado' a 'trampear' los eventos y algunas otras 'cosillas' que espero se pueden mejorar mas adelante] :)
-> estoy suponiendo que 'el rango' donde necesitas de dichos 'movimientos' sea 'A2:F10' [dejando fuera la fila 1 por los titulos]
deberas 'ajustar' los parametros para las columnas [6 y -5] y para las filas [10 y -8] segun corresponda al rango 'real' :D

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
en el modulo de codigo de 'esa' hoja ==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 = 10, -8, 1), 0), _
.Column + IIf(.Column = 6, -5, 1)).Select
End With
End Sub
 

Leer las respuestas

#1 Héctor Miguel
30/08/2005 - 01:04 | Informe spam
hola, Hermano2 [Villanueva ?] !

trato de 'responderte' entre lineas... 'iniciando' con... '=>' :D

... un par de problemas


=> [creo que mas bien 'se trata' de que...] las condiciones -aparentemente- han cambiado -?-

... el primero... la fecha... que llegara hasta la celda E.


=> si la [nueva] 'necesidad' es que la fecha ha quedado en la columna 'E' [en lugar de la columna 'B' anterior]...
solo modifica las siguientes lineas...
1) en el evento 'Worksheet_SelectionChange'
de -> If ActiveCell.Column = 2 Then
a -> If ActiveCell.Column = 5 Then

2) en el evento 'Worksheet_Change' a) de...
If Target.Column = 1 And Not IsEmpty(Target.Offset(, 1)) _
Then Target.Offset(, 2).Select: Exit Sub
a ...
If Target.Column = 4 And Not IsEmpty(Target.Offset(, 1)) _
Then Target.Offset(, 6).Select: Exit Sub


3) en el evento 'Worksheet_Change' b) de...
If Target.Column = 2 Then
a ...
If Target.Column = 5 Then

...2do... cuando pongo la fecha por ejemplo 210305, a veces me pone otra fecha cualquiera...
...3ro. cuando paso con las fechitas por sobre cualquiera de los de fecha... aparece como si tocara ENTER [...]


=> 'esto' es parte de los 'truquillos' que 'tuve que' implementar' por los comentarios en mi respuesta 'original' :))
[tratare de 'ampliarte' esta -y otras- duda/s mas adelante] ;)

...4to... que me limite... C y D, pero cuando llegue solo a E
... B (4 digitos, pero que no te deje introducir mas aun que aprietes otra tecla, y el C lo mismo pero con 20 digitos)


=> mientras el usuario 'tiene' a la aplicacion en 'modo de edicion'... ES EL USUARIO el que esta 'en control TOTAL de los eventos :-(
[hasta donde se] no existe forma alguna de que [por codigo] se 'evite/prevenga' que 'meta lo que quiera' [o al menos 'lo intente'] :-((
fue por lo anterior que -nuevamente- te sugiero usar mejor reglas de validacion con un 'limite' a los carcteres de entrada en la/s celda/s ;)
si se te dificulta usar la caracteristica de validacion por reglas... comentas? [creo que este mensaje ya quedara muy 'largo'] :D

...5to... que cuando llegue solo a E... D y E... serian de NUMBER, en las opciones de numeros
... pero cuando uno de los 2 lo dejes en blanco te marque 0,00, ya que una columna sera de Pagado y otra Cobrado.


=> [creo que] con los 'eventos' [que ya se estan 'controlando'] para 'administrar' el movimiento de avance del cursor...
ya se estan 'corriendo' varios riesgos [y cayendo en 'limitantes'] para 'tratar de controlar' lo que esta haciendo el usuario :(
=> [probablemente] obtendrias mas [y mejor] 'control' si utilizas un userform -?-

...6to. no puedo seleccionar todo lo que creo como para copiarlo en otro lado...


=> 'esta' es otra de las 'condicionantes' [que tuve que implementar] si deseas 'asegurarte' de las entradas de fecha en d/mm/aa
puesto que se estan 'manejando' los eventos de la hoja... si existe una seleccion de mas de una celda [p.e.]...
el usuario podria 'navegar' por [y EDITAR/modificar/...] cualquier celda dentro de la seleccion y [p.e.]...
el evento '_selectionchange'... NO se 're/dispara', por lo que NI se entera de cambios de celda en el 'target' :-((

7mo. cambiando (a2;f10) por (a2;f20000) te hara lo mismo hasta la fila 20000???


=> sip :D solo modifica la parte final del codigo en el evento 'Worksheet_Change'...
de...
With Target
Cells(.Row + IIf(.Column = 6, _
IIf(.Row = 10, -8, 1), 0), _
.Column + IIf(.Column = 6, -5, 1)).Select
End With
a...
With Target
Cells(.Row + IIf(.Column = 6, _
IIf(.Row = 2000, -1998, 1), 0), _
.Column + IIf(.Column = 6, -5, 1)).Select
End With

creo que hay mas 'tela de donde cortar'... todo 'depende'... [segun yo] de...
-> que tanto/cuando/como/... varien las condicionantes [para preparar variables -p.e.- para el codigo] y/o...
-> que tanto/cuanto.. te resulte dificil 'seguir' mis [intentos de] 'explicaciones' :))

si cualquier duda [o condiciones cambiantes]... comentas ?
saludos,
hector.

Preguntas similares