Posicionamiento del cursor en una hoja de Excel

Resuelto
sebyyy -  
 Usuario anónimo -
Hola,

He estado trabajando en un proyecto durante un tiempo y estoy buscando cómo posicionar el cursor en una celda específica.

Me explico:
Debo insertar números en un rango, y mientras tanto, necesito hacer funcionar una macro y me gustaría que, cuando termine de usar mi macro, el cursor se coloque automáticamente en la celda en la que estaba antes de usar mi macro.

¿Alguien podría ayudarme?

El único problema es que no siempre

Configuración: Windows 7 / Chrome 52.0.2743.116

7 respuestas

  1. Usuario anónimo
     
    Buenas noches sebyyy,

    Mira este código VBA:

     Option Explicit Sub Essai() Dim cellX As Range ' 1) antes de hacer el trabajo de la macro: Set CellX = ActiveCell ' 2) trabajo de la macro Essai = lo que quieres hacer: ' inserción de números en un rango (u otra cosa) ' 3) ir a la celda de inicio (antes del trabajo) CellX.Select End Sub 

    También puedes utilizar este método:

     Option Explicit Sub Essai() Dim lig As Long, col As Integer ' 1) antes de hacer el trabajo de la macro: lig = ActiveCell.Row: col = ActiveCell.Column ' 2) trabajo de la macro Essai = lo que quieres hacer: ' inserción de números en un rango (u otra cosa) ' 3) ir a la celda de inicio (antes del trabajo) Cells(lig, col).Select End Sub 

    Si tu problema está resuelto, gracias por ir arriba de la página
    para hacer clic en « Marcar como resuelto ».

    Cordialmente. 😊
    0
  2. sebyyy
     
    Gracias Alkan por tu respuesta ultra rápida, pero me indica un mensaje de error y la ventana de VBA se abre cada vez...

    ¿Debo hacer una modificación en los VBA?

    ;-)
    0
    1. Usuario anónimo
       

      Tu debes colocar tu código VBA en un módulo, por ejemplo en Módulo1.
      ¡Y no los 2 al mismo tiempo: o el primer código VBA, o el segundo!

      ¿Cuál es tu mensaje de error? Cuando haces clic en el botón « Depurar »,
      ¿cuál es la línea de tu código VBA que se resalta en amarillo (si hay alguna)?

      ¿Puedes poner en tu próximo mensaje la Sub de tu código VBA que presenta
      el problema (simplemente copiándola y pegándola)? Espero tu respuesta. 😊
      0
      1. Sebyyy > Usuario anónimo
         
        Hola albkan,

        He intentado de nuevo tu código VBA pero todavía no funciona... lo he insertado en el módulo1 pero sin éxito... :-(

        ¿Tienes alguna otra idea o puedes explicarme con más detalle?

        Gracias de antemano.
        0
      2. Usuario anónimo > Sebyyy
         

        Hola Sebyyy, ¿quizás veas mejor con mi archivo de Excel 2007?  😉

        Cuando abras el archivo de Excel, puedes hacer < Ctrl >< a > que lanza
        la macro Ensayo1() o < Ctrl >< b > que lanza la macro Ensayo2(). Hará
        exactamente lo mismo, pero el código VBA es diferente: tú tienes que
        leer todo lo que hay en Módulo1 (hay muchos comentarios).

        Si está bien, no olvides marcar el tema como resuelto; si no, envíame
        tu archivo de Excel a través de cjoint.com o mon-partage.fr  😊
        0
      3. sebyyy > Usuario anónimo
         
        Hola albkan,

        lo siento pero no puedo, ni con múltiples intentos... :-(
        ¿Puedo enviarte mi archivo de Excel?
        Si está bien, ¿cómo lo hago? ¿Tendrías una dirección de correo electrónico?

        gracias de antemano ;-)
        0
      4. Usuario anónimo > sebyyy
         

        Buenas tardes sebyyy,

        Escribiste: "no puedo ni después de múltiples intentos... :-( ";
        pero, ¿con qué archivo de Excel? ¿El tuyo, o el que puse en el enlace
        de mi mensaje #6?

        Si es con el mío, que he probado y funciona correctamente,
        entonces es solo un manejo que debes hacer.

        Si es con el tuyo, lo mejor es que me envíes tu archivo:
        ve a la página mon-partage.fr; debes abrir el archivo, luego
        hacer clic en el botón "Uploader"; espera un poco: verás
        entonces arriba un enlace para copiar y pegar en tu próxima
        publicación en el foro.

        Si no puedes, intenta de nuevo con la página
        cjoint.com; deberás ingresar tu dirección de correo electrónico, que permanecerá
        confidencial. También habrá un enlace para copiar y pegar.

        Espero tu respuesta. 😊
        0
  3. sebyyy
     
    albkan,

    Aquí está el enlace:
    https://mon-partage.fr/f/z6pmtPCy/

    Gracias de nuevo por tu valiosa ayuda ^^
    0
    1. Usuario anónimo
       

      Hola sebyyy,

      Si descargaste y probaste el archivo de Excel 2007 de mi mensaje #6, pudiste
      ver que es una muy buena demostración de lo que pediste al principio.

      Dime si esta demostración te ayudó a entender mejor el funcionamiento de
      guardar / recuperar la posición de la celda activa.

      ----------------------------------------------------------

      Todo lo que sigue es para el archivo que me enviaste (por lo cual te agradezco).

      =================================

      1) No olvidaste, ¿verdad?, que tienes 3 hojas ocultas? 😉

      ----------------------------------------------------------

      2) Es normal que no hayas logrado hacer funcionar mi código VBA: lo pusiste
      en ThisWorkbook en lugar de ponerlo en un módulo. Así que selecciona todo
      el código y haz un cortar / pegar de ThisWorkbook (que estará vacío)
      en Module3 (que actualmente está vacío). Pero al leer los comentarios,
      entenderás que para ver que funcione, debes agregar un trabajo de
      tu elección en el paso 2) del código VBA que vaya a una celda distinta de la celda
      activa. Si haces todo esto correctamente, tendrás el mismo tipo de
      funcionamiento que el de mi demostración (la que mencioné al inicio
      de este mensaje, es decir, el archivo de Excel 2007 que te envié).

      ----------------------------------------------------------

      3) Después del cortar / pegar anterior, Module3 que estaba vacío ya no lo está.
      Module5 está vacío; Module4 contiene una sola línea: Option Explicit
      (por lo tanto, es innecesario ya que no hay ninguna sub o función) => como si estuviera
      también vacío, por lo que puedes eliminar los dos módulos 4 y 5.

      ----------------------------------------------------------

      4) Lo que preguntaste después en tu burbuja de texto no está muy claro.

      La columna donde insertas números, ¿es de B22 a B111?
      Luego, ¿debería continuar de G22 a G111?

      Siguiendo con lo que pediste, ¿puedes confirmarme que:
      a) Solo la 1ª hoja "LOTOVérif" está involucrada, o debemos ver otras
      hojas (posiblemente ocultas)?
      b) Solo la macro QUINE1 del Module6 está involucrada o debo ver otra
      parte de tu código VBA (si es así, ¿cuál?)

      ----------------------------------------------------------

      5) Así que por ahora, entiendo lo siguiente: para tu nueva solicitud, debo ver
      solo la 1ª hoja "LOTOVérif" y la macro QUINE1() del Module6; luego:

      Cada vez que uses tu macro QUINE1() del Module6, tu celda activa
      que estaba inicialmente en B22 debe bajar una celda hasta B111; y luego,
      ya sea que se detenga en B111 o que deba continuar en G22 para descender
      una celda hasta G111.

      Confírmamelo, o aclara mejor lo que deseas. ¡Porque ten en cuenta que
      una enunciación de ejercicio bien expuesta ya es el 50 % de la solución! 😉

      =================================

      Espero tu respuesta. Cordialmente. 😊
      0
  4. sebyyy
     
    Hola albkan,

    otra vez gracias por esta información. Entonces, me gustaría que la celda activa esté siempre entre las celdas B22 y B111. Las celdas G22 a G111 están destinadas únicamente para otra cosa... (sacar los 90 números).

    Gracias ;-)
    0
  5. sebyyy
     
    Albkan,

    te vuelvo a adjuntar el archivo con macros adicionales. Tendrás un pequeño globo con lo que me gustaría más precisamente. Espero que puedas ayudarme con la finalización de mi programa.

    Y los pestañas ocultas, no nos ocupamos de eso... son datos para que mi proyecto funcione.

    Muchas gracias otra vez ;-)

    https://mon-partage.fr/f/DnnqgnpD/
    0
    1. Usuario anónimo
       

      Hola sebyyy,

      ¡Tu nuevo archivo de Excel 2007 está listo!

      -------------------------------------------------------

      1) Uso

      Cuando ingresas un n° en una de las celdas B22 a B111, presiona < Enter >
      para quedarte en la misma celda; o < ↓ > para bajar a la siguiente celda.

      -------------------------------------------------------

      2) Parte de VBA

      Verás que he podido hacer muchas simplificaciones; para los módulos,
      solo quedan 2, y todo está en Módulo1 y Módulo2.

      -------------------------------------------------------

      Dime qué piensas y si te conviene.

      Si tu problema está resuelto, gracias por ir a la parte superior de la página
      para hacer clic en "Marcar como resuelto".

      Saludos. 😊
      0
  6. sebyyy
     
    Hola albkan,

    ¡Ya te doy muchas gracias por tu ayuda que avanza mi proyecto de maravilla! ^^

    Solo que tengo algunas cositas más... es al realizar una prueba que se nota que hay cosas que no funcionan a la perfección... :-/

    1) También me gustaría que, cuando utilizo la macro "findes90", el cursor se coloque después de los números que acabo de insertar. Entonces, si he insertado por ejemplo 42 números en las celdas de B22 a B111, mi macro va a cancelar los números de las celdas G22 a G111 y me gustaría que el cursor se pusiera después de los números insertados en las celdas de B22 a B111.

    2) Hay una casilla amarilla al lado del cuadrado "LOTOVérif" rojo. Si hago un control de una carta manual (que no sería válida), el cursor no se coloca automáticamente en las celdas de B22 a B111. ¿Es eso también posible? Por ejemplo, durante el juego, una persona se anuncia, yo controlo manualmente la carta escribiendo el número en esa casilla amarilla, seguido de la tecla "ENTER". Pero la casilla activa permanece en la que está justo debajo.

    3) Sería un lujo si puedes hacerme eso, me gustaría que las filas de 21 a 100... (hasta el final de la página) se oculten. He intentado, pero cuando inserto mis números, la casilla activa B22 nunca cambia. (Eso, solo si es posible).

    Sé que soy pesado, pero te prometo que después de esto te dejaré en paz. Normalmente, si funciona, mi proyecto estará terminado y podré usarlo pronto.

    Una vez más, te agradezco por tu ayuda que me es muy valiosa.

    Con cariño
    0
    1. Usuario anónimo
       

      Buenas noches sebyyy,

      Según lo que escribiste en tu punto 2), te aconsejo hacer lo siguiente:

      botón Office (= Archivo), « Opciones de Excel »; a la izquierda: « Opciones avanzadas »;
      a la derecha, 1ª sección « Opciones de edición », desmarca la siguiente casilla:
      ☐ Mover la selección después de la validación

      Es mucho más práctico: después de haber validado una celda con
      la tecla < Enter >, la selección se queda en esa misma celda, lo que permite
      hacer otra cosa sobre ella: formatearla en negrita, elegir otro
      formato de celda, etc. Y si necesitas ir a la celda de abajo,
      basta con usar < ↓ > en lugar de < Enter >

      --------------------------------------------------

      Para hacer tu punto 2), he modificado el código VBA de Feuil1 (LOTOVérif).
      Para el resto, luego modifiqué el código VBA de Module1.

      El código VBA de Module2 es el mismo que el anterior.

      --------------------------------------------------

      No entendí bien tu punto 3), pero quizás ya se haya hecho
      con las nuevas modificaciones que realicé. Si es así, ¡mejor!: ¡resuelto!

      De lo contrario:

      Para las filas 21 a 100, ¿estás seguro de querer ocultarlas (= esconder)?
      Si es así: Rows("21:100").Hidden = True

      ¿Pero a raíz de qué quieres hacerlo entonces? ¿Solo pensándolo, telepáticamente?
      ¿Por la operación del Espíritu Santo de Excel? No, no, estoy bromeando, por supuesto! 😉

      Pero entiendes que debes dar más precisiones.

      Además, cuando estas filas estén ocultas, sin duda querrás volver a mostrarlas.
      Si es así: Rows("21:100").Hidden = False

      Pero otra vez, ¡hay que decir a raíz de qué! 😉

      Estoy totalmente dispuesto a hacer tu punto 3) tan pronto como me des todas
      las precisiones útiles (si no se han hecho ya por mis últimas modificaciones, ya que no
      estoy seguro de que realmente quieras esconder las filas 21 a 100, sino solo cambiar la posición de la celda activa).

      --------------------------------------------------

      Aquí tienes tu nuevo archivo de Excel 2007.

      --------------------------------------------------

      Amistosamente, albkan 😊
      0