Eseguire macro da altro foglio



  • Eseguire macro da altro foglio
    di cristian95 (utente non iscritto) data: 06/08/2012 12:49:39

    salve a tutti, volevo sapere se c'è un modo per eseguire una macro che opera sul foglio 1 dal foglio2. mi spiego meglio ho una macro che esegue le funzioni sul foglio 1 e io la voglio far partire dal foglio2 mantenendo però la sua funzione sul foglio1... grazie in anticipo delle risposte



  • di Vecchio frac data: 06/08/2012

    Sì, il modo c'è: togli la parola chiave "private" dalla sub (o function) che si trova in foglio1.
    nel foglio2 potrai richiamarla scrivendo esplicitamente foglio1.nomesub; tra parentesi, nota che appena digiti il punto l'intellisense ti mostra tutte le sub e le function rese public all'interno della cartella di lavoro (scrivere public o omettere tale parola chiave è equivalente).

    potresti anche rendere globale una sub (o function) del genere mettendola in un modulo (sempre dichiarandola public) e richiamandola da qualunque foglio senza necessità di specificare il foglio con la notazione punto.
    occhio però a non dare lo stesso nome alla routine per non generare errore o, peggio, un loop infinito :)
     
    'in Foglio1
    Sub testFoglio1()
        [a1] = "In esecuzione testFoglio1"
    End Sub
    
    'in Foglio2
    Private Sub testfoglio2()
        Foglio1.testFoglio1
    End Sub