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.