Aplicar espacios al texto de una celda cuando se pulsa un boton

10/06/2006 - 15:00 por Almeida Cox | Informe spam
Es la primera vez que escribo, a ver si me se expicar.

Tengo una LISTA creada con 2 columnas.
El encabezado de las columnas es: ID_TAREA y TEXTO_TAREA

EJEMPLO:
ID_TAREA TEXTO_TAREA
1 Tramitar alta nuevo trabajador
2 Llamar Gestoría
3 Recoger documentos de la Gestoría
4 Cita con el trabajador para firmar papeles
5 Archivar papeles
6 Aplicar procedimiento de archivado 1
7 Aplicar procedimiento de archivado 5
8 Reparar Coche
9 Pedir cita al taller
10 Dejar coche en taller
11 Recoger coche del taller

Me gustaría crear un BOTON a la izquierda de cada fila (registro) de
TEXTO_TAREA que, al pulsarlo, EDITASE la celda de la derecha y
añadiese un espacio. La idea es poder tener un arbol de
tareas/subtareas.

El ejempo quedaría así:
ID_TAREA TEXTO_TAREA
1 BOTON Tramitar alta nuevo trabajador
2 BOTON Llamar Gestoría
3 BOTON Recoger documentos de la
Gestoría
4 BOTON Cita con el trabajador para
firmar papeles
5 BOTON Archivar papeles
6 BOTON Aplicar procedimiento de
archivado 1
7 BOTON Aplicar procedimiento de
archivado 5
8 BOTON Reparar Coche
9 BOTON Pedir cita al taller
10 BOTON Dejar coche en taller
11 BOTON Recoger coche del taller

Supongo que se ve la idea. Es una forma de "sangrar" las tareas para
que visualmente pueda distinguir entre tareas y subtareas y
subsubtareas.

¿Alguien puede ayudarme con esto?

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Almeida Cox
10/06/2006 - 15:07 | Informe spam
Debido al formato que aplica este "foro", en el ejemplo, las tareas 3,
4, 6 y 7 me las ha puesto en dos lineas. En realidad cada tarea ocupa
una sola linea.
Respuesta Responder a este mensaje
#2 KL
10/06/2006 - 15:25 | Informe spam
Hola Almeida Cox,

Eso lo que dices se puede hacer sin crear botones (y menos aun un boton por cada linea), sin macros y sin modificara los valores de celdas (o sea introducir los espacios extra). Lo que tienes que hacer es seleccionar la celda con la tarea a "sangrar" y

Op1: usar el boton 'Incrementar Sangria' de la barra de herramientas 'Formato' (si el boton no se ve, haz clic sobre el panel de menus y elige 'Personalizar', ve a la pestana 'Comandos', elige la categoria 'Formato', a la derecha busca el comando 'Incrementar Sangria' y arrastralo con el cursor hacia la barra de herramientas donde lo quieras poner)

Op2: ir al menu Formato>Celda..., pestana 'Alineacion', en el desplegable 'Horizontal' eligir la opcion Izquierda(con sangria) y poner el nivel de sangria en el cuadro correspondiente.

Saludos,
KL


"Almeida Cox" wrote in message news:
Es la primera vez que escribo, a ver si me se expicar.

Tengo una LISTA creada con 2 columnas.
El encabezado de las columnas es: ID_TAREA y TEXTO_TAREA

EJEMPLO:
ID_TAREA TEXTO_TAREA
1 Tramitar alta nuevo trabajador
2 Llamar Gestoría
3 Recoger documentos de la Gestoría
4 Cita con el trabajador para firmar papeles
5 Archivar papeles
6 Aplicar procedimiento de archivado 1
7 Aplicar procedimiento de archivado 5
8 Reparar Coche
9 Pedir cita al taller
10 Dejar coche en taller
11 Recoger coche del taller

Me gustaría crear un BOTON a la izquierda de cada fila (registro) de
TEXTO_TAREA que, al pulsarlo, EDITASE la celda de la derecha y
añadiese un espacio. La idea es poder tener un arbol de
tareas/subtareas.

El ejempo quedaría así:
ID_TAREA TEXTO_TAREA
1 BOTON Tramitar alta nuevo trabajador
2 BOTON Llamar Gestoría
3 BOTON Recoger documentos de la
Gestoría
4 BOTON Cita con el trabajador para
firmar papeles
5 BOTON Archivar papeles
6 BOTON Aplicar procedimiento de
archivado 1
7 BOTON Aplicar procedimiento de
archivado 5
8 BOTON Reparar Coche
9 BOTON Pedir cita al taller
10 BOTON Dejar coche en taller
11 BOTON Recoger coche del taller

Supongo que se ve la idea. Es una forma de "sangrar" las tareas para
que visualmente pueda distinguir entre tareas y subtareas y
subsubtareas.

¿Alguien puede ayudarme con esto?

Muchas gracias
Respuesta Responder a este mensaje
#3 Almeida Cox
10/06/2006 - 15:53 | Informe spam
Hola KL. Ante todo gracias por la ayuda.

Si, conocía ambas opciones, pero en la aplicación final los menus
estarán totalmente desactivados. Quiero que los usuarios únicamente
puedan hacer las cosas mediante los botones que yo incorporo a la hoja.
Respuesta Responder a este mensaje
#4 Almeida Cox
10/06/2006 - 16:04 | Informe spam
He hecho una macro que precisamente sangra a la derecha, el código es
"Selection.InsertIndent 1" y asignado esa macro a un botón.

Ahora veremos cómo apico ese botón a a hoja, porque lo que me
gustaría es:
apareciese ese botón en ese registro
la celda seleccionada en ese momento).
Respuesta Responder a este mensaje
#5 KL
10/06/2006 - 16:54 | Informe spam
Hola Almeida Cox,

Ahora veremos cómo apico ese botón a a hoja, porque lo que me
gustaría es:
apareciese ese botón en ese registro
la celda seleccionada en ese momento).



Me parece que una opcion mas "barata" podria ser la de usar celdas que disparen el procedimiento al hacer clic sobre ellas, p.ej.:

Sponiendo que...
1) los ID_TAREA estan en la columna [A]
2) no habra ningun TEXTO_TAREA sin ID_TAREA
3) los TEXTO_TAREA estan en la columna [B]
4) las celdas de la columna [C] serian nuestros "botones virtuales"
5) no sabemos cuantas tareas puede haber en la hoja

Prueba colocar el codigo que te pongo a continuacion en el modulo VBA de la hoja en cuestion. Nota: solo es una idea - el codigo puede necesitar depuracion. Ademas, la primera vez para las tareas existentes tendras que formatear las celdas-botones expresamente.

Saludos,
KL

'inicio codigo
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rng As Range
Set rng = Range([a2], [a65536].End(xlUp)).Offset(, 2)
If Intersect(Target, rng) Is Nothing Then Exit Sub
Cancel = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A2:A65536]) Is Nothing Then Exit Sub
Dim c As Range
Application.ScreenUpdating = False
For Each c In Intersect(Target, [A2:A65536])
If IsEmpty(c) Then
c.Offset(, 2).ClearContents
Else
With c.Offset(, 2)
.Value = "Incrementar la sangria"
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 2
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 2
End With
With .Interior
.ColorIndex = 15
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End With
End If
Next c
Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range, c As Range
Set rng = Range([a2], [a65536].End(xlUp)).Offset(, 2)
If Intersect(Target, rng) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
For Each c In Intersect(Target, rng)
If Not IsEmpty(c) Then
c.Offset(, -1).InsertIndent 1
End If
Next c
Application.ScreenUpdating = True
End Sub
'fin codigo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida