Risultati da 1 a 16 di 16

Discussione: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)



  1. #1
    L'avatar di LorisB
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Messaggi
    9
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    0

    Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Buona sera a tutti, sono nuovo del forum e vorrei porre un quesito:
    Nel passaggio da Excel 2007 a Excel 2013 ho un problema con una macro. Premetto che con il 2007 la seguente procedura funziona perfettamente da qualche anno; aggiungo inoltre che la macro sta funzionando su una postazione con Excel 2007 mentro ha problemi nella postazione dove è installato Excel 2013.
    In un determintato punto della procedura devo spostare una riga da un file ad un altro(archiviazione) per cui eseguo la seguente routine..:
    Codice: 
    Dim rng as Range
    For i = 2 To RigheAnalisiCorr
    Windows(ArchivioCorrente).Activate
    Sheets("Analisi").Select
    If Format(Cells(i, colComm), "000.00") = Format(CommessaDaArchiviare, "000.00") Then
    Set rng = Workbooks(ArchivioCorrente).Sheets("Analisi").Cells(i, colComm).EntireRow
    rng.Copy
    Windows(ArchivioStorico).Activate
    Sheets("Analisi new").Select
    Cells(RigheAnalisiArch + 1, 1).Select
    ActiveSheet.Paste
    Cells(RigheAnalisiArch + 1, 23) = Date ‘Data di archiviazione
    Windows(ArchivioCorrente).Activate
    Sheets("Analisi").Select
    rng.Delete
    …..da questo punto in poi interviene un sorta di blocco che non consente più di selezionare i due file via VBA per cui non resta altro che interrompere la macro. Una volta forzato l’arresto non è poi più possibile selezionare le celle dei due file per cui bisogna chiudere Excel e riavviarlo.

    Codice: 
    Exit For
    End If
    Next
    N.B.: Ho inserito in un secondo tempo la dichiarazione dell’oggetto ‘rng’ pensando che il problema fosse quello ma senza successo
    Ultima modifica fatta da:ges; 11/10/16 alle 22:13 Motivo: Messo codice nei TAG

  2. #2

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    52
    Messaggi
    3700
    Versione Office
    2011/2016MAC
    Mi Piace ricevuti
    1104
    Mi Piace dati
    653

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Ciao Loris,
    il codice va messo nei TAG, questa volta l'ho fatto io.
    Per la tua richiesta dovresti postare un file di esempio anche con nomi di fantasia e il codice completo.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  3. #3
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    544
    Versione Office
    2010 64bit
    Mi Piace ricevuti
    86
    Mi Piace dati
    31

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    ... inoltre, forse è il caso di riportare l'intera macro, non un estratto, altrimenti non si capisce da dove provengono i dati di alcune variabili. Provata con variabili valorizzate in modo fittizio la macro ha girato ...

  4. #4
    L'avatar di Dillina
    Clicca e Apri
    Data Registrazione
    Aug 2016
    Località
    Tenerife
    Messaggi
    999
    Versione Office
    2013
    Mi Piace ricevuti
    127
    Mi Piace dati
    521

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Ciao LorisB e benvenuto nel Forum,
    ho visto che non sei passato dal VIA prima di postare.
    Per mettere una simpatica foto dell'avatar potrai trovare le istruzioni QUI

    Vieni a presentarti appena hai due minuti?

    Grazie
    Sii gentile quando possibile. È sempre possibile
    (Dalai Lama)

  5. #5
    L'avatar di LorisB
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Messaggi
    9
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    0

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Ecco la macro completa (...spero di aver utilizzato correttamente i tag...è la prima volta):

    Codice: 
    Dim ArchivioStorico as string
    Dim ArchivioCorrente as string
    Dim CommessaDaArchiviare As Double
    Dim RigheAnalisiArch As Long
    Dim i As Long
    Dim rng As Range
    
    CommessaDaArchiviare = CDec(ElencoCommesse) ‘ElencoCommesse è il nome delcontrollo di tipo ComboBox presente nello userform con il quale l’utente scegliela commessa da archiviare
    
    Workbooks(ArchivioStorico).Activate
    Sheets("Analisinew").Select
    Cells(1, 1).Select
    If Worksheets("AnalisiNew").AutoFilterMode Then Selection.AutoFilter: _
    Selection.AutoFilter
    'Conta le righe dei datiAnalisi storiche
    RigheAnalisiArch = Cells(1,5).End(xlDown).Row
    
    'Copia la riga del foglio"Analisi" relativa alla commessa da archiviare
    For i = 2 To ActiveWorkbooks(ArchivioCorrente).Cells(1, 5).End(xlDown).Row
    Windows(ArchivioCorrente).Activate
    Sheets("Analisi").Select
    If Format(Cells(i,colComm), "000.00") = Format(CommessaDaArchiviare,"000.00") Then
    Set rng =Workbooks(ArchivioCorrente).Sheets("Analisi").Cells(i, 1).EntireRow
    rng.Copy
    Windows(ArchivioStorico).Activate
    Sheets("Analisinew").Select
    Cells(RigheAnalisiArch + 1, 1).Select
    ActiveSheet.Paste
    Cells(RigheAnalisiArch+ 1, 23) = Date
    Windows(ArchivioCorrente).Activate
    Sheets("Analisi").Select
    rng.Delete
    
    
    ‘…..…..da questo punto in poi interviene un sorta di blocco che nonconsente più di selezionare i due file via VBA per cui non resta altro cheinterrompere la macro. Una volta forzato l’arresto non è poi più possibileselezionare le celle dei due file per cui bisogna chiudere Excel e riavviarlo.


    Codice: 
    Exit For
    End If
    Next
    
    Windows(ArchivioStorico).Activate
    ActiveWorkbook.Save
    ActiveWorkbook.Close

  6. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    44
    Messaggi
    1660
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    517
    Mi Piace dati
    428

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    questo range
    Codice: 
                Set rng = Workbooks(ArchivioCorrente).Sheets("Analisi").Cells(i, 1).EntireRow
    ha per caso una protezione?

    Senza file allegato si può andare solo per tentativi!!!

    Allega un file senza dati sensibili.

  7. #7
    L'avatar di LorisB
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Messaggi
    9
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    0

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Ecco i due file in allegato; volevo sottolineare il fatto che la macro in questione ha funzionato e funziona ancora perfettamente su postazioni con Excel 2007, mentre riscontro il problema solo con Excel 2013 (2 postazioni con lo stesso identico comportamento).
    File Allegati File Allegati

  8. #8
    L'avatar di Anthony
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    Ivrea (TO)
    Messaggi
    228
    Versione Office
    2003-2010-2016
    Mi Piace ricevuti
    166
    Mi Piace dati
    31

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Ma dove va la macro visto che alleghi due file .xlsx??

    Comunque XL2013 ha un comportamento talebano quando si visualizza una form in modalita' vbModal (quella standard); in particolare la selezione di altri fogli o altri file puo' fallire. Questa sembra una interpretazione esagerata (e difforme da quanto fatto nelle versioni passate) delle specifiche Microsoft che dicono "When a UserForm is modal, the user must respond before using any other part of the application".

    Dovrai quindi non cambiare file e foglio attivo, ma indirizzare in modo esplicito File e Foglio che ti servono.
    Esempio; NON
    Workbooks(ArchivioStorico).Activate
    Sheets("Analisinew").Select
    Cells(1, 1).Select
    If Worksheets("AnalisiNew").AutoFilterMode Then Selection.AutoFilter: _
    Selection.AutoFilter
    'Conta le righe dei datiAnalisi storiche
    RigheAnalisiArch = Cells(1,5).End(xlDown).Row

    Ma
    Codice: 
    If Worksheets("AnalisiNew").AutoFilterMode Then Workbooks(ArchivioStorico). Sheets("Analisinew").Cells(1,1).AutoFilter
    'Conta le righe dei datiAnalisi storiche
    RigheAnalisiArch = Workbooks(ArchivioStorico). Sheets("Analisinew").Cells(1,5).End(xlDown).Row
    In mancanza dell'ambiente di prova le istruzioni date a mo' di esempio non sono state collaudate.

    Ciao
    Anthony

  9. I seguenti utenti hanno dato un "Mi Piace"


  10. #9
    L'avatar di LorisB
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Messaggi
    9
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    0

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Grazie per le indicazione; in risposta alla domanda.... la macro è in un file esterno per semplificare nel tempo le varie modifiche/implementazioni.
    Appena possibile provo a seguire le vostre indicazioni poi vi ragguaglio sul risultato. Intanto grazie.

  11. #10
    L'avatar di LorisB
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Messaggi
    9
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    0

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Ho fatto vari tentativi applicando i vostri suggerimenti senza però trovare la soluzione; a forza di provare ho scoperto che provando ad eliminare una riga manualmente (non con il codice VBA) Excel va in errore su uno qualsiasi dei 10 fogli del file 'Programma di produzione' ('Excel ha smesso di funzionare'). Ora, utilizzando Excel 2013 con altri file il problema non si presenta e non si presenta neppure con il file in questione ma con l'utilizzo di Excel 2007. A questo punto devo dedurre che c'è qualche anomalia a livello di file incompatibile con Excel 2013....cosa ne pensate?...avete qualche suggerimento? Grazie comunque.

  12. #11
    L'avatar di Anthony
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    Ivrea (TO)
    Messaggi
    228
    Versione Office
    2003-2010-2016
    Mi Piace ricevuti
    166
    Mi Piace dati
    31

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Citazione Originariamente Scritto da LorisB Visualizza Messaggio
    Ho fatto vari tentativi applicando i vostri suggerimenti senza però trovare la soluzione; a forza di provare ho scoperto che provando ad eliminare una riga manualmente (non con il codice VBA) Excel va in errore su uno qualsiasi dei 10 fogli del file 'Programma di produzione' ('Excel ha smesso di funzionare'). Ora, utilizzando Excel 2013 con altri file il problema non si presenta e non si presenta neppure con il file in questione ma con l'utilizzo di Excel 2007. A questo punto devo dedurre che c'è qualche anomalia a livello di file incompatibile con Excel 2013....cosa ne pensate?...avete qualche suggerimento? Grazie comunque.
    Se pubblichi la macro completa e spieghi in quale file e' contenuta allora possiamo provare anche noi.
    Quanto all'anomalia che descrivi non sono in grado di fare commenti; certamente a me pare che XL2016 e l'evoluzione 2016 siano meno robusti dei precedenti, ma e' una opinione che deriva solo da poche stranezze che ho avuto modo di osservare.

    Ciao
    Anthony

  13. #12
    L'avatar di LorisB
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Messaggi
    9
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    0

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Anthony, intanto grazie per la tempestività delle risposte; prima di spiegare cosa ho trovato chiedo scusa per avervi messo su una strada errata.
    E' vero che l'errore avveniva in fase di esecuzione della macro ma a furia di provare ho scoperto che il problema era già insito nel file ed in particolare nella colonna 'F' del foglio "Controllo commesse-Riepilogo"; tale colonna contiene una formattazione condizionale che crea una sorta di grafico. Eliminando suddetta formattazione il problema è risolto.
    Ora, mi sorgono spontanei alcuni interrogativi...:1- Perché Con Excel 2007 non ci sono problemi mentre si presentano con Excel 2013 (e anche Excel 2010)?
    2- Come può una formattazione (ho constatato che c'è qualche errore!!) inserita in un foglio mettere in crisi l'equilibrio dell'intero file (potete provare a cancellare anche una riga del foglio "Macchine" ed il problema si presenta puntuale.
    3- Pur constatando che c'è sicuramente qualche errore sulle regole di formattazione (verificherò in quale modo si sono danneggiate) resta comunque valida la considerazione fatta al punto 2
    Scusate ancora per le mie prime indicazioni che, alla luce delle successive prove, si sono rivelate essere fuorvianti.
    Grazie comunque per l'assistenza.
    File Allegati File Allegati

  14. #13
    L'avatar di Anthony
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    Ivrea (TO)
    Messaggi
    228
    Versione Office
    2003-2010-2016
    Mi Piace ricevuti
    166
    Mi Piace dati
    31

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Il file contiene alcune cose che non so valutare, potendo derivare dal lavoro di creazione del file di prova da un file molto piu' corposo.
    Ad esempio la maggioranza degli intervalli nominati hanno una origine in errore #RIF!; ma soprattutto nelle celle di colonna F di "Controllo commesse-Riepilogo" ci sono oltre 3300 regole di formattazione, tutte riferite all'intervallo $F$2:$F$20.
    Non so come sono nate tutte queste regole (da <cfRule priority="1" type="colorScale">, <cfRule priority="2" type="dataBar"> fino a <cfRule priority="3305" type="dataBar">), ma eliminandole completamente (seleziona F2:F30, Formattazione condizionale /Cancella regole /area selezionata) il file e' diventato gestibile senza crash; rimane gestibile anche reinserendo la formattazione condizionale (1 sola volta!).
    Prova anche tu in questo modo.

    Ciao
    Anthony

  15. #14
    L'avatar di LorisB
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Messaggi
    9
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    0

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Come avevo notato ci sono errori sulle regole di formattazione, condizionale probabilmente generate dal fatto che giornalmente con una macro elimino i dati della tabella e li riscrivo poiché fanno riferimento al foglio "Dati di Produzione"; resta comunque il fatto, secondo me inspiegabile, che per un errore presente in un foglio, Excel vada in crisi alla cancellazione di una riga in un altro foglio e comunque (scusa se mi ripeto) con Excel 2007 tutto funziona bene.

  16. #15
    L'avatar di Anthony
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    Ivrea (TO)
    Messaggi
    228
    Versione Office
    2003-2010-2016
    Mi Piace ricevuti
    166
    Mi Piace dati
    31

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Il file ha in totale 3304 regole di formattazione condizionale che si applicano all'intervallo F2:F20 del foglio Controllo commesse-Riepilogo; di queste almeno 3300 sono indesiderate
    Sinceramente non mi chiedo perche' un file corrotto si comporta diversamente tra XL2007 e versioni successive.
    Potrebbe invece tornare utile questo articolo Microsoft dal titolo "Excel: How to troubleshoot crashes and "not responding" in Excel workbooks": https://support.microsoft.com/en-us/kb/2735548
    Riporto solo il titolo dei capitoli:
    Formatting Considerations
    Method 1: Get rid of Excessive Formatting
    Method 2: Removing unused Styles
    Method 3: Conditional Formatting
    . . .

    Ciao
    Anthony

  17. I seguenti utenti hanno dato un "Mi Piace"


  18. #16
    L'avatar di LorisB
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Bologna
    Messaggi
    9
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    0
    Mi Piace dati
    0

    Re: Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)

    Anthony, ho letto le informazioni che hai indicato nel link....molto interessanti!
    Ora ho modificato la routine che aggiornava i dati nel foglio "Controllo commesse-Riepilogo" in questo modo...:
    1- Ho eliminato completamente la formattazione condizionale
    2- Ho poi reimpostato la formattazione condizionale sulla base della selezione corrente
    Con questo metodo Excel non va più in crash.
    A questo punto direi che possiamo chiudere la discussione ...ci pensi tu?
    Grazie per il supporto.
    Ciao.

Discussioni Simili

  1. [Risolto] [Excel 2013] Macro per aggiornamento dati
    Di Daniele.Caso nel forum Domande su Excel VBA e MACRO
    Risposte: 17
    Ultimo Messaggio: 21/11/16, 08:22
  2. Trasformare file excel con macro versione 2003 nella versione 2007
    Di mirco1976 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 19/10/16, 22:31
  3. Excel mi aiuta troppo, come impedire questo comportamento ?
    Di rollis13 nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 07/09/16, 17:48
  4. protezione foglio di lavoro Excel 2013
    Di sergi0 nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 14/03/16, 15:30
  5. compatibiltà 2013 con 2007
    Di Il Pirata nel forum Domande su Excel in generale
    Risposte: 16
    Ultimo Messaggio: 26/11/15, 18:40

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •