PDA

Visualizza versione completa : File excel a tempo


web
19-09-2002, 19.32.24
C'è la possibilità di creare un file, in questo caso, su excel, che possa dopo un determinato periodo di tempo autoeliminarsi?
Ho la necessità di inviare dei files creati con execel ma che dopo un mese siano non più funzionanti o che si autoeliminano.
Se qualcuno ha qualche notizia in merito si faccia avanti.
Grazie per l'aiuto
web

LoryOne
20-09-2002, 12.50.58
La risposta è:
Si e No

1) Si perchè basta inserire nel file di Excel una macro che controlli il periodo di utilizzo

2) No perchè fino a quando il file di Excel rimane aperto, non è possibile eliminarlo.

Zane
20-09-2002, 13.32.05
Uhmm, seguo anch'io, interessa anche a me!

LoryOne
20-09-2002, 13.41.48
Ho pensato a questo:
Eliminare il file in fondo non è importante.

Basterebbe cancellare l'intero contenuto dei fogli di lavoro,salvare il file e chiuderlo...il tutto con una macro protetta da password.

web
21-09-2002, 09.06.33
Premesso che non sono mai stato attratto dall'eseguire o creare delle macro; a questo punto entrerei nello specifico problema che mi interessa:
Ho creato un listino prezzi su excel basato sulle classiche tabelle costituite da 5 colonne e 1000 righe e provvedo con frequenza mensile ad inviare questo listino per e-mail a determinate persone.
Il problema che ogni due o tre mesi i prezzi cambiano e le persone che hanno questo listino si ritrovano con delle quotazioni non più valide.
Dovrei creare una macro (come??) all'interno del file del listino che debba disattivare tale listino o addirittura lo cancelli del tutto.
Grazie ancora
web

LoryOne
21-09-2002, 11.56.05
Perdonami ma non ho capito dove stia il problema.:eek: :eek:

Se sei tu che mensilmente provvedi a spedire per e-mail a determinati tuoi clienti i listini con i prezzi aggiornati, vuol dire che i tuoi clienti dovranno cestinare quelli vecchi e far rferimento a quelli nuovi.:cool:

Se in futuro qualcuno si lamenterà sul prezzo che non concorda con quello attuale, sarà stata colpa sua a non aver preso in considerazione l'aggiornamento del listino.:)

Se mi spedisci il listino prezzi (lory@uno.it), posso aggiungere la macro che fa al caso tuo, personalizzandola il più possibile in base alle tue esigenze.

Spetta a te decidere se spedirmi il file oppure no.
Che cosa vendi di preciso ?
Chissa, potrei essere un tuo nuovo cliente!(Y) :) :rolleyes:

Montezuma
21-09-2002, 12.43.50
Con le macro si può fare tutto o quasi, ma se le disattivi in apertura non serve a niente.

In alternativa si può rozzamente fare in un altro modo tramite formule. I prezzi sono vincolati ad un SE: se la data odierna è maggiore della data limite prefissata, scrivi "prezzo obsoleto", altrimenti fai comparire prezzo. Proteggi il foglio ed elimini la visualizzazione delle formule e il gioco è fatto.

L'unica scociatura è che i prezzi dovrai scriverli all'interno di formule e non direttamente nelle celle (a meno che non scrivi una macro che di produce da sola le formule a partire dai dati presenti in un altro file excel ... ).

Allego esempio.

LoryOne
21-09-2002, 13.00.43
Montezuma ha ragione.

"Con le macro si può fare tutto o quasi, ma se le disattivi in apertura non serve a niente. "

Avevo tralasciato il punto di partenza.
Forse il modo di bypassare questa limitazione c'è ma al momento non la conosco (attendo lumi).

La soluzione proposta dall'amico Montezuma è eccellente.
C'è parecchio da lavorare però se la soluzione macro è da scartare, credo che alla fine sia questa l'unica soluzione.

:S :S

Zane
21-09-2002, 15.23.07
Grazie Montezuma, sembra la soluzione ideale! (Y)

web
22-09-2002, 10.12.47
Grazie a tutti per l'aiuto. Io purtroppo non sono molto esperto di macro.
Allego una parte del mio listino (vendiamo materiali per l'isolamento acustico e per l'edilizia)
Allora:
il presente listino è stato da me creato con questo file in data odierna 22.9.2002 e vorrei che il 31.10.2002 nella colonna dei prezzi di listino scomparisse o comunque che venga fuori qualche messaggio che dica che i prezzi non sono più validi ecc.....
Saluti
web

P.S. Ho creato un piccolo esempio di listino in formato excel ma non riesco ad allegarlo

web
22-09-2002, 10.24.31
Allego il file

Montezuma
22-09-2002, 18.10.16
Niente macro! Ti mando il tuo listino rielaborato, protetto e non protetto (password="delpiero")

Pre provare il funzionamento metti una data inferiore alla odierna in "Data di controllo".

Per proteggerlo fai così:

1 - nascondi le colonne G ed H che ti servono da controllo - le selezioni, tasto destro, nascondi;

2 - poi selezioni le celle dei prezzi (E2 - E24), tasto destro, formato celle, protezione, metti la spunta alle voci "nascosta" e "bloccata".

3 - strumenti - protezione - proteggi foglio - scegli una password.

In questo modo i prezzi li aggiorni direttamente della colonna nascosta H senza riscrivere le formule e col foglio protetto non è visibile nulla.

NB per sproteggere il foglio senza conoscere la password basta selezionare tutto e fare copia-incolla in un altro foglio, ma non credo che i tuoi clienti se ne freghino di crackarti il listino prezzi.!

Ciao

Antonio

web
22-09-2002, 18.44.54
Ti ringrazio tanto!
Se non ho capito male dopo aver nascosto le colonne G e H con psw dove ci sono le date, il 23/10/2002 dovrebbe comparire su ogni singola cella del prezzo di listino "prezzo obsoleto" perchè oltre il 22.10.2002 .Proverò domani mettendo la data del 23.09.2002.
grazie
web

bergalla
22-09-2002, 19.26.59
X Loryone e Montezuma:
Ho visto che ve la cavate abbastanza bene con macro e formule varie.
C'e' un manuale o un link dove io possa imparare a fare qualcosina con le macro e formule piu' complesse e trucchi vari?

Illuminatemi

Montezuma
22-09-2002, 23.01.37
Per Web:

per come è impostato il SE, "presso obsoleto" compare dopo il 31 ottobre, ovvero quando la data nella cella di controllo (data limite) è minore della data attuale che si aggiorna da sola di giorno in giorno!

Per Bergalla:

io ho dovuto imparare per forza di cose quando ho cominciato a lavorare 1 anno e mezzo fa (e chi avrebbe mai pensato che le fusoliere si fanno pure con excel! :eek: ) ... il visual basic serve per facilitare certe operazioni ... puoi imparare molto dalla guida in linea o registrando le macro e poi rileggendo il codice. Non sono un programmatore comunque ti consiglio:
"Visual Basic 6" - I portatili Mondadori
"Laboratorio di Visual Basic for Application" - Apogeo


PS domani nella sezione off-topics posto un foglio di calcolo per il controllo del campionanto alla cui costruzione ho partecipato pure io.

Ciao

Antonio

bergalla
23-09-2002, 09.15.09
Grazie Montezuma, Mi fai un fischio quando posti quel file.
smartbrain@libero.it

bergalla
23-09-2002, 11.48.02
X montezuma e Loryone:

ragazzi, ho dei problemi con l'area di stampa di file in Excel che contiene macro e formule.
Spegarlo qui sarebbe troppo lungo, forse e' meglio farvelo vedere.

Se mi fate avere un indirizzo email ve lo mando visto che sono 255kb.

Vi prego aiutatemi .

bergalla
23-09-2002, 12.18.36
oK ragazzi come non detto!!!!
Scusatemi tanto ma era solo un problema di Interruzioni di pagina.
Grazie comunque

Ciao

bergalla
24-09-2002, 19.49.39
Ragazzi, mi trovo di fronte a un piccolo problema.

Guardate qui:

**********************************
ActiveCell.FormulaR1C1 = ComboBox1.Column(0)
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = ComboBox1.Column(1)
ActiveCell.Offset(0, 2).Range("A1").Select
ActiveCell.FormulaR1C1 = ComboBox1.Column(2)
ActiveCell.Offset(0, 3).Range("A1").Select
ActiveCell.FormulaR1C1 = ComboBox1.Column(3)
ActiveCell.Offset(0, 4).Range("A1").Select
ActiveCell.FormulaR1C1 = ComboBox1.Column(4)
ActiveCell.Offset(0, 7).Range("A1").Select
ActiveCell.FormulaR1C1 = ComboBox1.Column(5)
ActiveCell.Offset(1, -15).Range("A1").Select
ComboBox1.Text = ""
*************************************

Perche' non va?

Ovviamente sara' difficile capire di cosa si tratta quindi se volete lo spedisco tramite email.

Grazie ragazzi

LoryOne
25-09-2002, 14.41.37
Cosa non va ?
Ti da errore di sintassi ?

Allega il file e dimmi cosa deve fare il programma che provo a risolvere.:)

bergalla
25-09-2002, 16.49.27
ti ringrazio per essere intervenuto, ma il file in questione e' di 700kb zippato e si tratta di materiale d'ufficio.
Se non credi opportuno darmi la tua email qui in pubblico, scrivi al mio indirizzo tilascio@libero.it e ti alleghero' il file altrimenti scrivi la tua email in questo 3D.
Grazie

LoryOne
25-09-2002, 18.57.29
Il mio indirizzo e-mail è Lory@uno.it
700 mb zippati son parecchi ed ho un modem analogico v90, aspetterò parecchio.

Dipende da te spedirmi il file se vuoi, magari solo una sua parte visto che è materiale d'ufficio. (magari solo quella che ti da problemi)

La sintassi mi sembra corretta, altro non potrei dire...dipende da cosa deve fare il programma (tu capisci).

Di più non posso fare.:) :)

bergalla
25-09-2002, 21.30.50
oK, QUESTO E' PARTE DEL FILE, L'HO RESO MOLTO LEGGERO PER NON AVER PROBLEMI.
UNA VOLTA APERTO, LEGGETE I COMMENTI E CAPIRETE IL PROBLEMA.
*************************************************




PS

E' POSSIBILE CREARE UN QUALCOSA CHE OGNI VOLTA CHE SI CHIUDE UN "XXX" FILE DI EXCEL ED UNO O PIU' FOGLI NON SONO STATI PROTETTI MI VENGA FUORI UN MESSAGGIO DI AVVISO?
In breve:
Chiudo un file e un foglio non e'stato protetto, mi viene fuori un messaggio del tipo: "ATTENZIONE UNO O + FILE NON SONO STAI PROTETTI, CHIUDERE COMUNQUE?"
Qualcosa del genere insomma.

Thanx

LoryOne
26-09-2002, 21.21.18
Ok, dopo circa 10 minuti di maledizioni a danno di Excel
ecco la

1° SOLUZIONE (Drastica !!!)
--------------------------------------------------------
Inserire nelle dichiarazioni:
Dim X() As Variant

in ComboBox2_Click() cancellare tutto ed inserire:

ReDim x(0 To ComboBox2.ColumnCount) As Variant
Dim Ty As Long

For Ty = 0 To UBound(x)
x(Ty) = ComboBox2.Column(Ty)
Next

Range("D9").Select
ActiveCell.Value = x(0)
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = x(1)
ActiveCell.Offset(0, 2).Select
ActiveCell.Value = x(2)
ActiveCell.Offset(0, 3).Select
ActiveCell.Value = x(3)
ActiveCell.Offset(0, 4).Select
ActiveCell.Value = x(4)
ActiveCell.Offset(0, 7).Select
ActiveCell.Value = x(5)

... e via di seguito
-------------------------------------------------------

Dopo circa 1 minuto di ricerche sulle proprietà dei fogli
ecco la

2° SOLUZIONE (Ok !)
-------------------------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Ty As Long
Dim Yt As Long

With Sheets
For Ty = 1 To .Count
.Item(Ty).Select
If ActiveSheet.ProtectContents = False Then
MsgBox "Il foglio " & ActiveSheet.Name & " non è protetto "
Cancel = True
Exit For
End If
Next
End With
End Sub
-------------------------------------------------------

Ps: Son quasi diventato scemo a capire perchè non funzionava.
Poi mi son rotto ed ho dedotto che Excel è pieno di bachi
Per un analista è pane di tutti i giorni...purtroppo.

bergalla
27-09-2002, 15.33.00
Sei Grande!!!!

Ora provo un po' e poi ti faccio sapere