Richiamare macro



  • Richiamare macro
    di Riccardo57 (utente non iscritto) data: 27/03/2009

    Ho creato un form su un foglio chiamato "base.xls", con alcuni bottoni.
    al bottone 1 vorrei associare la macro inizializza esitente nel folgio "analisi.xla" caricata all'avvio di excel.

    quale istruzione devo dare a:
    private sub commandbutton1_click()
    ............
    end sub
    per caricare la macro?

    se scrivo brutalmente

    private sub commandbutton1_click()
    inizializza
    end sub

    la routine si blocca e mi compare il messaggio

    errore di compilazione
    sub o function non definita


    grazie anticipatamente



  • di Teomacro (utente non iscritto) data: 27/03/2009

    Ciao,

    puoi usare
    "application.run nomefoglio!nomemacro"

    oppure

    "call nomefoglio!nomemacro"




  • Richiamare macro
    di Riccardo57 (utente non iscritto) data: 27/03/2009

    Ti ringrazio, le macro funzionano.

    approffitto della vostra pazienza e conoscenze per sviluppare ulteriormente l'applicazione.

    attualmente il form e le relative macro vengono caricate nel file "base .xls" con la macro di seguito riportata, inserita in "thiswokbook", il form si attiva con la pressione del tasto destro del mouse.

    questo però comporta il fatto che ogni volta che salvo il file "base.xlsb" con un nome diverso vengono salvate anche le macro ed il form.

    io vorrei poter spostare il formnel file "analisi.xlam", dove vi sono altre macro, ed utilizzarlo per tutti i file aperti in quel momento.

    come devo fare?




     
    Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
        On Error GoTo handleCancel
        Application.EnableCancelKey = xlErrorHandler
        TASTODESTRO.Show
        Exit Sub
    handleCancel:
    If Err = 18 Then
        MsgBox "You cancelled"
    End If
        Exit Sub
    End Sub
    
    'codice del form TASTODESTRO
    
    Private Sub CmdAnnulla_Click()
        Unload Me
        Exit Sub
    
    End Sub
    Private Sub CommandButton1_Click()
    Application.Run "analisi.xlsb!INIZIALIZZA"
    End Sub


  • Cartella personal
    di Teomacro (utente non iscritto) data: 28/03/2009

    Ciao,
    secondo me dovresti salvare le macro, form etc tutte nella cartella personal di excel...cartella che risulta sempre aperta quando usi excel, e quindi le macro in essa contenute saranno sempre disponibili pur non venendo salvate nei singoli file... se non la trovi registra una macro con il registratore di macro e seleziona "memorizza macro in: cartella macro personale"..



    se non e' chiaro fammi sapere


  • Richiamare macro
    di Riccardo57 (utente non iscritto) data: 01/04/2009

    Grazie teomacro per la dritta,
    posso chiederti un'altra gentilezza?

    la soluzione migliore per il form attivabile con il tasto destro sarebbe qualla di averla sempre caricata, tramite la cartella personal.xls*, però dovrebbe essere attivabile e disattivabile mediante due tasti, che ho già predisposto nel ribbon modificato.

    dal momento che ho inserito il listato

    private sub workbook_sheetbeforerightclick(byval sh as object, byval target as range, cancel as boolean)
    on error goto handlecancel
    application.enablecancelkey = xlerrorhandler
    tastodestro.show
    .................

    nel foglio thisworkbook

    quali macro assegnare ai due bottoni per richiamare la macro di attivazione e ovviamente quella di disattivazione?

    devo spostare il listato del tasto destro di cui sopra in un modulo generico della cartella personal?

    grazie riccardo57