Risultati da 1 a 8 di 8

Discussione: Excel mi aiuta troppo, come impedire questo comportamento ?



  1. #1
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    812
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53

    Excel mi aiuta troppo, come impedire questo comportamento ?

    Mi stavo scervellando a risolvere un bug che avevo nella macro che cercavo mettere a punto per risolvere la richiesta di questo thread:
    http://www.forumexcel.it/forum/7-dom...ra-celle-piene
    e mi sono reso conto che il problema era dovuto alla "troppa disponibilità" di Excel ad agevolare il nostro lavoro e non ad un mio errore (poi magari ce ne sono altri peggiori ).
    La macro, tra le tante cose che fa, inserisce una formula a lato del nome appena inserito e una nuova riga vuota.
    Col file test che allego (stesso dell'altro thread), e che contiene la macro che riporto qui sotto, basta provare ad inserire un nome a partire dalla cella C6 (sotto Minnie) e poi continuare ad inserire altri nomi subito sotto.
    Tramite il debug riga per riga (ho inserito uno Stop) si può notare che con il primo nome inserito il ciclo If/Then viene seguito completamente ma con il successivo nome il confronto If non viene soddisfatto ... perché Excel di sua volontà ha già automaticamente copiato la formula nella giusta posizione (verificabile nel foglio in quanto già compare un Ok nella colonna B); solo se alterno un nome con un numero allora Excel non effettua la copia (automatica) della formula.

    Chi mi sa dire, a livello di macro, come impedire ad Excel di essere "troppo d'aiuto".
    Ho Excel 2010 e la soluzione normale è andare nelle opzioni in File / Opzioni / Impostazioni Avanzate / sezione Opzioni di Modifica e togliere la spunta su "Estendi formati e formule degli intervalli dati" ma questa opzione poi vale per "sempre" mentre io vorrei lasciarla attiva e disattivarla nella macro per evitare "bug" a dire poco incredibili (in un primo momento credevo che il foglio fosse "posseduto").
    Codice: 
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    
        Dim CheckArea As Range
        Set CheckArea = Union(Range("C3:C100"), Range("F3:F100"))
        If Not Intersect(Target, CheckArea) Is Nothing Then
            If Target.Count > 1 Then Exit Sub
            If Target.Value = vbNullString Then Exit Sub
            Application.EnableEvents = False
    Stop
            If Not Intersect(Target, Range("C3:C100")) Is Nothing Then
                If IsEmpty(Range(Target.Address).Offset(0, -1)) Then
                    Rows(Target.Row + 1).Insert
                    Range(Target.Address).Offset(0, -1) = Range(Target.Address).Offset(-1, -1).FormulaR1C1
                End If
            End If
            If Not Intersect(Target, Range("F3:F100")) Is Nothing Then
                If IsEmpty(Range(Target.Address).Offset(0, -4)) Then
                    Rows(Target.Row + 1).Insert
                    Range(Target.Address).Offset(0, -4) = Range(Target.Address).Offset(-1, -4).FormulaR1C1
                End If
            End If
        End If
        Application.EnableEvents = True
    
    End Sub
    File Allegati File Allegati

  2. I seguenti utenti hanno dato un "Like"


  3. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Excel mi aiuta troppo, come impedire questo comportamento ?

    Prova così:
    Codice: 
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.EnableAnimations = True
    End Sub
    
    
    Private Sub Workbook_Open()
        Application.EnableAnimations = False
    End Sub

  4. #3
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    812
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53

    Re: Excel mi aiuta troppo, come impedire questo comportamento ?

    Buongiorno Rubik72 , le prime prove sono negative ma il tuo suggerimento mi ha acceso una lampadine (un solo led ) e ho pensato: vuoi che il comando adatto sia: Application.EnableAutoComplete ... invece no ... ... è tutt'altra cosa.

  5. #4
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3209
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155

    Re: Excel mi aiuta troppo, come impedire questo comportamento ?

    Ciao rollis13
    Forse, e ripeto forse, l'inghippo sta nella formula inserita in B3 (e quindi copiata ogni volta che inserisci un nome). Secondo me dovrebbe essere così:
    Codice: 
    =SE(O(C3="";F3="");"";SE(D3=G3;"Ok";""))
    Prova e fai sapere.
    Ciao,
    Mario

  6. #5

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Excel mi aiuta troppo, come impedire questo comportamento ?

    Ops.
    Ho sbagliato comando. Volevo scrivere
    Application.ExtendList≠False

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  7. #6
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Excel mi aiuta troppo, come impedire questo comportamento ?

    ero convinto d aver risposto ieri sera ... mi sa che devo prender delle vitamine ricordine :D :D

    volevo dire:

    per conoscere questa ed altre istruzioni, basta attivare il tegistratore di macro.

    avvii il tegistratore.
    vai nelle opzioni ed attui il cambiamento.
    torni in sviluppo e germi il registratore.

    in questo caso, la macro avrebbe contenuto solo l ostruzione suggerita da Rubik.

    ..

    questo appunto é solo per ricordare che il registratore registra anche le modifiche attuate nella sezione e sue sottosezioni del menu -> file

    ...

    se mi è permesso un commento; a meno che non sia necessario per motivi che dall esempio non riesco a dedurre, a mio avviso, più che disabilitare l automatismo della formula, opterei per una rivisitata all algoritmo della macro cambiando la struttura delle istruzioni negli if ... then... else

  8. #7
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    812
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53

    Re: Excel mi aiuta troppo, come impedire questo comportamento ?

    @Marius44, cambiando formula non cambia la sostanza, Excel interviene con i suoi automatismi (impostazioni).
    @Rubik72, ecco, proprio quello era .

    @dracoscrigno, in effetti, non sono abituato ad usare il registratore per rilevare le Opzioni.
    Invece per quanto riguarda gli automatismi non me ne frega niente della struttura dell'If/Then, Excel deve fare quello che voglio io, non quello e come vuole lui ...

    Grazie a tutti, peccato che non si possa più mettere RISOLTO.

  9. #8
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Excel mi aiuta troppo, come impedire questo comportamento ?

    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    ...per quanto riguarda gli automatismi non me ne frega niente della struttura dell'If/Then, Excel deve fare quello che voglio io, non quello e come vuole lui...
    Se dovessi fare in modo che Excel non facesse una cosa che non vuoi che venga fatta ti darei pienamente ragione ma visto che Vuoi impedire ad Excel di scrivere una cosa in automatico per fare in modo di potergli dire di scriverla via VBA, a me, pare, quanto meno, contorto.

    Oltretutto impedendoti di poter usufruire di una risorsa che potrebbe venir buona in altri ambiti del progetto e dovendo scrivere porzioni di codice in differenti punti rendendo la comprensione del porgetto più difficoltosa.

    Però. E' vero, conoscendo solo l' esempio, non conosco le reali esigenze richieste al progetto ed anche: se va bene a te allora va bene a tutti.

    In bocca al lupo quindi

Discussioni Simili

  1. meglio utilizzare excel o access per questo tipo di lavoro?
    Di matcap nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 18/12/16, 14:13
  2. Comportamento anomalo macro con Excel 2013 (ok con Excel 2007)
    Di LorisB nel forum Domande su Excel VBA e MACRO
    Risposte: 15
    Ultimo Messaggio: 23/10/16, 09:47
  3. Quando apro un file di Excel...appare questo messaggio....
    Di Dilly nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 18/07/16, 01:27
  4. Errore Routine troppo estesa!
    Di morenomax nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 26/04/16, 18:09
  5. Bug o comportamento voluto?
    Di Lcbsm nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 30/03/16, 10:54

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
  •