ciao NebbiaDB,
nel seguente modo rinomini il file selezionato mantenendo lo stesso percorso.
Modifica il modulo di classe della form in questo modo, in testata:
Option Compare Database
Option Explicit
Dim bool As Boolean
consiglio nuovamente SEMPRE l'option explicit.
modifica la routine di richiesta file in questo modo, ti lascio dei commenti a tal proposito :
Private Sub cmdFile_Click()
Dim lngSlashPos As Long
Dim fullPath As String
fullPath = cmdFileDialog
If Len(fullPath & vbNullString) = 0 Then Exit Sub
lngSlashPos = InStrRev(fullPath, "")
Me.txtPath = Mid$(fullPath, 1, lngSlashPos)
Me.txtFile = justFileName(fullPath)
'Me.Recalc non serve
Dim iRisposta As Integer
iRisposta = MsgBox("Vuoi modificare il nome del file ???", vbYesNoCancel)
Select Case iRisposta 'impostiamo il Select Case con riferimento al messaggio restituito dalla variabile iRisposta
Case vbYes 'se risponderemo "Si" :
Me.txtNuovoNomeFile = vbNullString ' aggiunta
Me.txtNuovoNomeFile.SetFocus
Me.txtNuovoNomeFile.BackColor = vbRed
Case vbNo 'se sceglieremo "No":
Me.txtNuovoNomeFile = Me.txtFile
'Exit Sub non serve
'Case Else non serve
End Select
bool = True
End Sub
inserisci questo evento su before update del controllo txtNuovoNomeFile :
Private Sub txtNuovoNomeFile_BeforeUpdate(Cancel As Integer)
If bool Then
If FileExists(Me.txtPath & Me.txtNuovoNomeFile) Then
VBA.MsgBox Me.txtPath & Me.txtNuovoNomeFile & vbNewLine & _
" esiste già assegna un altro nome!", vbCritical, "Warning"
Cancel = True
Else
Name Me.txtPath & Me.txtFile As Me.txtPath & Me.txtNuovoNomeFile
Me.txtNuovoNomeFile.BackColor = vbWhite
VBA.MsgBox "Ho rinominato :" & vbNewLine & _
Me.txtPath & Me.txtFile & vbNewLine & _
" così:" & vbNewLine & _
Me.txtPath & Me.txtNuovoNomeFile, vbInformation
bool = False
End If
End If
End Sub
effettua qualche tentativo e vedi se il file viene rinominato correttamente ed il comportamento della form è quello voluto.
nel rinominare il file per ora scrivi anche l'estensione...per scrivere solo il nome del file ed in seguito rinominarlo anche con l'estensione è un attimo...
vedi se intanto ci siamo....
Ciao, Sandro.