Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Esportare da un foglio i valori e copiarli su un foglio vuot

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

Esportare da un foglio i valori e copiarli su un foglio vuot

Postdi Gagi » 07/06/04 10:20

Mi serve ancora il vostro aiuto.

Su consiglio di Dylan
Sto incrociando le dita e ripeto questa formula magica: ezechiel2517

Ho un file Excel per la fatturazione in cui sono presenti 5 schede, In queste schede ho creato varie formule con riferimenti tra di loro. In queste schede ho un database clienti, un database articoli, due modelli per le fatture, e un foglio con un menu per la gestione delle schede.
Quando compilo e salvo una fattura, questa mi viene salvata sempre con le relative 5 schede con tutti i database annessi.
Di conseguenza ogni fattura che salvo mi crea u nfile di oltre 1 mb. Volume decisamente eccessivo per i pochi dati che una fattura deve contenere.

Ho quindi pensato di riversare tutti i valori delle formule del Foglio fattura su un foglio vergine, in modo tale da non avere i database articoli e clienti, che sono voluminosi e che mi gonfiano il fle inutilmente.
Ho quindi provato questa soluzione:

Private Sub CommandButton4_Click()
Unload Me
Set UserForm4 = Nothing

Dim fatt As String


'Riversamento Fattura
Range("C1:P86").Select
fatt = ActiveCell.Text


ChDir "C:\Documenti ditta"
Workbooks.Open Filename:= _
"C:\Documenti ditta\savfattL.xls"

Range("A1").Select
ActiveCell.Value = fatt

End Sub


Purtroppo questa soluzione non mi funziona.

Siete in grado di indicarmi un codice in VBA che mi permette di fare questo riversamento, in grado di estrapolarmi solo il valore della formula e non la formula, e immettermeli su un'altro foglio vergine?

Con la speranza di essermi spiegato bene e che mi abbiate capito, vi ringrazio in anticipo.
Gagi
Utente Junior
 
Post: 19
Iscritto il: 03/06/04 09:36
Località: Svizzera

Sponsor
 

Postdi ezechiel2517 » 07/06/04 11:52

Il metodo + semplice in assoluto e' sicuramente quello di copiare il foglio con la fattura in un nuovo file. Tieni in conto che in un file di excel puoi inserire al max 256 fogli, quindi non puoi "pretendere di fare un file con tutte le fatture! Ma dovrai trovare un metodo per organizzarle (se fate meno di 256 fatture al mese, la soluzione e' fare un file ogni mese ;) )

IL codice per copiare un foglio in un nuovo file e' il seguente
Codice: Seleziona tutto
Sheets("shtname").Select
Sheets("shtname").Copy

dove shtname e' il nome del foglio. In questo caso ti apre un nuovo file di excel all'interno con il foglio selezionato.
Se invece vuoi metterlo in un foglio esistente devi usare una variante
Codice: Seleziona tutto
Sheets("shtname").Select
Sheets("shtname").Copy Before:=Workbooks("filname.xls").Sheets(1)

Piccolo consiglio: fai un controllino sull'esistenza del file prima di aprirlo e controlla che non sia gia aperto, con poche righe ti eviti un sacco di possibili grattacapi ;)

Di seguito ti posto un esempietto che controlla se il file esiste e se e' aperto.

Codice: Seleziona tutto
If WorkbookOpen(filname) Then    '<== se il file e' aperto
        Windows(filname).Activate   '<==attiva la finestra del file
Else
        If Dir(filname) <> "" Then   '<== altrimenti cerca se il file esiste
            Workbooks.Open (filname)   '<== e lo apre
        Else   '<== se non e' aperto e non esiste lo crea
            Application.SheetsInNewWorkbook = 1
            Set NewWorkbook = Workbooks.Add
            ActiveSheet.Name = shtname
           '<==qui controlla che la directory in cui andra' salvato esiste altrimenti la crea
            dummy = Dir(where, vbDirectory)
            If Dir(where, vbDirectory) = "" Then MkDir where
            ' <==salva il file nella giusta directory
            ActiveWorkbook.SaveAs Filename:=filname
        End If
End If
ezechiel2517
Utente Senior
 
Post: 1598
Iscritto il: 05/04/02 20:21

Postdi Gagi » 07/06/04 14:28

Ho provato la tua soluzione inserendo il codice in questo modo:


Private Sub CommandButton4_Click()
Unload Me
Set UserForm4 = Nothing

Sheets("Fattura lunga moesa").Select '
Sheets("Foglio1").Copy Before:=Workbooks("savfattL.xls").Sheets(1)


"Fattura lunga moesa" : Questo é il nome del foglio dove creo la fattura
"Foglio1" : é l'unico foglio che ho lasciato nel file savfattL.xls dove dovrebbe copiarmi il tutto.

Ma il codice non funziona dandomi il seguente errore:

Errore di run-time '9':
Indice non incluso nell'intervallo

selezionandomi in seguito la seguente stringa:
Sheets("Foglio1").Copy Before:=Workbooks("savfattL.xls").Sheets(1)
Il file savfattL.xls esiste con relativo Foglio1 e non é aperto.

Inoltre ti volevo precisare che la mia intenzione é salvare ogni fattura in un signolo file e non tutte le fatture in un solo file.
Propio per evitare che nel file vi siano dati che nonriguardano la fattura emessa dal cliente. In seguito ho già pronto un codice che mi salvi il file con relativo nome cliente, data, e numero fattura.

A me serve solo sapere come fare a riversare i dati senza le formule da un file all'altro.

Sicuramente il tuo codice funziona perfetamente, é possibile che sono io a commettere delle iprecisioni, hai individuato dove sbaglio?

Grazie
Gagi
Utente Junior
 
Post: 19
Iscritto il: 03/06/04 09:36
Località: Svizzera

Postdi ezechiel2517 » 07/06/04 15:16

Gagi ha scritto:Ho provato la tua soluzione inserendo il codice in questo modo:


Private Sub CommandButton4_Click()
Unload Me
Set UserForm4 = Nothing

Sheets("Fattura lunga moesa").Select '
Sheets("Foglio1").Copy Before:=Workbooks("savfattL.xls").Sheets(1)


"Fattura lunga moesa" : Questo é il nome del foglio dove creo la fattura
"Foglio1" : é l'unico foglio che ho lasciato nel file savfattL.xls dove dovrebbe copiarmi il tutto.

Ma il codice non funziona dandomi il seguente errore:

Errore di run-time '9':
Indice non incluso nell'intervallo

selezionandomi in seguito la seguente stringa:
Sheets("Foglio1").Copy Before:=Workbooks("savfattL.xls").Sheets(1)


Sicuramente il tuo codice funziona perfetamente, é possibile che sono io a commettere delle iprecisioni, hai individuato dove sbaglio?
Grazie


Qui
Codice: Seleziona tutto
Sheets("shtname").Select
Sheets("shtname").Copy Before:=Workbooks("filname.xls").Sheets(1)

Stesso nome del foglio per entrambe le righe! ;)

Gagi ha scritto:Inoltre ti volevo precisare che la mia intenzione é salvare ogni fattura in un signolo file e non tutte le fatture in un solo file.
Propio per evitare che nel file vi siano dati che nonriguardano la fattura emessa dal cliente. In seguito ho già pronto un codice che mi salvi il file con relativo nome cliente, data, e numero fattura.


E allora perche' non hai usato il primo esempio di codice?? :eeh:

me ha scritto:IL codice per copiare un foglio in un nuovo file e' il seguente
Codice:
Codice: Seleziona tutto
Sheets("shtname").Select
Sheets("shtname").Copy

dove shtname e' il nome del foglio. In questo caso ti apre un nuovo file di excel all'interno con il foglio selezionato.



Gagi ha scritto:A me serve solo sapere come fare a riversare i dati senza le formule da un file all'altro.

Ok. quindi devi copiare solo i valori e non le formule o i riferimenti, quindi il metodo di copiare tutto il foglio .......non va bene :P .

seleziona l'area e copiala negli appunti

Codice: Seleziona tutto
Range("C1:P86").Select
Selection.Copy


crea un nuovo foglio

Codice: Seleziona tutto
Application.SheetsInNewWorkbook = 1
Set NewWorkbook = Workbooks.Add


Incolla i valori

Codice: Seleziona tutto
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _False, Transpose:=False



HTH ;)
ezechiel2517
Utente Senior
 
Post: 1598
Iscritto il: 05/04/02 20:21

Postdi Gagi » 07/06/04 16:19

Ok grazie, mi metto al lavoro.
Gagi
Utente Junior
 
Post: 19
Iscritto il: 03/06/04 09:36
Località: Svizzera

Postdi Gagi » 08/06/04 16:43

Ok tutto a posto grazie per l'aiuto.
Gagi
Utente Junior
 
Post: 19
Iscritto il: 03/06/04 09:36
Località: Svizzera


Torna a Software Windows


Topic correlati a "Esportare da un foglio i valori e copiarli su un foglio vuot":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti