Saltar al contenido

Error al clicar de forma tactil en macro


96andres96

Recommended Posts

publicado

Buenas tardes,

tengo un problema que me trae por el camino de la amargura porque no se me ocurre cómo solucionarlo.

Tengo un pc convertible que puedo usar la pantalla de forma táctil, y en ese pc tengo un programa con diferentes macros. Algunas de esas macros están ubicadas en la esquina superior izquierda de la hoja, y de un momento a otro en dicho programa dejó de funcionar el cliqueo de las macros de manera táctil solo  en esa esquina superior del excel, en las otras zonas si funcionan.

Como no encontraba solución (ya que la pantalla táctil no está mal) eliminé Microsoft 365 y lo reinstalé, y me seguía dando error. Entonces se me ocurrió crear un libro con una macro simple que diga "HOLA" por ver si el error estaba en ese programa, pero incluso en un libro nuevo y sencillo me ocurre el mismo problema, por lo que hay algo que no sé qué es que no funciona.

Como veréis en el vídeo que adjunto a continuación, si coloco la figura que ejecuta la macro en la esquina superior izquierda y hago un clic con el dedo no funciona, si la hago con el ratón sí. Si muevo la macro y hago clic táctil funciona, y para que veáis que la pantalla del pc sí funciona, si quito de esa zona la figura y cliqueo de forma táctil en esa zona veréis que puedo clicar en las celdas.

¿A alguno se le ocurre qué puede ser? Porque de verdad que este fallo me ha dado muchos dolores de cabeza, ya que para el trabajo necesito que funcione de manera táctil.

Desde ya muchas gracias.

 

 

 

 

 

publicado

Hola

Olvidaste algo importante, probar con otro programa que ese pequeño cuadrante de la pantalla táctil realmente esté funcionando ya que en realidad no hay ninguna relación entre lo que hagas con el puntero del ratón en esa misma zona. Asimismo, podrías haber probado corriendo las columnas que se ven en pantalla y colocando el objeto en ese cuadrante del problema y ver qué ocurre al usar con táctil, etc. 

publicado
hace 37 minutos , Abraham Valencia dijo:

Hola

Olvidaste algo importante, probar con otro programa que ese pequeño cuadrante de la pantalla táctil realmente esté funcionando ya que en realidad no hay ninguna relación entre lo que hagas con el puntero del ratón en esa misma zona. Asimismo, podrías haber probado corriendo las columnas que se ven en pantalla y colocando el objeto en ese cuadrante del problema y ver qué ocurre al usar con táctil, etc. 

¡Hola! Gracias por responder.

La pantalla funciona perfectamente. De hecho, tal y como muestro en el vídeo, si ruedo la macro y hago acciones táctiles en ese cuadrante funcionan correctamente, de ahí que no sepa qué está ocurriendo. Y fuera del excel también todo funciona bien en ese cuadrante.

publicado

Jelow,

 

Desde el desconocimiento y animándote a que leas detenidamente lo que te ha comentado Abraham, hay algunos tips que te pueden ayudar a detectar donde está el fallo...

hace 16 horas, Abraham Valencia dijo:

podrías haber probado corriendo las columnas que se ven en pantalla y colocando el objeto en ese cuadrante del problema y ver qué ocurre al usar con táctil, etc. 

 

Haz scroll lateral, o vertical, y prueba a poner el objeto en la "zona de fallo", pero que no sea en el rango que aparece en el video, sino en otro rango de celdas.

 

Si no te sirve, siempre puede ser un problema del propio dispositivo, que no te deja poner ahí objetos, por algún tipo de uso reservado...

 

Como digo, Abraham te dio algunas ideas. Después de probar varios escenarios, podrás averiguar donde está el fallo.

 

Espero puedas resolverlo 

publicado
En 20/2/2023 at 13:36 , EdadMedia dijo:

Jelow,

 

Desde el desconocimiento y animándote a que leas detenidamente lo que te ha comentado Abraham, hay algunos tips que te pueden ayudar a detectar donde está el fallo...

 

Haz scroll lateral, o vertical, y prueba a poner el objeto en la "zona de fallo", pero que no sea en el rango que aparece en el video, sino en otro rango de celdas.

 

Si no te sirve, siempre puede ser un problema del propio dispositivo, que no te deja poner ahí objetos, por algún tipo de uso reservado...

 

Como digo, Abraham te dio algunas ideas. Después de probar varios escenarios, podrás averiguar donde está el fallo.

 

Espero puedas resolverlo 

Buenos días! Gracias por tu respuesta.

La zona de fallo es el rango desde A1 a D7, pero no por las celdas sino por ese cuadrante ya que si amplio o reduzco el zoom de la hoja si cliqueo donde está originalmente el rango A1:D7 entonces no puedo cliquear sobre ningún objeto de esa zona. Sí puedo clicar sobre las celdas de ese cuadrante de pantalla sin ningún problema, es solo cuando quiero clicar sobre algún objeto situado ahí. Este fallo me ocurre con cualquier libro de excel y solo en este programa, ya que ni en word ni en cualquier otro programa me da error al clicar en objetos, de ahí mi desconcierto. 

Cabe recalcar que no hay nada de uso reservado del dispositivo ya que no ha sido modificado nada.

Espero que puedan echarme una mano.

Gracias.

publicado

Acabo de darme cuenta de otra cosa, es que estoy totalmente desconcertado...

Cuando cliqueo fijo se me genera un cuadro en la zona del click, pues si hago esto en el excel va todo bien salvo si lo hago sobre el objeto situado en el rango A1:D7 que el cuadro en lugar de formarse en mi dedo se forma en la esquina superior izquierda de la pantalla.

Como ven esto solo sucede si hago click sobre el objeto en ese rango, ya que si quito el objeto y hago click fijo en el rango A1:D7 va todo bien, y como digo si salgo de excel y trabajo en cualquier otro programa también va todo bien, por lo que descarto que sea error de la pantalla.

Lo que comentas EdadMedia yo también lo pensé, por ello decidí reinstalar todo el paquete de microsoft y nada...

Adjunto un vídeo explicativo:

Gracias de antemano, a ver si se da con este error ?

 

publicado

Hola a todos! .

Ya he conseguido solucionarlo. Me puse en contacto con asistencia de Microsoft y lo que hicieron fue deshabilitar: opción acelerada de hardware en excel desde Opciones avanzadas, y con eso ya funcionó de nuevo con normalidad el excel. Comento esto por si a alguien más le sucediese que sepa cómo se puede solucionar.

Gracias a todos por tratar de ayudarme.

Doy el tema por resuelto y cerrado.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.