Macro di azzeramento dati
Hai un problema con Excel? 
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?
Vuoi Approfondire?