Ayuda con algo muy simple

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Ayuda con algo muy simple

Notapor HARDCORE » 17 Mar 2006 08:56

Pues este es mi primer mensaje en este foro que por lo que veo me va a ser de gran utilidad.

Veamos mis conocimientos de excel son practicamente nulos, y menos aún de el tema de las macros. Os cuento un poco lo que quiero hacer a ver si alguien sabe como resolverlo.

En la hoja adjunta hay dos palabras, selección y fecha, se supone que en selección cuando pongo un 1 quiero que aparezca la fecha en la que lo he puesto y que esta permanezca estática, esto más o menos lo tengo, (la verdad es que he usado una macro que me han pasado y funciona a medias), si os fijais pone la fecha se ponga lo que se ponga, ya sea el 1 que necesito y otra cosa. Me gustaria saber como hacer que solo la ponga cuando pongo un 1, no otra cosa.

Mi otra pregunta es como hacer para que al borrar todos los 1 de golpe automaticamente se borren tambien todas las fechas. Esto ya funciona si borro los 1 uno a uno, pero quiero capturar todos los 1 y borrarlos de golpe, si hago esto las fechas se quedan donde están.

No se si me he conseguido explicar, pero espero que alguién pueda decirme que hacer para que funcione.

Gracias por adelantado.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
HARDCORE
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2006 08:09

Re: Ayuda con algo muy simple

Notapor ioyama » 17 Mar 2006 10:16

Hola HARDCORE

Bienvenido al Foro.

Respecto a tus preguntas:

1ª Cambia en la macro la lí­nea
If Target.Count > 1 Then Exit Sub
por
If Target.VAlue <> 1 Then Exit Sub
Esto hará que todo valor distinto de 1 no afecte a la macro para nada

2ª De momento no se me ha ocurrido nada operativo (pero como hasta el lunes voy a reposar de Excel te he adelantado la primera respuesta).

Un saludo desde Vitoria
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ioyama
Miembro Frecuente
Miembro Frecuente
 
Registrado: 28 Ene 2005 09:12
Ubicación: Vitoria

Re: Ayuda con algo muy simple

Notapor ioyama » 17 Mar 2006 10:56

Hola de nuevo

Al final me ha dado tiempo y .....

Pues eso revisa el adjunto.

Un saludo desde Vitoria y buen fin de semana a todos.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ioyama
Miembro Frecuente
Miembro Frecuente
 
Registrado: 28 Ene 2005 09:12
Ubicación: Vitoria

Re: Ayuda con algo muy simple

Notapor HARDCORE » 17 Mar 2006 13:24

Muchisimas gracias por la bienvenida, y muchas más por la macro, la verdad es que funciona perfecta, solo una pregunta más. Si quiero que la fecha aparezca en otra casilla más adelantada, en vez de +2 pondré por ejemplo +13. Veamos:

Original:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
fil = Target.Row
col = Target.Column
If col = 2 Then
If Cells(fil, col) = "" Then Cells(fil, col + 2) = ""
If Cells(fil, col) = 1 Then Cells(fil, col + 2) = Date
End If
If col = 2 Then Exit Sub
If Cells(fil, col) = "" And Cells(fil + 1, col - 2) = "" Then Cells(fil + 1, col) = ""
End Sub

Cambio:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
fil = Target.Row
col = Target.Column
If col = 2 Then
If Cells(fil, col) = "" Then Cells(fil, col + 13) = ""
If Cells(fil, col) = 1 Then Cells(fil, col + 13) = Date
End If
If col = 2 Then Exit Sub
If Cells(fil, col) = "" And Cells(fil + 1, col - 2) = "" Then Cells(fil + 1, col) = ""
End Sub

Pero ahora como haria para que borrase correctamente porque en la hoja en la que quiero incluir la macro si cambio a +13 no funciona bien. A veces borras un 1 intermedio y te quita las fechas que tienes por abajo.

Incluyo la hoja en la que quiero hacer funcionar esta macro, una base de datos que tiene cerca de 2000 entradas, aunque la he aligerado para que pese poco.

Espero que alguien sepa que pasa :(
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
HARDCORE
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2006 08:09

Re: Ayuda con algo muy simple

Notapor ioyama » 20 Mar 2006 03:24

Hola HARDCORE

Simplemente habí­a que cambiar

If Cells(fil, col) = "" And Cells(fil + 1, col - 2) = "" Then Cells(fil + 1, col) = ""
por
If Cells(fil, col) = "" And Cells(fil + 1, col - 13) = "" Then Cells(fil + 1, col) = ""

con lo que el funcionamiento es correcto. (te adjunto el fichero modificado)

Un saludo desde Vitoria.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ioyama
Miembro Frecuente
Miembro Frecuente
 
Registrado: 28 Ene 2005 09:12
Ubicación: Vitoria

Re: Ayuda con algo muy simple

Notapor HARDCORE » 20 Mar 2006 07:25

Perfecto, ahora si funciona como necesitaba, muchisimas gracias por tu tiempo y por aclararme que sucedia.

Ahora tengo otro problema con esta hoja, se supone que todas aquellas celdas que tienen un 1 puesto pasan a una segunda hoja donde se hace un listado de ellas, en las que figuran sus datos y como no, la fecha en la que se ha introducido ese 1. Todo el listado funciona menos la celda en la que tiene que aparecer la fecha, poniendo un precioso #¡REF!.

He tocado varias cosas, pero la formula deberia funcionar puesto que en las demás celdas así­ lo hace, no se que pasa pero no consigo que aparezca la fecha.

Te dejo el archivo por si lo quieres mirar.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
HARDCORE
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2006 08:09

Re: Ayuda con algo muy simple

Notapor ioyama » 20 Mar 2006 10:45

Hola HARDCORE

Error por un pelo. Has puesto
=BUSCARV($A9;agenda!$A$3:N4948;15;0)

Deberí­as poner columna O en vez de N, tal que (como yo lo pondrí­a)
=BUSCARV($A9;agenda!$A$3:$O$4948;15;Falso)
y dar formato de fecha a la columna en la que va la fórmula.

Para evitar errores del tipo #N/A yo usarí­a algo del tipo
=SI(ESERROR(BUSCARV($A21;agenda!$A$3:$O$4948;15;0));"";BUSCARV($A21;agenda!$A$3:$O$4948;15;0))
mira la ayuda de la función eserror()

Un saludo desde Vitoria.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ioyama
Miembro Frecuente
Miembro Frecuente
 
Registrado: 28 Ene 2005 09:12
Ubicación: Vitoria

Re: Ayuda con algo muy simple

Notapor HARDCORE » 20 Mar 2006 12:14

Impresionante, la verdad es que no lo veí­a. Ahora mirare lo que comentas del ESERROR

Muchisimas gracias por tu ayuda, ahora ya hace lo que necesitaba.

Un saludo.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
HARDCORE
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2006 08:09

Re: Ayuda con algo muy simple

Notapor HARDCORE » 30 Mar 2006 15:29

Puffff, sigo teniendo problemas, ahora resulta que al intentar añadir datos nuevos a la base salta un error que pone

error "1004" en tiempo de ejecución y al darle a depurar marca en amarillo esta linea de la macro:

If Cells(fil, col) = "" And Cells(fil + 1, col - 13) = "" Then

¿Sabeis que sucede?
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
HARDCORE
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2006 08:09

Re: Ayuda con algo muy simple

Notapor p@li » 30 Mar 2006 16:09

si no me equivoco eso pasa cuando alguno de los valores de las variables de Fila o Columna es 0 o menor a 0.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
p@li
Miembro Frecuente
Miembro Frecuente
 
Registrado: 04 Oct 2005 16:55
Ubicación: Argentina

Re: Ayuda con algo muy simple

Notapor HARDCORE » 30 Mar 2006 16:27

Y en caso de que sea eso que hay que tocar para que no suceda ????
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
HARDCORE
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2006 08:09

Re: Ayuda con algo muy simple

Notapor ioyama » 31 Mar 2006 02:55

Hola HARDCORE

Prueba a añadir
If col <> 15 Then Exit Sub
La columna 15 es la de las fechas.

tal que la macro te quede al final

.......
If col = 2 Then Exit Sub
If col <> 15 Then Exit Sub (esta es la fila añadida)
If Cells(fil, col) = "" And Cells(fil + 1, col - 13) = "" Then Cells(fil + 1, col) = ""
End Sub

Un saludo desde Vitoria
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ioyama
Miembro Frecuente
Miembro Frecuente
 
Registrado: 28 Ene 2005 09:12
Ubicación: Vitoria

Re: Ayuda con algo muy simple

Notapor HARDCORE » 04 Abr 2006 06:03

Pues ahora si que funciona, menos mal, porque pensaba que tenia que ir depurando cada vez que introducia algo nuevo.

Gracias de nuevo
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
HARDCORE
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2006 08:09


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot], Google [Bot] y 2 invitados