Condividi tramite

Problemi con macro su excel 2003

Anonimo
2017-04-03T15:32:40+00:00

Salve,

sto litigando con una macro che nelle versioni recenti di excel funziona correttamente ma su un pc con qualche anno sulle spalle (s.0 win7) e office/excel 2003 sp3 mi da errore (si apre l'editor VBA con questo messaggio:impossibile trovare il metodo o il membro dei dati!).

La macro parte sull' evento "deactivate" di un foglio.

Allego la macro:

Private Sub Worksheet_Deactivate()

     Application.ScreenUpdating = False

     Dim SH As Worksheet

     Dim lRiga As Long

     Set SH = ThisWorkbook.Worksheets("ElencoDitte")

     lRiga = SH.Range("A" & Rows.Count).End(xlUp).Row

       With SH.Sort

         .SortFields.Clear

         .SortFields.Add Key:=Range("A1:A" & lRiga) _

         , SortOn:=xlSortOnValues, _

         Order:=xlAscending, _

         DataOption:=xlSortNormal

         .SetRange Range("A1:A" & lRiga)

         .Header = xlYes

         .MatchCase = False

         .Orientation = xlTopToBottom

         .SortMethod = xlPinYin

         .Apply

     End With

     Set SH = Nothing

   Application.ScreenUpdating = True

End Sub

Avete osservazioni/suggerimenti?

con la macro devo semplicemente (si fa per dire) riordinare  (ordine alfabetico) un foglio che contine per ogni riga i dati di alcune ditte (circa 130 nominativi)  quando ne aggiungo una nuova.

grazie

MF

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
2017-04-03T16:53:30+00:00

Ciao MecFala,

sto litigando con una macro che nelle versioni recenti di excel funziona correttamente ma su un pc con qualche anno sulle spalle (s.0 win7) e office/excel 2003 sp3 mi da errore (si apre l'editor VBA con questo messaggio:impossibile trovare il metodo o il membro dei dati!).

La macro parte sull' evento "deactivate" di un foglio.

Allego la macro:

Private Sub Worksheet_Deactivate()

     Application.ScreenUpdating = False

     Dim SH As Worksheet

     Dim lRiga As Long

     

     Set SH = ThisWorkbook.Worksheets("ElencoDitte")

     lRiga = SH.Range("A" & Rows.Count).End(xlUp).Row

     

       With SH.Sort

         .SortFields.Clear

         .SortFields.Add Key:=Range("A1:A" & lRiga) _

         , SortOn:=xlSortOnValues, _

         Order:=xlAscending, _

         DataOption:=xlSortNormal

         .SetRange Range("A1:A" & lRiga)

         .Header = xlYes

         .MatchCase = False

         .Orientation = xlTopToBottom

         .SortMethod = xlPinYin

         .Apply

     End With

 

     Set SH = Nothing

   Application.ScreenUpdating = True

End Sub

Avete osservazioni/suggerimenti?

con la macro devo semplicemente (si fa per dire) riordinare  (ordine alfabetico) un foglio che contine per ogni riga i dati di alcune ditte (circa 130 nominativi)  quando ne aggiungo una nuova.

La proprietà Worksheet.Sort è stata introdotta con Excel 2007. Per rendere la procedura compatibile sia con Excel 2003 che versioni successive, prova la seguente versione:

'=========>>

Option Explicit

'--------->>

Private Sub Worksheet_Deactivate()

    Dim Rng As Range

    Dim lRiga As Long

    With Me

        lRiga = .Range("A" & Rows.Count).End(xlUp).Row

        Set Rng = .Range("A1:A" & lRiga)

    End With

    On Error GoTo XIT

    Application.ScreenUpdating = False

    With Rng

        .Sort Key1:=.Cells(2), _

        Order1:=xlAscending, _

              Header:=xlGuess, _

              OrderCustom:=1, _

              MatchCase:=False, _

              Orientation:=xlTopToBottom, _

              DataOption1:=xlSortNormal

    End With

XIT:

    Application.ScreenUpdating = True

End Sub

'<<=========

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-04-04T13:30:59+00:00

    Ciao MecFala,

    Confermo,

    funziona tutto benissimo anche con il 2003!

    Grazie Norman di nuovo per la disponibilità

    Ti ringrazio per il cortese riscontro.

    Per chiudere questo thread, vorrei chiederti gentilmente di contrassegnare la mia risposta come Risposta preferita. In questo modo, tu aiuterai anche coloro che potessero cercare soluzioni ai problemi simili negli archivi della Community.

        

    Alla prossima.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-04-04T13:07:22+00:00

    Confermo,

    funziona tutto benissimo anche con il 2003!

    Grazie Norman di nuovo per la disponibilità

    saluti

    a.falavigna

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-04-03T18:25:09+00:00

    Si,

    ho inserito il codice sopraindicato e confermo che con le versioni recenti di excel funziona perfettamente.

    Domani al lavoro verifico anche la compatibilità con il 2003 (qui a casa ho solo versioni recenti).

    Grazie mille per tutto!

    Saluti e buona serata

    MF

    La risposta è stata utile?

    0 commenti Nessun commento