Ver Mensaje Individual
  #5 (permalink)  
Antiguo 19/09/2011, 04:07
oskarrr
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Abrir/Guardar/Guardar como desde Menu Contextual

He usado la llamada al sub que me has puesto que no sabía como hacerlo y la he adaptado al código que tenía, porque lo que yo quiero es que al darle a "Guardar", si el archivo ya ha sido guardado, lo sobreescriba sin preguntar, y que al darle a "Guardar como" ya si abra el cuadro de diálogo de guardar. Pego el código utilizado por si a alguien le vale.

Y una vez más, gracias Lokoman. Me gustaría enviarte la aplicación que estoy haciendo para que le eches un vistazo aunque aun no esté acabada del todo, ya que me has ayudado muchas veces y sin tu ayuda y la de todos los del foro no se si hubiera sido capaz de sacarla adelante.

Código:
'CODIGO "GUARDAR"

Private Sub GuardarPresupuesto_Click()

Dim sFile As String
Dim fso As Object
Dim canalLibre As Integer
    
If guardar = 0 Then 'Archivo todavía no guardado
        
With dlgCommonDialog
.DialogTitle = "Guardar"
.CancelError = False
'Pendiente: establecer los indicadores y atributos del control common dialog
.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*"

.ShowSave
If Len(.FileName) = 0 Then
Exit Sub
End If
sFile = .FileName
End With




Set fso = CreateObject("Scripting.FileSystemObject")
    

    ' Comprobar archivo
    If fso.FileExists(sFile) = "Verdadero" Then
        If MsgBox("El archivo ya existe. ¿Desea reemplazarlo?", vbExclamation + vbYesNo, "Reemplazar Archivo") = vbYes Then
                'LLAMADA AL SUB GUARDAR_DATOS
                GUARDAR_DATOS sFile
        End If
    End If
End If



If guardar = 1 Then 'Archivo ya guardado
        
       'LLAMADA AL SUB GUARDAR_DATOS
        GUARDAR_DATOS NombreArchivo
   
End If
          

End Sub
Código:
'CÓDIGO "GUARDAR_COMO"

Private Sub guardar_como_Click()

Dim sFile As String

With dlgCommonDialog
.DialogTitle = "Guardar"
.CancelError = False
'Pendiente: establecer los indicadores y atributos del control common dialog
.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*"

.ShowSave
If Len(.FileName) = 0 Then
Exit Sub
End If
sFile = .FileName
End With



Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
    

    ' Comprobar archivo
    If fso.FileExists(sFile) = "Verdadero" Then
        If MsgBox("El archivo ya existe. ¿Desea reemplazarlo?", vbExclamation + vbYesNo, "Reemplazar Archivo") = vbYes Then
            'LLAMADA AL SUB GUARDAR_DATOS
            GUARDAR_DATOS sFile
        End If
    Else
        GUARDAR_DATOS sFile
    End If


  
End Sub
Código:
'SUB GUARDAR DATOS

Sub GUARDAR_DATOS(sFile As String)
   Dim canalLibre As Integer
    
   
      canalLibre = FreeFile
    
      Open sFile For Output As #canalLibre
         Print #canalLibre, TIpoTrabajo
         Print #canalLibre, Cantidad_TextBox
         Print #canalLibre, TipoPapel
      Close #canalLibre
 
        guardar = 1
        NombreArchivo = sFile
      SaveSetting "RutaArchivo", "Valores", "Path", txtruta.Text
      SaveSetting "NombreArchivo", "Valores", "Path", txtarchivo.Text

End Sub
Código:
'A COLOCAR EN EL FORM LOAD

Private Sub Form_Load()



txtruta.Text = GetSetting("RutaArchivo", "Valores", "Path", "NO_HAY_PATH")
txtarchivo.Text = GetSetting("NombreArchivo", "Valores", "Path", "NO_HAY_PATH")
guardar = 0 '0 sin guardar previamente. 1 guardado

End Sub