Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ho risolto così:
-nel codice della form-
Private Sub CommandButton1_Click()
Dim ctrl As Control
Dim bln As Boolean
With Me
For Each ctrl In .Controls
Select Case ctrl.Name
Case "TextBox1", "TextBox2", "TextBox3", "TextBox5", "TextBox6", "TextBox7", "TextBox10"
If ctrl.Text = "" Then bln = True
End Select
Next
End With
If bln Then MsgBox "Compilare tutti i campi obbligatori" & vbCr & "contrassegnati dall'asterisco *" Else: ThisWorkbook.SalvaConNome
End Sub
-in ThisWorbook-
Public Sub SalvaConNome()
Dim messaGGino As Integer
Dim varResult As Variant
varResult = Application.GetSaveAsFilename
If varResult = False Then
messaGGino = MsgBox("Non è stato salvato nessun" & vbCr & "file, vuoi terminare la compilazione?", vbYesNo, "Nessun file creato")
Else:
Open varResult & "txt" For Output As #1
Print #1, Cells(1, 13)
Close #1
percorso = MsgBox("Il file è stato salvato su" & vbCr & varResult, vbInformation)
ThisWorkbook.Close Savechanges:=False
Application.Quit
End If
If messaGGino = vbYes Then
UserProva.Hide
ThisWorkbook.Close Savechanges:=False
Application.Quit
If messaGGino = vbNo Then
End If
End If
End Sub
In pratica mi è stato suggerito di riscrivere la If badando alle righe nel quale metto le istruzioni perché come scritta prima "Open...", "Print #1" e "Close #1" erano all'esterno della If.
Non metto in dubbio la tua soluzione ma così vedo che funziona tranquillamente.
Scrivo questo perché magari ne possiamo parlare e confrontarci e può servire ad altri utenti.