¿Es posible usar un inputbox para varias "sub" (macros)?

Saludos

¿Es posible usar un inputbox para varias "sub" (macros), pero que sólo aparezca el llenado del inputbox una vez?
El inputbox es:

fullinfo = InputBox("Escriba que fila de las empresas desea llenar", "Code")

Tengo que usar el inputbox en 25 sub (macros), dado que la sub (macro) que hice inicialmente es muy extensa y la tuve que dividir en 25 Subs (macros).

Para correr las 25 macros uso una sub con 25 renglones de "Call" y la macro correspondiente. En esta macro que llama a las demás agregué el inputbox, sin embargo desde la primera macro que llama no usa la variable "fullinfo" (que es la del inputbox).

Ya intenté usar una macro con el inputbox, pero el problema es que debo escribir el número de la fila a llenar (el dato que pide el inputbox) 25 veces y considero sería más útil llenarlo solamente una vez.

De antemano gracias.

1 Respuesta

Respuesta
1

Declara la variable fullinfo al principio de todas tus macros, es decir, la primer línea de tu módulo debe ser esta:

Dim fullinfo

Prueba y me comentas

Saludos. DAM

Hola DAM

Agregué el Dim fullinfo a las 25 macros, pero aun el depurador me marca fullinfo en las macro como si no lo tuviera definido.

Anexo el principio de la macro:

Sub llenainfobmv()
'
' llenainfobmv Macro
'
'
fullinfo = InputBox("Escriba que fila de las emisoras desea llenar", "Code")
Call llenainformacion1
Call llenainformacion2
Call llenainformacion3
Call llenainformacion4
Call llenainformacion5
Call llenainformacion6
Call llenainformacion7
Call llenainformacion8
Call llenainformacion9
Call llenainformacion10
Call llenainformacion11
Call llenainformacion12
Call llenainformacion13
Call llenainformacion14
Call llenainformacion15
Call llenainformacion16
Call llenainformacion17
Call llenainformacion18
Call llenainformacion19
Call llenainformacion20
Call llenainformacion21
Call llenainformacion22
Call llenainformacion23
Call llenainformacion24
Call llenainformacion25
End Sub

Sub llenainformacion1()
Dim fullinfo
Sheets("BMV DATA").Select
Range("B7").Select
Selection.Copy
Sheets("AC").Select
Range("B" & fullinfo).Select
ActiveSheet.Paste

End Sub

El renglon subrrayado (Range("B & fullinfo).Select) es el que me marca error.

Las otras 24 macros son básicamente (lo extenso son unas fórmulas que debe agregar de modo similar al copiado de información, por eso tuve que dividir el proceso en 25 partes) iguales a la anterior.

Como puedes ver, Sub llenainfobmv() llama a llenainformacion1...25.

En Sub llenainfobmv puse el inputbox: fullinfo = InputBox("Escriba que fila de las emisoras desea llenar", "Code")

(Te mando la macro porque no sé si a esto te referias, en caso de ser así te comento que aun no me reconoce fullinfo)

:(

No, solamente lo declaras una vez en el módulo principal. Esa parte del módulo se llama (General - Declaraciones)

Te debe quedar algo así:

Dim fullinfo
Sub llenainfobmv()
'
' llenainfobmv Macro
'
'
fullinfo = InputBox("Escriba que fila de las emisoras desea llenar", "Code")
Call llenainformacion1
Call llenainformacion2
Call llenainformacion3
End Sub
Sub llenainformacion1()
Sheets("BMV DATA").Select
Range("B7").Select
Selection.Copy
Sheets("AC").Select
Range("B" & fullinfo).Select
ActiveSheet.Paste
End Sub

Si te das cuenta el Dim fullinfo va hasta arriba del módulo, debe ser la primer línea de tu código, incluso va antes de "Sub llenainfobmv"

Y no declares fullinfo en cada macro.

Si tienes dudas envíame tu archivo y actualizo la macro a [email protected]

Si te funciona, no olvides finalizar la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas