Avviso di file salvato



  • Avviso di file salvato
    di Luna 95 (utente non iscritto) data: 01/10/2015 21:58:05

    Salve a tutti ho bisogno di un aiuto il codice allegato mi crea una copia del file con percorso e nuovo nome, quello che volevo agiungere ma non ci riesco e far comparire un msgbox che mi avvisa che il file e stato creato con successo, come posso fare? io sbaglio qualcosa perche anche se il file esiste lui mi avvisa che ha creato il file con successo.
     
    Sub Salva_Pannello()
    If MsgBox("Stai per creare un nuovo Pannello" & vbCrLf & "Vuoi continuare ?", vbInformation + vbYesNo, "Avviso salvataggio") = vbYes Then
    Dim p As Worksheet
        Dim Directory As String
        Dim NomeFile As String
        
        Set p = Worksheets("PANNELLO")
            
        Directory = p.Cells(3, 4).Value 'Directory dove salva i file specificato nella cella D10 "10 = Cella, 4 = Colonna"
        NomeFile = p.Cells(3, 1).Value  ' NomeFile il nome del file da salvare specificato nella cella F8 "8 = Cella, 6 = colonna"
    
    
        ChDir Directory
        On Error Resume Next
        ActiveWorkbook.SaveAs Filename:=Directory + NomeFile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
        On Error GoTo 0
       MsgBox _
         " Il Tuo File è stato salvato correttamente " & vbCrLf & _
         " " & vbCrLf & (ThisFile), vbInformation
       End If
    End Sub



  • di Luna 95 (utente non iscritto) data: 02/10/2015 08:25:40

    salve qualche aiuto per risolvere il problema? Grazie



  • di Luna 95 (utente non iscritto) data: 02/10/2015 12:06:25

    Scusate qualcuno che mi sa spiegare dove mettere il messaggio MsgBox, che mi avvisa che il file e stato creato correttamente' io purtroppo non ci riesco



  • di patel data: 02/10/2015 12:44:08

    prova così
     
    Sub Salva_Pannello()
    If MsgBox("Stai per creare un nuovo Pannello" & vbCrLf & "Vuoi continuare ?", vbInformation + vbYesNo, "Avviso salvataggio") = vbYes Then
    Dim p As Worksheet
        Dim Directory As String
        Dim NomeFile As String
        
        Set p = Worksheets("PANNELLO")
            
        Directory = p.Cells(3, 4).Value 'Directory dove salva i file specificato nella cella D10 "10 = Cella, 4 = Colonna"
        NomeFile = p.Cells(3, 1).Value  ' NomeFile il nome del file da salvare specificato nella cella F8 "8 = Cella, 6 = colonna"
    
    
        ChDir Directory
        On Error Resume Next
        ActiveWorkbook.SaveAs Filename:=Directory + NomeFile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
        On Error GoTo Errore
       MsgBox _
         " Il Tuo File è stato salvato correttamente " & vbCrLf & _
         " " & vbCrLf & (ThisFile), vbInformation
       exit sub
    errore:
       MsgBox _
         " Il Tuo File non è stato salvato" & vbCrLf & _
         " " & vbCrLf & (ThisFile), vbInformation
       End If
    
    End Sub






  • di Luna 95 (utente non iscritto) data: 02/10/2015 18:06:25

    Ciao patel grazie per aver risposto, ho provato il codice suggerito ma praticamente mi dice che il file è stato salvato correttamente anche se non ho salvato niente. Itoteri se il file esiste gia vengo avvisato, se io gli dico di non sovrascrivere il file, alla fine mi esegue il messaggio Il Tuo File è stato salvato correttamente come mai?
    altro problema da risolvere è se scrivo un percorso erreto e non trova la cartella quando il codice arriva al rigo ChDir Directory mi da errore di run-time '76' Impossibile trovare il percorso.
    Si potrebbe optare anche qua con un messaggio tipo Controlla il percorso Cartella non trovata?
    Spero che sia possibile grazie ancora.



  • di patel data: 03/10/2015 08:38:31

    ho dimenticato di togliere On Error Resume Next 
    se non sei ancora soddisfatto allega un file di esempio per poter testare la macro
     
    Sub Salva_Pannello()
    If MsgBox("Stai per creare un nuovo Pannello" & vbCrLf & "Vuoi continuare ?", vbInformation + vbYesNo, "Avviso salvataggio") = vbYes Then
    Dim p As Worksheet
        Dim Directory As String
        Dim NomeFile As String
        Set p = Worksheets("PANNELLO")
        Directory = p.Cells(3, 4).Value 'Directory dove salva i file specificato nella cella D10 "10 = Cella, 4 = Colonna"
        NomeFile = p.Cells(3, 1).Value  ' NomeFile il nome del file da salvare specificato nella cella F8 "8 = Cella, 6 = colonna"
        On Error GoTo Errore
        ChDir Directory
        ActiveWorkbook.SaveAs Filename:=Directory + NomeFile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
       MsgBox _
         " Il Tuo File è stato salvato correttamente " & vbCrLf & _
         " " & vbCrLf & (ThisFile), vbInformation
       exit sub
    errore:
       MsgBox _
         " Il Tuo File non è stato salvato" & vbCrLf & _
         " " & vbCrLf & (ThisFile), vbInformation
       End If
    
    End Sub






  • di Luna 95 (utente non iscritto) data: 03/10/2015 18:25:09

    Ciao patel, ho provato il codice e funziona, lunica cosa che volevo chidere se si può fare avere due messaggi, prova a spiegare. La seguente riga di codice
    ActiveWorkbook.SaveAs Filename:=Directory + NomeFile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
    MsgBox _
    " Il Tuo File è stato salvato correttamente " & vbCrLf & _
    " " & vbCrLf & (ThisFile), vbInformation
    Crea il nuovo file e il messaggio mi avvisa che il file è stato salvato correttamente, mentre se il file esiste già mi avvisa se voglio sovrascriverlo se io scelgo no mi avvisa che il file non e stato salvato e va bene. il problema è se non trova la directory per un errore di digitazione, sarebbe possibile far uscire un altro messagio tipo, directory non trovata Contrlla il percorso.
    Praticamente gestire gli errori, spero di non aver detto una stupidaggine.
    Grazie ancora per la pazienza



  • di Luna 95 (utente non iscritto) data: 04/10/2015 10:26:13

    Chiedo Scusa, chiedo ancora un piccolo aito per poter risolvere il problema esposto! spero che qualcuno sa come posso risolvere grazie a tutti



  • di linux (utente non iscritto) data: 04/10/2015 11:26:09

    Ciao,
    prova così
     
    If MsgBox("Stai per creare un nuovo Pannello" & vbCrLf & "Vuoi continuare ?", vbInformation + vbYesNo, "Avviso salvataggio") = vbYes Then
    '--------------------------------------------------------------------------
    Dim objFso As Object
    Dim objFolder As Object
    Set objFso = CreateObject("Scripting.FileSystemObject")
    If objFso.FolderExists("C:Prova") Then   ''Specificare il percorso e nome della cartella
    MsgBox "La cartella Prova esiste già...", vbCritical, ("!!! ATTENZIONE !!!")
    Else
    MsgBox "La cartella ''PROVA'' non esisteva." & Chr(13) & "Adesso che è stata creata... puoi salvare il file...", vbInformation, ("Nuova Cartella creata con successo... ")
    Set objFolder = objFso.CreateFolder("C:Prova")  'Specificare il percorso della cartella
    End If
    '-----------------------------------------------------------------------------
    Dim p As Worksheet
        Dim Directory As String
        Dim NomeFile As String
        Set p = Worksheets("PANNELLO")
        Directory = p.Cells(3, 4).Value 'Directory dove salva i file specificato nella cella D3 "3 = Cella, 4 = Colonna"
        NomeFile = p.Cells(3, 1).Value  ' NomeFile il nome del file da salvare specificato nella cella a3 "3 = Cella, 1 = colonna"
        On Error GoTo errore
        ChDir Directory
        ActiveWorkbook.SaveAs Filename:=Directory + NomeFile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
       MsgBox _
         " Il Tuo File è stato salvato correttamente " & vbCrLf & _
         " " & vbCrLf & (ThisFile), vbInformation
       Exit Sub
    errore:
       MsgBox _
         " Il Tuo File non è stato salvato" & vbCrLf & _
         " " & vbCrLf & (ThisFile), vbInformation
       End If
    



  • di cromagno data: 04/10/2015 11:39:54

    Ciao a tutti,
    @Luna 95

    un'altra soluzione (meno elaborata di quella proposta da "linux" ) potrebbe essere quella di aggiungere un controllo della directory (nel codice proposto da "patel") dopo la riga:
    "On Error GoTo errore"
     
    On Error GoTo errore
        If Len(Dir(Directory)) = 0 Then
            If MsgBox("Directory non trovata." & vbCrLf & "Controlla il percorso!!!", vbInformation + vbOK, "ERRORE") = vbOK Then
                Exit Sub
            End If
        End If
        ChDir Directory



  • di Luna 95 (utente non iscritto) data: 04/10/2015 12:21:36

    Ciao linux ho provato il tuo codice, il problema è che mi crea una nuova cartella di nome Prova in C e poi salva il file solo che la cartella dove salvare e specificata gia nel seguente codice
    Directory = p.Cells(3, 4).Value 'Directory dove salva i file specificato nella cella D3 "3 = Cella, 4 = Colonna"
    e quando salva il file lo salva eseguendo questo codice NomeFile = p.Cells(3, 1).Value ' NomeFile il nome del file da salvare specificato nella cella a3 "3 = Cella, 1 = colonna"

    praticamente si puo modificare il codice attingendo il percorso, e il file da salvare come sopra e far partire i controlli da là.
    Spero che sia fattibile Gazie



  • di linux (utente non iscritto) data: 04/10/2015 13:05:37

    Potevi arrivarci da solo.
    modifica solo quanto riportato sotto...
    Ciao....

     
    '--------------------------------------------------------------------------
    Dim objFso As Object
    Dim objFolder As Object
    Set objFso = CreateObject("Scripting.FileSystemObject")
    If objFso.FolderExists(Cells(3, 4)) Then  ''Specificare il percorso e nome della cartella
    MsgBox "La cartella esiste già...", vbCritical, ("!!! ATTENZIONE !!!")
    Else
    MsgBox "La cartella non esisteva." & Chr(13) & "Adesso che è stata creata... puoi salvare il file...", vbInformation, ("Nuova Cartella creata con successo... ")
    Set objFolder = objFso.CreateFolder(Cells(3, 4)) 'Specificare il percorso della cartella
    End If
    '-----------------------------------------------------------------------------



  • di patel data: 04/10/2015 13:43:47

    prova questa
     
    Sub Salva_Pannello()
    If MsgBox("Stai per creare un nuovo Pannello" & vbCrLf & "Vuoi continuare ?", vbInformation + vbYesNo, "Avviso salvataggio") = vbYes Then
    Dim p As Worksheet
        Dim Directory As String
        Dim NomeFile As String
        
        Set p = Worksheets("PANNELLO")
            
        Directory = p.Cells(3, 4).Value 'Directory dove salva i file specificato nella cella D10 "10 = Cella, 4 = Colonna"
        NomeFile = p.Cells(3, 1).Value  ' NomeFile il nome del file da salvare specificato nella cella F8 "8 = Cella, 6 = colonna"
        FileInQuestion = Dir(Directory + NomeFile)
        If FileInQuestion <> "" Then
         MsgBox "File già esistente!"
         Exit Sub
        End If
        On Error GoTo 0
        ActiveWorkbook.SaveAs Filename:=Directory + NomeFile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
    
       MsgBox _
         " Il Tuo File è stato salvato correttamente " & vbCrLf & _
         " " & vbCrLf & (ThisFile), vbInformation
       End If
       
    
        FileInQuestion = Dir(Directory + NomeFile)
        If FileInQuestion <> "" Then
         MsgBox "File già esistente!"
         Exit Sub
        End If
        On Error GoTo errore
        ActiveWorkbook.SaveAs Filename:=Directory + NomeFile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
       MsgBox _
         " Il Tuo File è stato salvato correttamente " & vbCrLf & _
         " " & vbCrLf & (ThisFile), vbInformation
       Exit Sub
    errore:
        MsgBox Err.Description, vbOKOnly + vbInformation, "Errore"
    End Sub
    






  • di linux (utente non iscritto) data: 04/10/2015 18:55:30

    Di solito non lascio le cose per metà. Annaggià del tempo.
    Comunque prova questo codice e vedi come và.
    Ho cambiato qualcosina e ti ho messo degli avvisi qual'ora dovesse trovar vuoto la/e celle D3 A3 evitiamo che Excel vada in debug..
    Facci sapere a tutto il forum se va bene.
    Ciaux Linux
     
    Option Explicit
    
    Sub Pulsante7_Click()
    
    If MsgBox("Stai per creare un nuovo Pannello!" & vbCrLf & "Vuoi continuare ?", vbInformation + vbYesNo, "Avviso salvataggio") = vbYes Then
    
    '============================================================
    ' Controlla che la cella D3 e  cella A3 non siano una cella vuota _
    se così fosse annulla l'operazione.
    If Cells(3, 4) = "" Or Cells(3, 1) = "" Then ' se la cella D3 oppure A3 è vuota
    MsgBox "Percorso in D3 e/o nome file in A3 Assente." & Chr(13) & "Ricontrolla" & Chr(13) & "Operazione di salvataggio annullata.", vbCritical, (".....ATTENZIONE.....")
    Exit Sub    ' esci dalla sub
    Else
    '============================================================
    
    Dim objFso As Object
    Dim objFolder As Object
    Set objFso = CreateObject("Scripting.FileSystemObject")
    If objFso.FolderExists(Cells(3, 4)) Then  ''Specificare il percorso e nome della cartella
    MsgBox "La cartella " & Range("d3").Value & " Esiste già...", vbInformation, ("!!! AVVISO !!!")
    
    Else
    MsgBox "La cartella " & Range(" d3").Value & " non esisteva." & Chr(13) & "Adesso che è stata creata... puoi salvare il file...", vbInformation, ("Nuova Cartella creata con successo... ")
    Set objFolder = objFso.CreateFolder(Cells(3, 4)) 'Specificare il percorso della cartella
    End If
    '-----------------------------------------------------------------------------
    Dim p As Worksheet
        Dim Directory As String
        Dim NomeFile As String
        Set p = Worksheets("PANNELLO")
        Directory = p.Cells(3, 4).Value 'Directory dove salva i file specificato nella cella D3 "3 = Cella, 4 = Colonna"
        NomeFile = p.Cells(3, 1).Value  ' NomeFile il nome del file da salvare specificato nella cella a3 "3 = Cella, 1 = colonna"
        On Error GoTo errore
        ChDir Directory
        ActiveWorkbook.SaveAs Filename:=Directory + NomeFile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
       MsgBox _
         " Il Tuo File è stato salvato correttamente nella Directory: " & Range("  d3").Value, vbInformation
       Exit Sub
    errore:
       MsgBox _
         " Il Tuo File non è stato salvato!", vbCritical, "........ATTENZIONE........."
       End If
    End If
    End Sub
    



  • di Luna 95 (utente non iscritto) data: 04/10/2015 20:30:38

    Grazie a tutti per l'aiuto adesso funziona tutto a meraviglia grazie ancora per la pazienza