Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Recuperare dati da files di una cartella

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Recuperare dati da files di una cartella

Postdi ilcanarino » 14/01/09 17:14

Vi ringrazio a tutti anticipatamente per la partenza e scusatemi se non ho trovato un topic gia esauriente le mie necessità, arrivo al dunque:

in un file excel "personale" sul foglio1 "richiesta ferie" richiamo da un menu a tendina un ipotetico elenco di persone, in un altra cartella sono contenuti tanti file (ognuno rinominato come il cognome della persona) quante sono le persone che gestisco, ed ogni file identico all'altro per formattazione e posizione celle, contiene dei dati in determinate celle che devo recuperare a seconda della persona che richiamo tramite il menu a tendina del foglio "richiesta ferie" del file "personale".
riepilogando faccio l'esempio.
1. devo sapere quante ferie spettanti ha Erminio
2. richiamo dal menu Erminio e nella cella sottostante ho il numero di giorni spettanti ovvero il valore assegnato nella cella "x1" (cioè delle ferie spettanti) del file Eusebio della cartella contenente i nominativi.

come faccio a realizzare un foglio contenente questi "collegamenti"?

spero di essermi spiegato bene... scusate ma sono alle prime armi con excel... e ormai ho quasi perso le speranze :)

grazie a tutti!!!!
ilcanarino
Newbie
 
Post: 9
Iscritto il: 14/01/09 16:47

Sponsor
 

Re: Recuperare dati da files di una cartella

Postdi Anthony47 » 14/01/09 22:03

Ciao canarino e benvenuto nel forum.
Lo puoi fare con una macro.
Organizzi il tuo foglio in questo modo:
-in A2 hai la cella con i nominativi
-le celle a destra di A2 devono essere libere perche' verranno riempite con le formule necessarie
-in una cella libera, ad esempio I1, inserisci il path dove si trovano i tuoi file, compreso uno "\" finale
-in riga 1, col B metti nome foglio e cella da cui estrarre l' informazione, nel formato "Foglio1'!E1" (senza i doppi apici iniziali e finali, ma con l' apice intermedio - vedi NOTA)
-tasto dx sul tab col nome del foglio su cui lavori, scegli Visualizza codice; ti si apre l' editor delle macro, incolla questo codice nel frame di dx:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$2" Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1).Formula = "='" & [I1] & "[" & Target.Value & "]" & Cells(1, Target.Column + 1)   
'Target.Offset(0, 2).Formula = "='" & [I1] & "[" & Target.Value & "]" & Cells(1, Target.Column + 2)    '<<<< VEDI NOTA
Application.EnableEvents = True
End Sub


NOTA: l' istruzione marcata <<< e' disabilitata (tramite l' apostrofo in prima posizione); l' ho inserita per mostrare come mettendo piu' intestazioni in riga 1, alla destra di B1 e con lo stesso formato di B1, sia possibile estrarre piu' informazioni dal file che si selezionera'; vanno cioe' aggiunte altre istruzioni simili a quella marcata, con i "2 indici" che cambiano da 1 in 2, 3, etc. Inserire tante istruzioni quante sono le intestazioni da B1 verso dx.

Spero che sia tutto chiaro, se No siamo qua.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Recuperare dati da files di una cartella

Postdi ilcanarino » 15/01/09 10:40

Anthony non so come ringraziarti per l'attenzione prestatami,
in ogni caso c'è ancora qualche problemino. la tua macro funziona benissimo, ma non è esattamente quello che cercavo (ho un pò sudato perché non essendo pratico di macro, comandi e sintassi ho dovuto interpretare le azioni :oops: che hai indicato).
per semplificare la mia esigenza mi permetto di allegare qui una cartella excel contenente i file come test.
in sintesi:
- abbiamo un sistema intranet di rete
- la cartella "database" non deve essere vista dagli utenti, ma la gestisco solo io(quando viene assunta una nuova persona o una se ne va, creo il file o lo elimino),
- il file "richiesta ferie" lo metterò in una cartella di pubblico accesso ma gli utenti potrebberò copiare il file sul proprio pc per praticità(in ogni caso il file funziona ovviamente stando in rete perché preleva i dati dalla cartella "database")
- nel foglio1 del file "richiesta ferie" nella colonna R evidenziata in celeste mi si deve creare in automatico aggiornato dell' elenco dei file contenuti nella cartella "database" e per elenco dei file intendo il nome di ogni file senza percorso ne estensione (questo mi servirà perché nella cella A2 evidenziata in arancio richiamo dal menu a tendina appunto l'elenco dei nomi che si trova nella colonna R
- come vedi in ogni file nominativo, in celle ben precise e formattate con colori diversi, ho i valori delle varie ferie
- nel foglio1 del file "richiesta ferie" invece, dovrò richiamare nel menu a tendina es. tizio e nelle celle sottostanti (ma le celle le scelgo io dove visualizzare il dato relativo) devono comparire i valori delle ferie di tizio).
forse la cosa ottimale per eliminare ogni forma di errore sarebbe poter rinominare il file in automatico prelevando il nominativo da una cella ben precisa (il nome in questo caso è inserito nella cella grigia G1) ma questa funzione o macro che sia so bene che andrà creata nel file stesso (ovviamente creo un file "master" e ogni volta dal master creo il nominativo nuovo)
(ehm...ultima cosa... :oops: ma gli avvisi continui quando si apre il file che chiedono o meno di aggiornare per via dei collegamente esterni, non si possono togliere e farglieli fare in automatico...?)
questo è tutto :D ok sparami... :undecided:
in OGNI CASO grazie mille ancora anthony
Allegati

[L’estensione zip è stata disattivata e non puó essere visualizzata.]

ilcanarino
Newbie
 
Post: 9
Iscritto il: 14/01/09 16:47

Re: Recuperare dati da files di una cartella

Postdi Anthony47 » 15/01/09 16:17

Mi sembra che quanto ti ho proposto fa quello che avevi chiesto e quello che specifichi meglio nell' ultimo post; seguendo le istruzioni, e quindi:
-inserendo Foglio1'!B4, Foglio1'!D4, Foglio1'!F4, Foglio1'!B6, Foglio1'!D6 e Foglio1'!F6 in B1:G1
-inserendo il path in cui sono memorizzati i file di anagrafica
- inserendo altre tre istruzioni nel codice vba (2 le hai inserite, ma mancando il contenuto in B1:D1 sono inutili)
avresti potuto ottenere in B2:G2 le informazioni estratte dal foglio corrispondente al nominativo impostato in A2.

Se non e' in B2:G2 che vuoi ottenere le informazioni, allora modifica i parametri nell' istruzione
Target.Offset(0, 1).Formula = "='" & [I1] & "[" & Target.Value & "]" & Cells(1, Target.Column + 1)
Basta considerare che:
-la parte "Offset(0, 1)" determina lo scostamento in righe (0) e colonne (1) rispetto alla cella che viene variata in cui verra' inserita la formula.
-la parte "Target.Column + 1" determina lo spostamento in colonne, sulla riga 1 e sempre rispetto alla cella che viene variata, da cui verra' prelevato l' indirizzo di origine del dato (es Foglio1'!B4 in B1).
-se vuoi inserire il nome non in A2 ma in altra cella, basta modificare If Target.Address <> "$A$2" Then Exit Sub, sostituendo $A$2 con l' indirizzo che scegli (sempre rispettando la sintassi con i $); ricorda che gli altri indirizzi (delle celle di formule, delle celle con le origini) sono tutti calcolati "rispetto" a questo indirizzo (vedi quanto detto appena sopra).

Se il problema e' che il file "richiestaferie.xls" deve essere eseguito su piu' pc che potrebbero aver mappato diversamente il drive di rete con i file personali, allora ti conviene usare in I1 la "definizione UNC", del tipo \\192.168.2.1\SharedFolder\Resource; il tuo amministratore di rete dovrebbe poterti aiutare a individuare la denominazione UNC corretta.

Prova e fai sapere dove arrivi.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Recuperare dati da files di una cartella

Postdi ilcanarino » 20/01/09 14:13

Allora Anthony,
finalmente fra tentativi empirici (togli qui e metti la :)) fatti perché non e dico non conosco nessuna forma di sintassi di Vsual Basic e quindi non riuscivo ad afferrare alcune tue istruzioni sono sostanzialmente riuscito nel mio intento.
mi manca come scrivevo nel post prima:

- di trovare la maniera con cui poter salvare come nuovo foglio, la modifica in una cella prestabilita in cui inserisco un nominativo nuovo (mi spiego, nel foglio master nella cella vuota D12 in inserisco il nome e cognome, dopodiché in automatico, magari appeno clicco in alto su "salva", il master mi viene salvato come nuovo foglio avente nome del file uguale al nome riportato nella cella D12).

il fatto di avere una situazione in cui elenco di personale che vado a selezionare per avere la sua situazione ferie, sia aggiornato ho sistemato con un copia e incolla speciale in cui incollo il collegamento ad un elenco che io gestisco.
ilcanarino
Newbie
 
Post: 9
Iscritto il: 14/01/09 16:47

Re: Recuperare dati da files di una cartella

Postdi Anthony47 » 21/01/09 00:49

Si, avevo glissato su due cose che dicevi:
forse la cosa ottimale per eliminare ogni forma di errore sarebbe poter rinominare il file in automatico prelevando il nominativo da una cella ben precisa (il nome in questo caso è inserito nella cella grigia G1) ma questa funzione o macro che sia so bene che andrà creata nel file stesso (ovviamente creo un file "master" e ogni volta dal master creo il nominativo nuovo)
Qui non sono certo di aver capito la richiesta; comunque se vuoi salvare il file dandogli come nome il valore contenuto nella cella G1 dovrebbe bastare una macro come questa:
Codice: Seleziona tutto
Sub SalvaNew()
ActiveWorkbook.SaveAs Filename:=Range("G1").value & "xls"
End Sub
Per lanciarla:
-da excel, Alt-F8, scegli Salvanew dall' elenco, premi Esegui.

(ehm...ultima cosa... :oops: ma gli avvisi continui quando si apre il file che chiedono o meno di aggiornare per via dei collegamente esterni, non si possono togliere e farglieli fare in automatico...?)
Menu /Modifica /Collegamenti; premi Prompt di avvio, spunti l' opzione che piu' ti piace tra quelle che ti propone; Ok, Chiudi.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Recuperare dati da files di una cartella

Postdi ilcanarino » 23/01/09 11:00

Allora per la macro spero oggi di trovare il tempo di provarla/adattarla,
ma lo sai che per quanto riguarda il discorso dei collegamenti, io l'avevo gia impostato il prompt di avvio, ed avevo scelto l'opzione aggiorna automaticamente e non avvisare, ma ogni volta mi chiede sempre e comunque se voglio aggiornare i dati e continuare...boh..
ilcanarino
Newbie
 
Post: 9
Iscritto il: 14/01/09 16:47

Re: Recuperare dati da files di una cartella

Postdi Anthony47 » 23/01/09 23:55

Per il problema dell' aggiornamento dei collegamenti all' apertura: puoi scrivere il messaggio preciso che ti compare e che cosa devi fare per continuare, magari si accende qualche lucina.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Recuperare dati da files di una cartella

Postdi ilcanarino » 26/01/09 10:24

ti posto direttamente la sequenza degli avvisi che mi compare sotto forma di file immagine,

io eseguo questa sequenza facendo
- aggiorna
- continua
- prompt avvio...
- non visualizzare l'avviso e aggiorna i collegamenti clicco ok

ma ogni volta come ti dicevo tocca sempre stare ad aggiornare
Allegati
sequenza avvisi.JPG
(117.35 KiB) Scaricato 50 volte
ilcanarino
Newbie
 
Post: 9
Iscritto il: 14/01/09 16:47

Re: Recuperare dati da files di una cartella

Postdi Anthony47 » 26/01/09 19:02

Humm... Si intravede sulla terza immagine un messaggio di "Errore: origine ???", che tipo di errore viene riportato?
Dovrebbe anche essere possibile disabilitare il promt via Menu /Strumenti /Opzioni, tab Modifica; togli la spunta a Richiesta di aggiornamento di collegamenti; Ok.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Recuperare dati da files di una cartella

Postdi ilcanarino » 27/01/09 08:10

ho eseguito quello che hai indicato, ho indagato nei fantomatici collegamenti che che il foglio di calcolo eseguiva.
il percorso di origine non era aggiornato perché un pò di tempo fa ho spostato in una cartella superiore il database!
ragazzi controllate sempre che i collegamenti che il foglio di calcolo esegue vadano a ripescare i dati di origine nel percorso reale!!!
anthony grazie ancora. proseguo con il lavoro. spero di rendermi utile ad altri per lavori simili.
ilcanarino
Newbie
 
Post: 9
Iscritto il: 14/01/09 16:47


Torna a Applicazioni Office Windows


Topic correlati a "Recuperare dati da files di una cartella":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti