CREARE FILE IN VB.NET DA UN FOGLIO EXCEL CON MACRO E USERFORM, BOTTONI

di il
9 risposte

CREARE FILE IN VB.NET DA UN FOGLIO EXCEL CON MACRO E USERFORM, BOTTONI

Ciao a tutti , scusatemi se magari ho sbagliato Area di Argomento , ma sono completamente a digiuno su Visual Studio 2022 e vorrei realizzare un programma che faccia le stesse cose che fa il foglio excel che ho realizzato:

Dove ho un foglio nascosto vedi sotto suddiviso in 3 colonne e 5 righe  foto sotto,

Quando apro il foglio.xlsm parte una macro con un userform e 3 pulsanti che eseguono : 1 seleziona file dati  2 genera file ini  3 genera file di uscita.  sotto metto come esempio il vba dei 2 pulsanti:

Mi potete dare una mano magari inviandomi un file di esempio e quando apro Visual studio 2022 che opzione devo scegliere per realizzare quanto scritto.

Grazie

Max

Sub creafile()
' Crea file di testo da una zona dati Excel
'
Path$ = "C:\Users\santi\Desktop\test\" ' percorso per salvataggio file
Nomefile$ = "Prova_4.ini"   ' nome del file da salvare
PF$ = Path$ & Nomefile$        ' costruisce percorso completo
nri% = 5 ' imposta n° righe
nco% = 3 ' imposta n° colonne

'
If Dir(PF$) <> "" Then         ' verifica se il file esiste già
   msgrisp = MsgBox("Il file esiste già." & Chr(13) & "Sostituirlo?", 308, "Messaggio Macro Creafile")
   If msgrisp = 7 Then End
End If
F% = FreeFile                 ' acquisisce primo numero di file libero
Open PF$ For Output As #F%     ' apre un file per output
For riga% = 1 To nri%
   For col% = 1 To nco%
       If col% < nco% Then
          Print #F%, Sheets("Foglio1").Cells(riga%, col%); 'Chr(1); 'Scrive dati nel file e chr(*) serve per gli spazzi dove * e numero spazi sulla stssa riga
       Else
          Print #F%, Sheets("Foglio1").Cells(riga%, col%); ' togli gli spazi tra le righe
       End If
   Next col%
   If riga% < nri Then Print #F%,  'Chr(0)
Next riga%
'
Close #F%                      'Chiude File
'
MsgBox "Creato file " & Nomefile$, 64, "Messaggio Macro Creafile"
'
End Sub
Sub PercorsoFile()
Dim fd As FileDialog
Dim sName As String
Dim sPath As String
Dim Arr

'variabile percorso
sPath = Foglio1.Cells(1, "B")
'variabile nome file
sName = Foglio1.Cells(1, "C")
'imposta file dialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
   .AllowMultiSelect = False
   .ButtonName = "Seleziona"
   .Title = "Seleziona  il file da importare"
   .Show
   If (.SelectedItems.Count > 0) Then
       Arr = Split(.SelectedItems(1), "\")
       sName = .SelectedItems(1)
       'scrive sul foglio il percorso e il nome file
       Foglio1.Cells(1, "C") = Arr(UBound(Arr))
       Foglio1.Cells(1, "B") = Replace(sName, Arr(UBound(Arr)), "")
       
       Foglio1.Cells(2, "C") = Replace(Arr(UBound(Arr)), ".dat", ".ascii")
       Foglio1.Cells(2, "B") = Replace(sName, Arr(UBound(Arr)), "")
   Else
       MsgBox "File non selezionato"
       Exit Sub
   End If
End With

Set fd = Nothing
End Sub

9 Risposte

Devi accedere o registrarti per scrivere nel forum
9 risposte