En vba para excel cómo pasar parámetros de un procedimiento a otro

Quisiera por favor vuestra ayuda para saber por que no va el programa2 que llama al programa1 pasando los parámetros hoja y celda_inicial.

Este programa tendría que situar la celda activa en la última fila vacía.

Veo que el problema es al pasar los parámetros, porque cuando ejecuto el programa X con los parámetros  en el código [(Hoja = 2), y celda_inicial = A1)], este funciona sin problemas.

Ahí dejo el código y gracias.

Option Explicit

_______________programa 1____________

Sub ultimoregistro(hoja As String, celda_inicial As String)

    Worksheets(hoja).Activate

    ActiveSheet.Range("Celda_Inicial").Activate

    Do While Not IsEmpty(ActiveCell)

        ActiveCell.Offset(1, 0).Activate

    Loop

End Sub

________________programa2_____________________       

Sub CommandButton1_Click()

   Call ultimoregistro("menu", "A1")

End Sub

________________programa X_________________

Sub registro()

    Worksheets(2).Activate

    ActiveSheet.Range("A1").Activate

    Do While Not IsEmpty(ActiveCell)

        ActiveCell.Offset(1, 0).Activate

    Loop

End Sub

1 Respuesta

Respuesta
1

Leyendo el código noto que en 'programa1' debes llamar al rango sin las comillas.

Probarlo de ese modo y me comentas.

También hay otros modos más eficientes para encontrar fines de rango, como así también para recorrer una hoja sin seleccionarla. Estos temas los tengo explicados en las páginas de la seccion Macros de mi sitio.

Por ej:

Set hom= Sheets("Menú")

filx = hom.Range("A" & Rows.Count).End(xlup).Row +1

Estas 2 líneas colocadas en el programa2 te devolverán la primer fila libre según col A de la hoja 'menu' ... Sin necesidad de llamar a otra subrutina.

Sdos.

Elsa

http://aplicaexcel.galeon.com/index.com

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas