Macro di azzeramento dati



  • Macro di azzeramento dati
    di fragovic (utente non iscritto) data: 18/01/2013 09:32:53

    Salve a tutti, volevo porvi un quesito: ho una tabella in Excel che contiene formule e nella quale importo manualmente dei dati. Vorrei creare una macro che azzeri ,ogni volta che viene eseguita, i dati contenuti nelle formule. Ho provato con la macro cancella ma si cancellano anche le formule.... qualcuno ha una soluzione? Grazie anticipatamente !!!



  • di Vecchio Frac data: 18/01/2013 10:07:42

    Il codice sembrerà un po' strano ma funziona :)
    Ovviamente devi adattare il range del ciclo For al tuo caso specifico.
     
    Option Explicit
    
    Sub consolida_valori()
    Dim cell As Range, v As Variant
    
        For Each cell In [A1:F10]
        
            If cell.HasFormula Then
                v = cell
                cell = v
            End If
            
        Next
    
    End Sub






  • di Vecchio Frac data: 18/01/2013 10:09:08

    Ancora più rapido :)
     
    Sub consolida_valori()
    Dim cell As Range
    
        For Each cell In [A1:F10]
            cell = cell.Value2
        Next
    
    End Sub






  • di HarryBosch data: 18/01/2013 11:59:47

    Io però non l'ho capita!
    Lo so, sono un pò lento a volte, sopratutto sull'ora di pranzo... ^_^
    Mi faresti un esempio pratico?



  • di fragovic (utente non iscritto) data: 18/01/2013 13:10:05

    bene grazie mille, appena posso lo provo e ti faccio sapere!!!



  • di Vecchio Frac data: 18/01/2013 13:43:45

    @Harry
    fragovic in pratica vuole consolidare i dati nelle celle, come premendo F9 editando una cella con formula.
    Excel non espone un comando simile e quindi bisogna arrangiarsi :)
    Diciamo che nemmeno io capivo cosa significasse Value2, visto che Value non sembrava funzionare... ho provato e sembra proprio per questo scopo ^_^





  • di fragovic (utente non iscritto) data: 18/01/2013 13:44:59

    Ho provato la macro che mi hai scritto ma non succede nulla....



  • di Vecchio Frac data: 18/01/2013 14:23:57

    Ti sembra che non succeda niente perchè i dati vengono lasciati stare: ma le formule sono state tradotte nel risultato corrispondente. Seleziona una cella che prima conteneva una formula... la formula è sparita :)





  • di fragovic (utente non iscritto) data: 18/01/2013 17:32:43

    Scusatemi se mi sono spiegato male, allora:

    ho creato file di importazione manuale dei dati dal sito UNOGOAL.com; ho creato un tasto Canc per cancellare i dati importati con copia e incolla con l'intenzione di pulire lo schermo dai dati precedentemente importati al fine di non sovrapporre 2 cose distinte e cioè: supponiamo che non abbia creato il tasto canc, e che io abbia importato 5 righe, se la volta successiva magari dovrò importare 3 righe con copia e incolla cosa succede? sul file compaiono si le mie ultime 3 righe importate ma di seguito rimangono presenti le ultime 2 righe del file precedente... Quindi il tasto Cancella sarebbe per eliminare questa cosa, non solo estetica, ma anche di calcolo poichè influisce sulle formule e sulle medie che ho realizzato...

    Quindi ho creato una macro con il tasto cancella il quale riesce si a cancellare i dati precedentemente importati ma si crea questo problema:
    i risultati provenienti dalle formule si cancellano ma sembra che rimangano in memoria perche le volte successive che importo nuovi dati si sommano, si dividono o si sottraggono inspiegabilmente.. perció deduco che i valori delle formule non si siano cancellati definitivamente ma solo graficamente. è una cosa per me inspiegabile e quindi chiedo umilmente aiuto altrimenti non posso andare avanti.



  • di Vecchio Frac data: 18/01/2013 18:31:12

    o.O
    Allega il file.





  • di fragovic (utente non iscritto) data: 18/01/2013 19:06:04

    File allegato!



  • di Vecchio Frac data: 18/01/2013 20:38:16

    Non riesco a trovare nessuna macro associata ad alcun pulsante Cancella :(
    Comunque è improbabile che " i risultati provenienti dalle formule si cancellano ma sembra che rimangano in memoria ".





  • di HarryBosch data: 18/01/2013 20:42:23

    Non è che riporti i dati da una query web (che comunque qua manca) e il tutto si sovrascrive sopra le formule che hai sistemato?
    Perché anch'io non riesco a vedere l'inghippo: da un lato hai i dati e si potrebbero cancellare tranquillamente nel momento in cui si inseriscono i nuovi.

    Oppure, quando inserisci i nuovi, se sono di meno, ovviamente rimangono le righe dei precedenti; ma in questo caso si cancellano i dati vecchi prima di riportare i nuovi (con macro, query o quello che è)



  • di fragovic (utente non iscritto) data: 18/01/2013 20:55:46

    Scusate, la macro l'ho tolta perche non cancellava i dati " graficamente" ma in realta sembra che rimangano nelle formule.

    Comunque la macro era questa:

    Sub Cancella1()

    Application.ScreenUpdating = False

    Sheets("Foglio1").Select
    Range("C10:F101").Select
    Selection.ClearContents

    End Sub



  • di fragovic (utente non iscritto) data: 18/01/2013 20:56:46

    la query web non cè, ho scritto male scusate, i dati li importo manualmente dal sito



  • di HarryBosch data: 18/01/2013 21:35:34

    La macro cancella i dati, ma le formule rimangono..
    E non si vedono gli 0 e gli errori (che rimangono perché le formule non pescano nessun dato) per via della colorazione.
    Se vuoi lasciare la cella vuota, in caso di errore puoi sempre rimediare con un:
    =Se.errore(formula; "")
    oppure controllare prima ancora la cella dei dati:
    =Se(cella="";"";formula)

    Puoi scrivere le 3 istruzioni in un'unica, non è necessario selezionare i range; fai tutto con:
    Sheets("Foglio1").[C10:F101].ClearContents

    Cosa ti rimane nelle formule?