** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Recorrer DTPickers con variable
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoRecorrer DTPickers con variable

 Responder Responder
Autor
Mensaje Invertir el orden de clasificación
Ra2ven Ver desplegable
Nuevo
Nuevo


Unido: 18/Agosto/2014
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Tema: Recorrer DTPickers con variable
    Enviado: 21/Agosto/2014 a las 20:54
Publicado originalmente por sdgm sdgm escribió:

¿Será un conflicto de librerías?

En tu Excel, pulsa Alt + F11, y en Herramientas - Referencias, verifica si todas las librerías están Ok.




Me dice: "error en el registro de acceso al sistema".

Al final he encontrado solución. Simplemente cerrar el archivo de Excel y abrir otro archivo excel de ejemplo de calendario bajado de otra web.

Si ahora vuelvo al primero ya funciona correctamente. Parece ser que un clavo saca otro clavo.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5579
Enlace directo a este mensaje Enviado: 20/Agosto/2014 a las 18:24
Si ayer lo hacía perfectamente y hoy no, tendrás que investigar que es lo que ha cambiado desde ayer, yo no puedo investigar en tu archivo.
 
De cualquier modo independientemente de mi código el evento SelectionChange debe ejecutarse al seleccionar una celda de la hoja, siempre que el código esté en el módulo de dicha hoja y no en un módulo ordinario o en el módulo de otra hoja.
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
sdgm Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 21/Abril/2005
Localización: Guatemala
Estado: Sin conexión
Puntos: 906
Enlace directo a este mensaje Enviado: 20/Agosto/2014 a las 16:36
¿Será un conflicto de librerías?

En tu Excel, pulsa Alt + F11, y en Herramientas - Referencias, verifica si todas las librerías están Ok.


Cordialmente, David
Arriba
Ra2ven Ver desplegable
Nuevo
Nuevo


Unido: 18/Agosto/2014
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 20/Agosto/2014 a las 15:49
He probado lo que dices pero sigue igual. No detecta punto de interrupción ni nada, simplemente no se ejecuta código.

Los archivos los descargo directamente de tu web sin tocar ni una letra y no funciona cuando ayer lo hacia perfectamente. Solo descomprimo el rar en una carpeta y abro el Excel.

Si le doy a F5 en las diferentes ventanas de código en VBA me sale que le de nombre al macro salvo en la de userform1 que me abre el calendario pero al seleccionar una fecha salta error "error en el método value de objeto range"

Editado por Ra2ven - 20/Agosto/2014 a las 15:50
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5579
Enlace directo a este mensaje Enviado: 20/Agosto/2014 a las 12:34
 

Ra2ven ha dicho:

... Es como si el código VBA no se inicia con el evento Worksheet_SelectionChange...

Esto podría ocurrir si en una macro que;
desactiva los eventos al principio, ejecuta  el resto de acciones y activa de nuevo los eventos, y por un mal funcionamiento o manualmente por parte del usuario la macro se detiene a mitad de proceso sin llegar a activar nuevamente los procesos, quedando desactivados de forma permanente.

 
Una forma rápida de comprobar esto es: Pones un punto de interupción en una de las lineas (cursor en esa linea + F9), por ejemplo en la linea del IF..., y en la hoja haces clic en una celda que no sea la activa, si los eventos están activados el código debe detenerse en la linea que marcaste.
 
Para activar los eventos "a mano":  En la ventana inmediato (control + G) del Editor VBA, escribe Application.EnableEvents = True y pulsa INTRO.
 
 
Editado (AnSanVal): Viendo la imagen de tu mensaje; Supongo que no habrás quitado el apostrofo de 'Exit Sub, pues no funcionaría nunca el resto del código.
 
 


Editado por AnSanVal - 20/Agosto/2014 a las 12:49
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
Ra2ven Ver desplegable
Nuevo
Nuevo


Unido: 18/Agosto/2014
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 20/Agosto/2014 a las 11:34
Los macros están habilitados y con seguridad al mínimo.

Es como si el código VBA no se inicia con el evento Worksheet_SelectionChange

He probado a crear una aplicación simple en otra hoja y tampoco ejecuta el código VBA en Excel.

Si entro en el código y lo ejecuto desde ahí me pide un nombre para la macro y tampoco hace nada:




Arriba
Ra2ven Ver desplegable
Nuevo
Nuevo


Unido: 18/Agosto/2014
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 19/Agosto/2014 a las 23:14
Publicado originalmente por AnSanVal AnSanVal escribió:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = 2 And Target.Row > 2 Then <FONT color=#006600>' Aquí actua a partir de B3, modifica según tu caso.[/COLOR]


. . .


Nose si esto entra dentro de la categoría de brujería...

Me bajo tu código lo modifico para mis celdas y va bien. Al cabo de un rato vuelvo a probar y ya no abre el calendario.

Pensé que habría hecho algún cambio que daño el código así que borro el código modificado y bajo otra vez tu código de la web, y en este tampoco funciona el calendario!. No toco nada de tu código y no va cuando antes iba perfectamente...
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5579
Enlace directo a este mensaje Enviado: 19/Agosto/2014 a las 21:46

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = 2 And Target.Row > 2 Then ' Aquí actua a partir de B3, modifica según tu caso.

. . .
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
Ra2ven Ver desplegable
Nuevo
Nuevo


Unido: 18/Agosto/2014
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 19/Agosto/2014 a las 21:15
No se que pasa que ahora al abrir el Excel no puedo seleccionar nada en los datepickers (aparecen cruces rojas).

AnSanVal muy bueno el código, solo tengo una duda, ¿como activo el control para otras celdas que no sean las B3:30?

Gracias
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5579
Enlace directo a este mensaje Enviado: 19/Agosto/2014 a las 12:05

Opino que mientras lo tengas instalado (y puedas disponer de él) es una muy buena opción, lo que no es tan recomendable es "200 DTPickers", lo recomendable es uno sólo que escriba la fecha en (por ejemplo) la celda seleccionada (y se cierre) y que cuando cambies a otra celda de fecha vuelvas a abrir el mismo DTPicker.

Alternativa (para cuando no dispongas de DTPicker) en mi página tengo el ejemplo 32, con un calendario creado por mi que escribe la fecha directamente en celdas.
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
Ra2ven Ver desplegable
Nuevo
Nuevo


Unido: 18/Agosto/2014
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 19/Agosto/2014 a las 10:17
Pues funciona bien para seleccionar fechas de un calendario. ¿Cuál es la alternativa entonces?

Yo lo que quiero es una celda en la que pueda seleccionar una fecha de un calendario, se quede ese valor en la celda y sea accesible por VBA
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18821
Enlace directo a este mensaje Enviado: 18/Agosto/2014 a las 19:32
Para empezar decirte que Microsoft ha quitado de la circulación los controles ActiveX, entre los que está incluido el DTPicker, por ese motivo te sugiero que replantees tu aplicación.
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
Ra2ven Ver desplegable
Nuevo
Nuevo


Unido: 18/Agosto/2014
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 18/Agosto/2014 a las 19:07
ah, Si es de Excel.

Fallo mio.

Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18821
Enlace directo a este mensaje Enviado: 18/Agosto/2014 a las 19:06
Hola!

si esto es como parece algo relacionado con Excel, ¿porqué lo has posteado en Access y VBA?, si efectivamente es así, por favor dilo para que lo movamos al foro de Excel.

Editado por Emilio - 18/Agosto/2014 a las 19:06
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
Ra2ven Ver desplegable
Nuevo
Nuevo


Unido: 18/Agosto/2014
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 18/Agosto/2014 a las 18:28
Hola, soy nuevo en el foro y lo primero de todo mando un saludo.

Tengo una aplicación en Excel con 200 DTPickers con sus fechas seleccionadas y debo chequear el valor de cada uno para establecer una condición:


Private Sub DTPicker343_Change()

Suma = 0

Dim Fecha As Object
Dim Fecha1 As Variant

For variable = 1 To 200

   Fecha1 = "DTPicker" & variable
   Set Fecha = Fecha1

   If Fecha.Value < DTPicker343.Value Then
    Suma = Suma + Range("E" & variable)
   End If
Next

Range("I6").Value = Suma
End Sub


Básicamente consiste en que al elegir una fecha en el DTpicker343 se comprueban las fechas de los DTPickers del 1 al 200 y se suman los valores numéricos de la columna anexa a cada uno (E1 a E200) si se cumple la condición de que la fecha del DTPicker evaluado es inferior a la del DTPicker343.

Simplificándolo el problema es construir una referencia a un objeto DTPicker"x" a base de strings o variants.

He probado de todo con las variables a unir (strings, variants, objects, set, createobject, etc.) y me da errores de todo tipo

Un saludo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable