+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

Creare Nuovo .xls in una determinata posizione

  1. #1
    Gipsys non è in linea Scolaretto
    Ciao a tutti.

    Ho fatto una ricerca nel forum riguardo l'argomento in oggetto; ho imparato tanto, ma non sono riuscito a trovare ciò che mi serve per iniziare.

    Voglio gestire tutto (si tratta di fantacalcio), utilizzando excel come fonte dati perchè conosco abbastanza bene VBA: calcoli, sostituzioni, mercato ecc...

    Ho bisogno però, in fase d'istallazione (quando sarà), di creare una cartella "FC" in "C" ed al suo interno un foglio di calcolo "Master.xls" (C:\FC\Master.xls).

    Sono già riuscito ad aprirne uno, scrivere, salvare e chiudere, ma uno già esistente.

    So che ci sono dei database più snelli e veloci più appropriati (probabilmente Acces (?)), ma non sono in grado di usarli e ci vorrebbe del tempo per raggiungere quantomeno l'autonomia che posseggo con VBA.

    Grazie

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Forse ho sottovalutato la domanda, ma vedi se questo è quello che dici...
    Private Sub cmdOPENXLS_Click()
     Dim xlApp As Object
     Dim oWks As Object
     Set xlApp = CreateObject("Excel.Application")
     Set oWks = xlApp.Workbooks.Add()
     'xlApp.Visible = True
     oWks.Close True, "D:\Prova.xls"
     xlApp.Quit
     set oWks = Nothing
     Set xlApp = Nothing
    End Sub
    
    Se ci devi lavorare ovviamente invece di chiudere puoi usare il metodo SAVEAS...
    ℹ️ Leggi di più su @Alex ...

  3. #3
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Creare ex-novo un foglio Excel è piuttosto semplice. Ho scritto una routine che fa proprio questo, basta passare come argomento il nome completo di percorso che dovrà avere il file. Ovviamente le cartelle devono essere già presenti:

    Sub CreaXLS(XLSName As String)
        Dim xlApp As Object
        Dim xlBook As Object
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
        xlBook.SaveAs (XLSName)
        xlBook.Close
        xlApp.Quit
        Set xlBook = Nothing
        Set xlApp = Nothing
    End Sub
    
    La puoi usare così:

    CreaXLS "C:\FC\Master.xls"
    
    Il problema però, è che così ottieni una cartella di lavoro esattamente vuota, quindi dovrai occuparti tu di formattare i fogli come ti serve che siano, aggiungendo eventualmente le formule, o rinominandoli.

    Se ti serve un foglio pre-formattato con dei dati già inseriti, visto che dovrai fare un'installazione, potresti decidere di includere nel pacchetto il tuo XLS. L'installer provvederà a copiarlo nella cartella dove ti serve che stia.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  4. #4
    Gipsys non è in linea Scolaretto
    Quote Originariamente inviato da TheTruster Visualizza il messaggio
    Creare ex-novo un foglio Excel è piuttosto semplice. Ho scritto una routine che fa proprio questo, basta passare come argomento il nome completo di percorso che dovrà avere il file. Ovviamente le cartelle devono essere già presenti:

    Sub CreaXLS(XLSName As String)
        Dim xlApp As Object
        Dim xlBook As Object
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
        xlBook.SaveAs (XLSName)
        xlBook.Close
        xlApp.Quit
        Set xlBook = Nothing
        Set xlApp = Nothing
    End Sub
    
    La puoi usare così:

    CreaXLS "C:\FC\Master.xls"
    
    Il problema però, è che così ottieni una cartella di lavoro esattamente vuota, quindi dovrai occuparti tu di formattare i fogli come ti serve che siano, aggiungendo eventualmente le formule, o rinominandoli.

    Se ti serve un foglio pre-formattato con dei dati già inseriti, visto che dovrai fare un'installazione, potresti decidere di includere nel pacchetto il tuo XLS. L'installer provvederà a copiarlo nella cartella dove ti serve che stia.

    TheTruster

    Ho aggiunto la stringa per creare la cartella in "C" e funziona:

    Codice PHP:
    Private Sub Command5_Click()
    Dim xlApp As Object
    Dim xlBook 
    As Object
        Set xlApp 
    CreateObject("Excel.Application")
        
    Set xlBook xlApp.Workbooks.Add
            MkDir 
    "C:\FC" 'Crea la cartella FC in C
            xlBook.SaveAs ("C:\FC\Prova.xls") '
    Crea Il Foglio Prova in FC
            xlBook
    .Close
            xlApp
    .Quit
                Set xlBook 
    Nothing
                Set xlApp 
    Nothing
    End Sub 
    Grazie
    Ciao

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da Gipsys Visualizza il messaggio
    Ho aggiunto la stringa per creare la cartella in "C" e funziona:

    Codice PHP:
    Private Sub Command5_Click()
    Dim xlApp As Object
    Dim xlBook 
    As Object
        Set xlApp 
    CreateObject("Excel.Application")
        
    Set xlBook xlApp.Workbooks.Add
            MkDir 
    "C:\FC" 'Crea la cartella FC in C
            xlBook.SaveAs ("C:\FC\Prova.xls") '
    Crea Il Foglio Prova in FC
            xlBook
    .Close
            xlApp
    .Quit
                Set xlBook 
    Nothing
                Set xlApp 
    Nothing
    End Sub 
    Grazie
    Ciao
    manca la gestione errori... MKDIR restituirà errore se la Cartella è già esistente..., quindi o controlli prima o gestisci dopo.
    ℹ️ Leggi di più su @Alex ...

  6. #6
    Gipsys non è in linea Scolaretto
    Infatti, non l'ho postato, ma successivamente l'ho inserita. Il cammino per sfornare questo programma, è appena cominciato. Ci risentiremo certamente.

    Grazie

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. posizione nuovo record in maschera
    Da AlexAlbo nel forum Microsoft Access
    Risposte: 6
    Ultimo Post: 24-05-2016, 07:47
  2. Risolto: [VB2010] TextBox: Posizionare il cursore in una determinata posizione
    Da imbranato nel forum Visual Basic .Net
    Risposte: 8
    Ultimo Post: 14-12-2012, 09:56
  3. Creare e vedere se esiste una determinata chiave di registro
    Da xnitro nel forum Visual Basic .Net
    Risposte: 6
    Ultimo Post: 09-09-2007, 19:39
  4. Risposte: 1
    Ultimo Post: 18-03-2005, 09:05
  5. [MsSQL]Aggiungere colonna in una determinata posizione
    Da angelmag nel forum Microsoft SQL Server
    Risposte: 4
    Ultimo Post: 10-01-2005, 12:10