manuale sintassi vba



  • manuale sintassi vba
    di fofo (utente non iscritto) data: 14/12/2012 09:51:12

    Qualcuno può consigliarmi un manuale perla sintassi vba?devo sviluppare una macro...



  • di Vecchio Frac data: 14/12/2012 11:17:12

    Anche nella Home di questo forum ci sono dei link a tutorials dove puoi trovare ottimi spunti.
    In Rete si trova di tutto, di diverse difficoltà; per un libro di carta tipicamente vedrei Amazon o Webster ma puoi anche andare in una buona libreria e sfogliare i libri.
    Fondamentalmente però, pratica ed esercizio: avvia il registratore di macro per i primi esperimenti, e anche copiati il codice altrui, analizza i risultati e guarda come funziona; infine chiedi e ti sarà dato ^_^





  • di fofo (utente non iscritto) data: 14/12/2012 15:10:29

    in effetti devo fare una macro che mi faccia prima una selezione di alcune righe a seconda di alcune condizioni,per ogni foglio dopo di che dovrà fare il merge di tutti i fogli.Una cosa importante sarebbe avere anche funzioni di controllo calendariali,in poche parole in base alla data mi interessa sapere che giorno della settimana è ed in base al giorno deve effettuare controlli diversi.



  • di Vecchio Frac data: 14/12/2012 15:33:36

    Traccia su un foglio di carta i diversi passaggi per chiarirti le idee, descrivici quindi lo scenario con i particolari che possono essere ritenuti interessanti, prepara un piccolo file di esempio (con dati fittizi) e quindi allegalo, descrivendo il risultato da ottenere.
    Condividendo avrai più probabilità di risolvere.





  • di fofo (utente non iscritto) data: 19/12/2012 13:08:09

    Ciao rieccomi: allora il mio problema è questo:

    1.ho tanti file excel in una cartella

    2.in ogni file ho un foglio di nome report

    3.su ogni report devo fare dei controlli,e (questo è stato risolto bene)

    4.dovrei fare un merge di tutti i report (che ovviamente hanno tutti gli stessi campi)e metterli in un unico foglio

    ora il mio problema è il punto 4 non conoscendo bene la sintassi



  • di Vecchio Frac (utente non iscritto) data: 19/12/2012 16:18:35

    Con un oggetto FileSystemObject scorri i file della tua cartella, li apri anche con visible = false, recuperi (copy) la scheda report da ogni file e la riversi nel file destinazione a partire dalla prima riga libera del report totale. Infine salvi il file risultante.

    Ok... il codice sembra complicato... ma nei test che ho fatto funziona ^_^
    Incollalo in un modulo nel file che conterrà il report totale.
    Inserisci il percorso corretto nella variabile my_path.
    Ogni file deve avere una scheda chiamata "report" da cui vengono pescati i dati.

     
    Option Explicit
    
    Function import_report()
    Dim wbk As Workbook, wbk_dest As Workbook
    Dim my_path As String, fso As Object, f As Object, i As Integer
    
        my_path = "path & filename here.txt"
        
        Set fso = CreateObject("Scripting.FileSystemObject")
        
        Set wbk_dest = ThisWorkbook
        i = 1
        
        For Each f In fso.getFolder(my_path).Files
        
            Set wbk = Workbooks.Open(f)
            
            If wbk.Sheets("report").[A1].CurrentRegion.Rows.Count - 1 > 0 Then
                wbk.Sheets("report").[A1].CurrentRegion.Offset(1).Resize(wbk.Sheets("report").[A1].CurrentRegion.Rows.Count - 1).Copy wbk_dest.Sheets("report").[A1].Offset(i)
                i = i + wbk.Sheets("report").[A1].CurrentRegion.Rows.Count - 1
            End If
            
            wbk.Close False
        
        Next
        
        MsgBox "Fatto."
    
    End Function