|
Rank: Member
Iscritto dal : 10/21/2002 Posts: 15
|
Mi trovo nella condizione di dover estrarre tanti file quante sono le righe di un elenco excel.Mi spiego meglio, ho un elenco di nominativi e mi servirebbe estrarre tanti file quante sono le righe che contengono i nominativi.Ad es. 17 cognomi in elenco e 17 files per ogni singolo cognome.C'è qualche soluzione?Un saluto
|
|
|
|
|
Rank: AiutAmico
Iscritto dal : 9/20/2004 Posts: 1,597
|
Direi che l'unica è utilizzare il VBA che è messo a disposizione da Excel, ma presuppone un po' di basi di programmazione. Inoltre manca un informazione: che tipo di files vuoi produrre? nuovi files excel? files di testo? Non ti basterebbe in alternativa creare tanti fogli di lavoro diversi quanti sono i nominativi nello stesso file? Oppure se hai a disposizione Access, puoi importare la tabella excel in access e costruire una scheda informativa per ogni nominativo Sono cosi avanti che quando guardo indietro vedo il futuro.
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
Spiega meglio che cosa intendi per estrarre? che devono solo aprirsi tutti i file con il nome rappresentato dalle singole righe? o generare tanti file per quanti nomi hai nelle righe? se ci chiarisci è più facile dare una mano. andrea Edited by - a10n11 on 10/19/2004 12:48:04
|
|
Rank: Member
Iscritto dal : 10/21/2002 Posts: 15
|
Sì devono aprirsi tanti file quanti sono i nominativi inseriti nelle righe, riportando i dati inseriti nelle varie celle riferite a quel nominativo. Che siano excel o word poco importa. Un saluto
|
|
Rank: AiutAmico
Iscritto dal : 9/20/2004 Posts: 1,597
|
1-Apri il file excel 2-Scegli Strumenti > Macro > Macro... 3-nella casella sotto nome macro: scrivi FilesDaCelle 4-Clicca su crea 5-ti si aprirà una finestra con: Sub FilesDaCelle() End Sub 6-Tra Sub FilesDaCelle() e End Sub incolla <b>esattamente</b> il codice compreso tra le due righe (senza le righe) 7-chiudi la finestra (tramite la x in alto) 8-Scegli di nuovo Strumenti > Macro > Macro... nel riquadro più grande troverai il nome della macro FilesDaCelle 9-Selezionala e clicca Opzioni... 10-Scegli un tasto di scelta rapida da usare assieme al control (p.es. "P") 11-chiudi la finestra macro e torna al documento excel seleziona i nomi che vuoi trasformare in files 12-schiaccia CTRL+P (o il tasto che hai scelto. ciao.
Percorso = InputBox("Specifica la cartella dove vuoi salvare i files. P.Es. C:\Documenti", "Immissione informazioni") For Each c In ActiveWindow.Selection.Cells NomeFile = c.Value z = Creafile(NomeFile, Percorso) Next pippo = MsgBox("Creazione effettuata!", vbExclamation, "Attenzione!") End Sub Function Creafile(Nome, Perc) If Nome = "" Then pippo = MsgBox("Non puoi usare una casella vuota come nome di un file", vbExclamation, "Attenzione!") Exit Function End If If IsDate(Nome) Then pippo = MsgBox("Non puoi usare una data come nome di un file", vbExclamation, "Attenzione!") Exit Function End If If IsNumeric(Nome) Then Nome = Trim(Str(Nome)) End If Set fs = CreateObject("Scripting.FileSystemObject") MyPath = Perc + "\" + Nome + ".txt" Set a = fs.CreateTextFile(MyPath, True) a.Close -------- Sono cosi avanti che quando guardo indietro vedo il futuro.
|
|
Rank: AiutAmico
Iscritto dal : 9/20/2004 Posts: 1,597
|
<BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> Sì devono aprirsi tanti file quanti sono i nominativi inseriti nelle righe, riportando i dati inseriti nelle varie celle riferite a quel nominativo. Che siano excel o word poco importa. Un saluto <hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote> P.S. ieri non avevo visto questa tua risposta. La macro che ti ho fatto io crea solo dei files vuoti. Se vuoi che contengano i dati, bisogna che mi fai un esempio dettagliato di come sono strutturati i dati (mandami per e-mail av250866-chiocciola-tin.it un file excel come esempio). Comunque ribadisco che per un lavoro di schede informative come quello che mi sembra hai intenzione di fare, è 1000 volte più comodo Access. Sono cosi avanti che quando guardo indietro vedo il futuro.
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
Sub Apri() For Each Cl In Range("a1:a20") Workbooks.Open Filename:="c:\windows\desktop\" & Cl & ".xls", ReadOnly:=False Next End Sub Supponendo che i file siano della directory Desktop che varierari secondo il tuo caso e che i dati relativi ai nomi dei files siano sulla colonna A da riga 1 a 20 (da personalizzare) andrea Edited by - a10n11 on 10/20/2004 23:10:43 Edited by - a10n11 on 10/20/2004 23:11:13
|
|
Rank: AiutAmico
Iscritto dal : 9/20/2004 Posts: 1,597
|
Non credo che funzioni...il problema è che l'istruzione Open funziona solo con files già esistenti, e poi anche se si aprissero sarebbero privi dei dati richiesti da Landogiu Sono cosi avanti che quando guardo indietro vedo il futuro.
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
non funziona di sicuro se la richiesta di Lando invece che aprire intenda generare un nuovo file. In quel caso è evidente che la routine non è quella che serve. Appena ho un attimo la modifico. Andrea
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
questo dovrebbe risolvere quanto richiesto. in parole povere, la routine utilizza le righe da A1 ad A20 come nome da assegnare ai file, mentre le celle di competenza da copiare nel nuovo file generato sono comprese in un range definito da un nome che è lo stesso che si trova nelle celle di colonna A Sub crea() Application.ScreenUpdating = False Sheets("foglio1").Select For Each cl In Range("a1:a20") Application.Goto Reference:=cl.Value Selection.Copy Workbooks.Add Range("a1").Select ActiveSheet.Paste Range("a1").Select Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\Desktop\" & cl, FileFormat _ :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _ False, CreateBackup:=False ActiveWorkbook.Close Range("a1").Select Next End Sub andrea
|
|
Rank: Member
Iscritto dal : 10/21/2002 Posts: 15
|
Ciao a10n11 la mcro non mi funziona credo perchè il file generato dovrebbe contenere almeno i dati inseriti nella celle tra a e aj della riga 1
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
Il concetto della macro è questo: Se nel foglio alla cella A1 è indicato il nome LANDO e i records di sua pertinenza sono rappresentati dalle celle A1:AJ1 dovrai atribuire il nome LANDO al range A1:Aj1 e di seguito per tutti i nomi presenti nella colonna A . spero di essere statao chiaro andrea
|
|
Rank: Member
Iscritto dal : 10/21/2002 Posts: 15
|
Ragzzi come avrete capito sono completamente a digiuno di macro. Volevo porvi un altro quesito, Come mai in un file salvato sul desktop la macro funziona e lo stesso file salvato in un'altra cartella non funziona. Praticamente mi vedo costretto a copiare i record dal secondo file al primo e la macro del file salvato sul desktop fa il suo dovere. Dove sbaglio?
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
che significa non funziona? che tipo di errore ti da. Controlla il percorso del file indicato nelle istruzioni macro. L'errore non può essere che li. saluti andrea
|
|
Rank: AiutAmico
Iscritto dal : 9/20/2004 Posts: 1,597
|
Se parli della macro che ti ho passato io, o di un'altra macro che hai costruito tu in un documento specifico, probabilmente non ti funziona perchè non è disponibile per quel documento. Mi spiego meglio: Una macro "appartiene" al documento in cui è salvata ed a tutti i documenti che discendono da esso. Per esempio, la mia macro è nata in "provafile.xls" quindi sarà disponibile in quel documento e in quelli che crei a partire da quello facendo "Salva con nome" oppure salvi il documento con la macto in formato .xlt ottenendo un modello che puoi utilizzare come base di partenza. Sono cosi avanti che quando guardo indietro vedo il futuro.
|
|
Rank: Member
Iscritto dal : 10/21/2002 Posts: 15
|
Il messaggio di errore mi dice che c'è un file con lo stesso nome già aperto. Cmq ora ho provato a chiamarlo in un altro modo e pare che funzioni. Facccio altre prove e Vi faccio sapere.Grazie davvero per l'aiuto che mi avete dato. Un saluto
|
|
Rank: Member
Iscritto dal : 10/26/2004 Posts: 15
|
saleve ragazzi..ho un problema con un pc windows 95..qualcuno potrebbe aiutarmi?
|
|
Rank: Member
Iscritto dal : 10/26/2004 Posts: 15
|
saleve ragazzi..ho un problema con un pc windows 95..qualcuno potrebbe aiutarmi?
|
|
Rank: Member
Iscritto dal : 10/26/2004 Posts: 15
|
saleve ragazzi..ho un problema con un pc windows 95..qualcuno potrebbe aiutarmi?
|
|
Guest |