Macro che si attiva all'uscita dal foglio

Anonimo
2013-03-07T23:30:53+00:00

Buonasera vorrei capire le istruzioni da assegnare ad una macro che si attivi all'uscita da quel singolo foglio.

Questa ad esempio si attiva prima di chiudere la cartella di lavoro, a me invece serve quando esco dal foglio e torno a dun altro foglio della stessa cartella.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

'ORDINA IL FOGLIO PRIMA DI USCIRE DALLO STESSO

With Me.Worksheets("DbDipendenti")

Columns("A:A").Select

ActiveWorkbook.Worksheets("dbDipendenti").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("dbDipendenti").Sort.SortFields.Add Key:=Range( _

"A2:A200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

xlSortNormal

ActiveWorkbook.Worksheets("dbDipendenti").Sort.SortFields.Add Key:=Range( _

"B2:B200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

xlSortNormal

With ActiveWorkbook.Worksheets("dbDipendenti").Sort

.SetRange Range("A1:I200")

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Range("A2").Select

End With

End Grazie che non é una istruzione ma un ringraziamento

Bnotte

A

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-03-08T08:58:53+00:00

Ciao Andrea22,

da quel che dici quello che ti ho illustrato è proprio ciò di cui hai bisogno, invece. Vediamo perché non lo riconosci...

Forse perché insisti a pensare in termini di "entrare in un foglio"? Non si entra né si esce da un foglio. Si attiva, E, conseguentemente, il precedente si disattiva. Questi sono gli eventi che abbiamo a disposizione e con questi dobbiamo operare.

Inoltre... Parli di una macro presente in ThisWorkbook. Ma in ThisWorkbook non possono essere presenti macro. Le routine in ThisWorkbook, che è un modulo di classe, possono essere soltanto o routine di gestione degli eventi o metodi di ThisWorkbook. Le macro puoi scriverle soltanto in un modulo standard pubblico.

Per prendere confidenza con la cosa prova così, con una cartella di lavoro nuova al cui progetto Visual Basic aggiungerai un modulo:

' ThisWorkbook - Modulo di classe dell'oggetto Workbook

'

Option Explicit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    MsgBox Sh.Name, vbOKOnly, "SheetActivate"

    aMacro

End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

    MsgBox Sh.Name, vbOKOnly, "SheetDeactivate"

End Sub

' Modulo1 - Modulo standard pubblico

'

Option Explicit

Public Sub aMacro()

    MsgBox "aMacro", vbOKOnly, ThisWorkbook.ActiveSheet.Name

End Sub

La risposta è stata utile?

0 commenti Nessun commento

23 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-03-11T15:53:35+00:00

    Parole sante.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-03-11T12:37:19+00:00

    vero?! penso anche io, oltre a portar via un sacco di spazio alle volte si comporta stranamente!

    Grazie Mauro e buona giornata

    A

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-03-11T11:27:55+00:00

     

    Allora esperienza mi dice di:

    • creare un nuovo foglio
    • prima copiare i formati
    • poi i dati
    • e dopo formattare come tabella

     

    Se tabella è intesa come dati in forma tabellare trasformati in tabella di Excel, la mia esperienza mi dice che:

     tabella = male.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-03-11T09:09:03+00:00

    Ecco il mio Simon Templar, alias il Santo, se posso permettermi!

    Allora per comodità ho nascosto le righe completamente vuote che nn mi servono, dalla riga 201 in poi...

    Prima la macro mi deve far andare il cursore sulla prima cella libera ovvero vuota della colonna A.

    Se provo in altri fogli non formattati o anche formattati come tabella funziona, qui no!

    Allora esperienza mi dice di:

    • creare un nuovo foglio
    • prima copiare i formati
    • poi i dati
    • e dopo formattare come tabella

    adesso provo

    Grazie e buon lavoro

    A

    La risposta è stata utile?

    0 commenti Nessun commento