Scusa Ciro, mi devo assentare. Ti posto un esempio di codice con la CD:
codice:
Public Sub SalvaSP()
On Error Resume Next
        Dim FileNum As Integer
        Dim FileName As String
        Dim FileTitle As String
        Dim dblSPA1s As Double, dblSPA2s As Double
dblSPA1s = FrmSP.Txt1SP.Text        
dblSPA2s = FrmSP.Txt2SP.Text
With FrmStatoPatrim.CommonDialogSPP
        .CancelError = True             
    On Error GoTo ErrHandler
        .DialogTitle = "Selezionare la destinazione del file"
        .Flags = cdlOFNNoChangeDir Or cdlOFNHideReadOnly Or cdlOFNPathMustExist Or cdlOFNOverwritePrompt Or cdlOFNNoReadOnlyReturn
        .Filter = "File di programma (*.csv)|*.csv|Documenti di Testo (*.Txt)|"
        .FilterIndex = 1
        .DefaultExt = "csv"
        .FileName = FrmAA.TxtNuovoFile  'Imposta il Nome del file in base a quanto digitato nella prima pagina
        .InitDir = App.Path & "\DATI\SP"
        .ShowSave
ErrHandler:
        If Err.Number = 32755 Then      'é stato scelto Annulla
            boolErrAnnSP1 = True
            Exit Sub
            Else: boolErrAnnSP1 = False
        End If
            
        FileName = FrmSP.CommonDialogSPP.FileName
        FileTitle = FrmSP.CommonDialogSPP.FileTitle
        frmMain.TxtInd2.Text = frmMain.TxtInd2.Text = FrmSP.CommonDialogSPP.FileName       'Visualizza nome e percorso del file in uso nella Barra di stato
        FileNum = FreeFile()
            If Len(.FileName) = 0 Then
                Exit Sub
            End If
    End With
'Salva:
Open FileName For Output As #FileNum
Write #FileNum, dblSPA1s, dblSPA2s
Close #FileNum
    
FrmSP.boolVerifica10 = True 'Indica che il file è stato salvato
End Sub
codice:
Public Sub ApriSPpassivoCDSelez()
On Error Resume Next

    Dim intDomINSP As Integer           'Variabile di MsgBox
    
    If FrmSP.boolVerifica10 = False And Ctr(FrmSP.Txt105SP.Text) > 0 Then   ' chiede di salvare o No
        intDomINSP = MsgBox("SP - Volete salvare il file ? Clic su OK per effettuare" & Chr(13) _
        & "l'operazione - su Annulla per aprire un nuovo file, senza salvare quello in uso.", vbExclamation + vbOKCancel, "Applicazioni Aziendali")
        If intDomINSP = 1 Then              'Pulsante OK
            Call SalvaSP   'Invia alla routine salva con nome
        End If
    End If
        
        Dim FileNum As Integer
        Dim FileTitle As String
        Dim FileName As String

'Variabili per Aprire il file:
        Dim dblSPA1 As Double, dblSPA2 As Double
With FrmSP.CommonDialogSPP
        .CancelError = True             'Imposta CancelError su True
    On Error GoTo ErrHandler
        .Filter = "File di programma (*.csv)|*.csv|Documenti di Testo (*.Txt)|"
        .FilterIndex = 1
        .DefaultExt = "csv"
        .Flags = cdlOFNNoChangeDir Or cdlOFNHideReadOnly Or cdlOFNFileMustExist Or cdlOFNNoReadOnlyReturn
        .DialogTitle = "Selezionare il file da aprire"
        .FileName = FrmAA.TxtNuovoFile  'Imposta il Nome del file in base a quanto digitato nella prima pagina
        .InitDir = App.Path & "\DATI\SP"
        .ShowOpen
ErrHandler:
        If Err.Number = 32755 Then      'é stato scelto Annulla
            boolErrAnnSP2 = True
            Exit Sub
            Else: boolErrAnnSP2 = False
        End If
        
        FileName = .FileName
        FileTitle = .FileTitle
'Visualizza nome e percorso del file in uso nella Barra di stato:
        frmMain.TxtInd2.Text = FrmSP.CommonDialogSPP.FileName
        FileNum = FreeFile()

'Esce se l'utente ha fatto clic su annulla
            If Len(FileName) = 0 Then
                Exit Sub
            End If
    End With

    Open FileName For Input As FileNum
    Do While Not (EOF(FileNum) = True)  'Trova la fine del file
    Input #FileNum, dblSPA1, dblSPA2
FrmSP.Txt1SP.Text = Format((dblSPA1), "#,##0")  
FrmSP.Txt2SP.Text = Format((dblSPA2), "#,##0")
    Loop                         'Esce da DO
    Close #FileNum
End Sub
Le variabili le deve dichiarare a secondo della natura dei dati, anche String, e vanno dichiarate una per una, come nell'esempio e Non Dim dblSPA1s, dblSPA2s As Double altrimenti solo l'ultima è Double e tutte le altre sono Variant (appesantisci il programma).
Spero che il codice sia chiaro.