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

di Max6819 il
9 risposte

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

  • 22/12/2023 - Max6819 ha scritto:


    inviandomi un file di esempio e quando apro Visual studio 2022 che opzione devo scegliere per realizzare quanto scritto.

    No, questo tipo di richiesta ("pappa pronta") non sono consentite e neanche ben viste.

  • Ciao Oregon, 

    Scusami non sapevo , allora vi chiedo se potete indicarmi quale applicazione è migliore di Visual Studio 2022 per le mie esigenze.  Cosi io psso trovare libri, ecc per potere iniziare

    Grazie

    Max

  • Che vuoi dire? Non si capisce il problema.

    Se vuoi programmare in VB.NET esistono migliaia di libri, su internet puoi sceglierne uno di base in italiano.

    Ma non capisco perché non continui in VBA

  • Ciao a tutti, 

    Grazie a gian82 per il suggerimento.

    Ciao Oregon , non continuo con VBA in quanto ad oggi stò usando il vba di excel , e vorrei realizzare un programma autonomo e non dipendente da excel. Esempio che avevo inserito è solo un piccola parte del VBA in excel che ho realizzato.  Comunque grazie

    Grazie 

    Massimo

  • Ciao max , volevo solo aggiungere che magari ti potrebbe essere utile passare a c# , non cambia molto , invece che avere la chiusura istruzione esplicita ,ad esempio “endif” chiudi la graffa , avresti però più libri (https://introprogramming.info/english-intro-csharp-book/) , esempi , tutorial , template ,insomma vb.net và ancora bene ma mi sembra di essere senza dubbio nel giusto se dico che microsoft lo mantiene ma stà puntando di più su csharp  

  • 23/12/2023 - Max6819 ha scritto:


    non continuo con VBA in quanto ad oggi stò usando il vba di excel , e vorrei realizzare un programma autonomo e non dipendente da excel

    Quindi devi prima “studiare” l'altro linguaggio e tutto quello che ne segue (gestione DB …) e poi cominciare a fare piccole prove che ti facciano accumulare esperienza. Solo dopo tempo potrai impostare un programma abbastanza complesso.

    Non ci sono scorciatoie, copiare il codice scritto da altri non è un metodo valido.

  • Ciao gian82 e Oregon , 

    Vi ringrazio del suggerimenti inizio con C# ho già prese dei libri, per iniziare a capire il linguaggio .

    Vi Auguro un Buon NAtale anche se in ritardo e un grande 2024.

    MAx

  • CSharp non è la stessa cosa e lo devi studiare ex-novo (e non parlo della sola sintassi)
    Se conosci già VBA, io lo farei in VB.NET (ho da poco fatto una cosa simile a quella che chiedi, conoscedo però già sia Visual Studio che VB.NET)

    E' vero che MS sembra puntare più su C#, ma quante volte MS ha annunciato la "soluzione finale" per la programmazione (soprattutto cross-platform) per poi cambiare direzione?

Devi accedere o registrarti per scrivere nel forum
9 risposte