No se puede repetir Dim Ruta As String, Nombre As String

27/09/2005 - 19:38 por Raulo | Informe spam
Necesito repetir esta secuencia "Dim Ruta As String, Nombre As String" en una
macro y no puedo por este error:

"Declaración duplicada en el ambito actual"

hay alguna manera de repetirla y que no me salga el error?
Gracias

Preguntas similare

Leer las respuestas

#1 Carlos Durán Urenda
27/09/2005 - 21:31 | Informe spam
mmm...
Lo normal es que cuando duplicas declaraciones de varibles te salte el
error, debido a que VBA no puede resolver ha que variable se desea hacer
referencia

si lo que deseas es compartir el mismo nombre para diferentes variables,
supongo que lo que te conviene es crear un arreglo de forma que puedas tener
varios elementos almacenados bajo un mismo nombre de variable

el arreglo no necesariamente debe ser de longitud fija, puedes hacerlo
dinamico, de forma que pueda crecer cuando lo necesesites utilizando un
ReDim


espero te sirva, ... si comentas un poco mas seria de gran utilidad

Saludos
Carlos Durán


"Raulo" escribió en el mensaje
news:
Necesito repetir esta secuencia "Dim Ruta As String, Nombre As String" en
una
macro y no puedo por este error:

"Declaración duplicada en el ambito actual"

hay alguna manera de repetirla y que no me salga el error?
Gracias
Respuesta Responder a este mensaje
#2 Raulo
28/09/2005 - 17:22 | Informe spam
Gracias Carlos pero no puedo.
Todo viene de esta respuesta que me ayudo a que la macro me guarde un
archivo con la fecha del día. Ahora quiero repetir la misma secuencia para
que me genere otro archivo en otro subd. y no me lo permite. Como debo
hacerlo?
Gracias

Hola Raulo,

Como no expones el macro, solo te pongo aqui la manera de crear el nombre y
tu ya lo adaptas a tus necesidades:

Sub test()
Dim Ruta As String, Nombre As String
Ruta = "C:\Temp\"
Nombre = "Informe" & Format(Date, "yyyy-mm-dd") & ".xls"

ActiveWorkbook.SaveAs Ruta & Nombre
End Sub


Saludos,
KL


"Carlos Durán Urenda" escribió:

mmm...
Lo normal es que cuando duplicas declaraciones de varibles te salte el
error, debido a que VBA no puede resolver ha que variable se desea hacer
referencia

si lo que deseas es compartir el mismo nombre para diferentes variables,
supongo que lo que te conviene es crear un arreglo de forma que puedas tener
varios elementos almacenados bajo un mismo nombre de variable

el arreglo no necesariamente debe ser de longitud fija, puedes hacerlo
dinamico, de forma que pueda crecer cuando lo necesesites utilizando un
ReDim


espero te sirva, ... si comentas un poco mas seria de gran utilidad

Saludos
Carlos Durán


"Raulo" escribió en el mensaje
news:
> Necesito repetir esta secuencia "Dim Ruta As String, Nombre As String" en
> una
> macro y no puedo por este error:
>
> "Declaración duplicada en el ambito actual"
>
> hay alguna manera de repetirla y que no me salga el error?
> Gracias



Respuesta Responder a este mensaje
#3 Carlos Durán Urenda
28/09/2005 - 19:27 | Informe spam
bueno, aqui lo que sucede es que debes clarificar tus porcesos y comprender
un poco mas el comportamiento de las variables...

las variables constan de tres partes nombre, valor y ambito... aqui el
ambito es el que te esta ocacionado problemas

si tienes dos porcedimientos en los cuales defines variables con el mismo
nombre, no tienes por que tener problema, por que el ambito de la variable
comprende propiamente los limites del procedimiento en el que fue declarada

ej.

Sub Uno( )
Dim MiVariable as Integer
MiVariableP0
End Sub

Sub Dos( )
Dim MiVariable as String
MiVariable="Europa"
End Sub

aqui, apesar de que la variable tiene el mismo nombre se encuentra en
procedimientos diferentes y el ambito es diferente

ahora bien, no necesariamente tienes que repetir el procedimiento para
obtener un nombre para tu archivo...

puedes tener una funcion que te genere un nombre completo, pasandole un
prefijo... por ejemplo

Function ObtenNombreArchivo(Ruta As String, Prefijo As String, Extension As
String) As String
Dim Nombre As String
Nombre = Ruta & "\" & Prefijo & Format(Date, "yyyy-mm-dd") & "." &
Extension
ObtenerNombreArchivo=Nombre
End Sub

y a esta funcion la puedes llamar desde otro procedimiento

Sub GuardaArchivos()
Dim Nombre As String, Ruta As String

Ruta="C:\Temp"
.

Nombre=ObtenNombreArchivo(Ruta, "Factura", "xls")
...
' codigo necesario para guardar



' puedes guardar otro archivo
'OJO no necesitas volver a declarar las variables, solo es cuestion de
asignarles nuevo valor

Ruta="C:\Respaldos"
Nombre=ObtenNombreArchivo(Ruta, "Resplado", "txt")

' codigo necesario para guardar el segundo archivo

end sub


En resumen...

No necesitas declarar nuevamente las variables, basta con asignarles otro
valor
Puedes sacar codigos repetitivos a Sub o Fucntion, de forma que solo tengas
que repetir el llamado y no todo el codigo

Espero esto te clarifique un poco lo que necesitas

Saludos
Carlos Durán























"Raulo" escribió en el mensaje
news:
Gracias Carlos pero no puedo.
Todo viene de esta respuesta que me ayudo a que la macro me guarde un
archivo con la fecha del día. Ahora quiero repetir la misma secuencia para
que me genere otro archivo en otro subd. y no me lo permite. Como debo
hacerlo?
Gracias

Hola Raulo,

Como no expones el macro, solo te pongo aqui la manera de crear el nombre
y
tu ya lo adaptas a tus necesidades:

Sub test()
Dim Ruta As String, Nombre As String
Ruta = "C:\Temp\"
Nombre = "Informe" & Format(Date, "yyyy-mm-dd") & ".xls"

ActiveWorkbook.SaveAs Ruta & Nombre
End Sub


Saludos,
KL


"Carlos Durán Urenda" escribió:

mmm...
Lo normal es que cuando duplicas declaraciones de varibles te salte el
error, debido a que VBA no puede resolver ha que variable se desea hacer
referencia

si lo que deseas es compartir el mismo nombre para diferentes variables,
supongo que lo que te conviene es crear un arreglo de forma que puedas
tener
varios elementos almacenados bajo un mismo nombre de variable

el arreglo no necesariamente debe ser de longitud fija, puedes hacerlo
dinamico, de forma que pueda crecer cuando lo necesesites utilizando un
ReDim


espero te sirva, ... si comentas un poco mas seria de gran utilidad

Saludos
Carlos Durán


"Raulo" escribió en el mensaje
news:
> Necesito repetir esta secuencia "Dim Ruta As String, Nombre As String"
> en
> una
> macro y no puedo por este error:
>
> "Declaración duplicada en el ambito actual"
>
> hay alguna manera de repetirla y que no me salga el error?
> Gracias



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida