Eseguire macro automatica



  • Eseguire macro automatica
    di Alessio (utente non iscritto) data: 29/09/2010

    Salve,
    avrei bisogno di poter far eseguire una macro appena seleziono e di conseguenza visualizzo uno sheet (foglio).

    se poi riuscissi a far eseguire la macro all'apertura del workbook (cartella di lavoro)su ogni foglio sarebbe il massimo.

    grazie



  • di Ricky53 (utente non iscritto) data: 29/09/2010

    Ciao alessio,
    lancia excel,
    vai nell’editor del vba con “alt+f11”
    in thisworkbook copia la seguente macro

    private sub workbook_open()
    msgbox = “aperto il file”
    end sub

    in microsoft excel oggetti
    nel foglio1 copia questa macro

    private sub worksheet_activate()
    msgbox = “attivato il foglio”
    end sub
    salva il file e riaprilo, vai sul foglio2 e ritorna sul foglio1 e
    ...

    vai avanti da solo

    ciao da ricky53


  • Eseguire macro automatica
    di Alessio (utente non iscritto) data: 30/09/2010

    Se volessi che quando vado su un qualunque foglio della cartella mi partisse in automatico la funzione sotto???

    al momento la faccio eseguire richiamandola con un tasto, ma se volessi che qualsiasi foglio selezioni partisse???????

     
    Sub PROVA_A1()
    
    i = 1
    
    With Worksheets("prova2").Range("C:C")
       .Value = ""
    End With
    
    If Worksheets("prova2").Range("a1").Value <> "" Then
       For Each casella In Worksheets("Foglio3").Range(Worksheets("Foglio3").Cells(2, 2), Worksheets("Foglio3").Cells(Worksheets("Foglio3").[a1].Value + 1, 2))
          If CStr(casella.Value) = Worksheets("prova2").Range("a1").Value Then
             i = i + 1
             Worksheets("prova2").Cells(i, 3) = casella.Offset(0, 1)
          End If
       Next
    End If
    
    
    End Sub



  • di Albatros54 (utente non iscritto) data: 01/10/2010

    Vai in vba selezioni thisworkbook e incolli il codice.
    ciao
    albatros54
     
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    
    i = 1
    
    With Worksheets("prova2").Range("C:C")
       .Value = ""
    End With
    
    If Worksheets("prova2").Range("a1").Value <> "" Then
       For Each casella In Worksheets("Foglio3").Range(Worksheets("Foglio3").Cells(2, 2), Worksheets("Foglio3").Cells(Worksheets("Foglio3").[a1].Value + 1, 2))
          If CStr(casella.Value) = Worksheets("prova2").Range("a1").Value Then
             i = i + 1
             Worksheets("prova2").Cells(i, 3) = casella.Offset(0, 1)
          End If
       Next
    End If
    
    
    End Sub



  • di Ricky53 (utente non iscritto) data: 01/10/2010

    Ciao alessio,
    però potevi provarci ti avevo dato il "la" ...

    avere la soluzione "chiavi in mano" non aiuta assolutamente ad imparare e ad essere pronti a fare da soli.

    forza devi provarci.

    ciao da ricky53