variables globales
Publicado por Alexis (2 intervenciones) el 10/07/2009 15:09:05
Hola a todos... necesito ayuda por favor, Lo que pasa es que estoy programando dos botones en excel y quiero que una variable que la declare como global mantenga el valor en ambos procedimientos, pero no me resulta!!! (debo aclarar que estoy empezando en esto de la programación), aqui va el código.
Dim ruta As String
Dim destino As String
Private Sub crear_carpeta_Click()
Dim nombre As String
ruta = "C:Documents and SettingsClaudia RiosEscritoriocobranza"
On Error GoTo error
inicio:
nombre = InputBox("Ingrese el nombre de la carpeta que desea crear:", "Nombre de la Carpeta")
If nombre = "" Then
mensaje = MsgBox("No se creo ninguna carpeta", vbOKOnly + vbCritical, "Información")
Else
Set carpeta = CreateObject("Scripting.FileSystemObject")
carpeta.createfolder ("C:Documents and SettingsClaudia RiosEscritoriocobranza" & nombre)
mensaje = MsgBox("Carpeta creada satisfactoriamente", vbOKOnly + vbInformation, "Información")
msje = MsgBox("¿Desea guardar los doctos. en esta carpeta?", vbYesNo + vbQuestion, "Carpeta destino")
If msje = vbYes Then
destino = ruta + "" + nombre
Else
destino = ruta
End If
End If
error:
If Err.Number = 58 Then
mensaje = MsgBox("El nombre de la carpeta ya existe. Debe ingresar un nombre distinto.", vbOKOnly + vbCritical, "Información")
Resume inicio
End If
End Sub
bueno en pocas palabras, lo que hace el codigo es crear una carpeta (lo cual lo hace bien), la variable "ruta" es la que tiene la dirección en donde créo la carpeta , declaré fuera del procedimiento la variable "ruta" y "destino"(y esta ultima es la que necesito que cambie, pero que guarde ese cambio y que no se pierda al cerrar y abrir el archivo), cuando lo hago por primera vez me resulta pero cuando cierra y abre de nuevo no guarda los cambios en la variable "destino". Aqui va el segundo código.
Private Sub IMPRIMIR_Click()
Dim docto As String
If Range("C4").Value = Empty Then
ActiveSheet.PrintOut
Else
On Error GoTo nombre_vacio
docto = Range("c4")
ActiveWorkbook.SaveAs Filename:=destino + "" + docto + ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
Application.Dialogs(xlDialogPrint).Show
Workbooks.Open Filename:="C:Documents and SettingsClaudia RiosEscritoriocobranza 00000000.xls"
Workbooks(docto + ".xls").Close SaveChanges:=False
Exit Sub
End If
nombre_vacio:
If Err.Number = 1004 Then
'MsgBox ("Número de Error : " & Err.Number & Chr(13) & "Descripción : " & Err.Description)
ActiveSheet.PrintOut
'Else
'MsgBox ("Error no previsto. Comuniquese con el responsable facilitando la " & _
'"sgte. información " & Chr(13) & "Número de Error : " & _
'Err.Number & Chr(13) & "Descripción : " & Err.Description)
End If
End Sub
bueno y este es el que guarda con un nuevo nombre el archivo, imprime, abre mi archivo "ejemplo" (que se llama 000000000.xls y que es el que tiene los codigos, sobre este archivo trabajo) y por último cierra el archivo modificado. Como ven hace 4 pasos (guarda, imprime, abre y cierra). La variable "docto" es la que contiene el nombre del archivo a guardar. En la linea donde guarda el documento en la nueva dirección es donde tengo el problema ya que funciona una vez pera al momento de cerrarce la variable "destino" no mantiene la modificación.
Por favor Ayuda!!!!. Gracias.
Dim ruta As String
Dim destino As String
Private Sub crear_carpeta_Click()
Dim nombre As String
ruta = "C:Documents and SettingsClaudia RiosEscritoriocobranza"
On Error GoTo error
inicio:
nombre = InputBox("Ingrese el nombre de la carpeta que desea crear:", "Nombre de la Carpeta")
If nombre = "" Then
mensaje = MsgBox("No se creo ninguna carpeta", vbOKOnly + vbCritical, "Información")
Else
Set carpeta = CreateObject("Scripting.FileSystemObject")
carpeta.createfolder ("C:Documents and SettingsClaudia RiosEscritoriocobranza" & nombre)
mensaje = MsgBox("Carpeta creada satisfactoriamente", vbOKOnly + vbInformation, "Información")
msje = MsgBox("¿Desea guardar los doctos. en esta carpeta?", vbYesNo + vbQuestion, "Carpeta destino")
If msje = vbYes Then
destino = ruta + "" + nombre
Else
destino = ruta
End If
End If
error:
If Err.Number = 58 Then
mensaje = MsgBox("El nombre de la carpeta ya existe. Debe ingresar un nombre distinto.", vbOKOnly + vbCritical, "Información")
Resume inicio
End If
End Sub
bueno en pocas palabras, lo que hace el codigo es crear una carpeta (lo cual lo hace bien), la variable "ruta" es la que tiene la dirección en donde créo la carpeta , declaré fuera del procedimiento la variable "ruta" y "destino"(y esta ultima es la que necesito que cambie, pero que guarde ese cambio y que no se pierda al cerrar y abrir el archivo), cuando lo hago por primera vez me resulta pero cuando cierra y abre de nuevo no guarda los cambios en la variable "destino". Aqui va el segundo código.
Private Sub IMPRIMIR_Click()
Dim docto As String
If Range("C4").Value = Empty Then
ActiveSheet.PrintOut
Else
On Error GoTo nombre_vacio
docto = Range("c4")
ActiveWorkbook.SaveAs Filename:=destino + "" + docto + ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
Application.Dialogs(xlDialogPrint).Show
Workbooks.Open Filename:="C:Documents and SettingsClaudia RiosEscritoriocobranza 00000000.xls"
Workbooks(docto + ".xls").Close SaveChanges:=False
Exit Sub
End If
nombre_vacio:
If Err.Number = 1004 Then
'MsgBox ("Número de Error : " & Err.Number & Chr(13) & "Descripción : " & Err.Description)
ActiveSheet.PrintOut
'Else
'MsgBox ("Error no previsto. Comuniquese con el responsable facilitando la " & _
'"sgte. información " & Chr(13) & "Número de Error : " & _
'Err.Number & Chr(13) & "Descripción : " & Err.Description)
End If
End Sub
bueno y este es el que guarda con un nuevo nombre el archivo, imprime, abre mi archivo "ejemplo" (que se llama 000000000.xls y que es el que tiene los codigos, sobre este archivo trabajo) y por último cierra el archivo modificado. Como ven hace 4 pasos (guarda, imprime, abre y cierra). La variable "docto" es la que contiene el nombre del archivo a guardar. En la linea donde guarda el documento en la nueva dirección es donde tengo el problema ya que funciona una vez pera al momento de cerrarce la variable "destino" no mantiene la modificación.
Por favor Ayuda!!!!. Gracias.
Valora esta pregunta


0