Condividi:        

[Excel] Copiare dati da elenco

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

[Excel] Copiare dati da elenco

Postdi Wolves85 » 25/01/12 23:33

Ciao a tutti, avrei bisogno di un aiuto per excel.

Io ho un elenco con dei dati... oltre 8.000 voci... i miei dati sono organizzati come:

voce 1 | dato a1 | dato a2 | dato a3 | dato a4
voce 2 | dato b1 | dato b2 | dato b3 | dato b4
voce 3 | dato c1 | dato c2 | dato c3 | dato c4
voce 4 | dato d1 | dato c2 | dato c3 | dato c4

e così via

mentre nello stesso file, su un'altro foglio avrei una tabella in cui richiamare i dati da questo elenco in base alla necessità.

l'altra tabella, quella che devo riempire è organizzata così:

bla | bla | bla | voce c | dato c1 | dato c2 | dato c3 | dato c4 | ecc
bla | bla | bla | voce i | dato i1 | dato i2 | dato i3 | dato i4 | ecc

quello di cui ho bisogno è che nel momento in cui io digito nella cella la voce che è nella prima colonna dell'elenco, mi riempia automaticamente le altre celle, di modo che io possa evitare di andare ogni volta a cercarla e ricopiare a mano le informazioni presenti. In tutte le celle

Come posso fare?

Inoltre, se io collego la colonna delle voci dell'elenco nella tabella che devo riempire, c'è un modo per ottenere l'inserimento assistito, nel senso che man mano che scrivo mi si presenta le possibili cose che volevo scrivere? (ad esempio voglio scrivere "cavallo" e quando arrivo a scrivere "cav" nella tendina mi segna solo "cavalletta-cavallo-cavallone", insomma le parole che iniziano con le lettere che digito?

Infine, se ricevo da altri degli aggiornamenti ad alcune voci dell'elenco di cui parlavo all'inizio (ad esempio mi arriva l'elenco con tutte le voci vuote ma magari le voci f, t e z aggiornate) è possibile fare un merge solo di quelle voci?

Grazie a tutti delle risposte, sono sicure che mi saprete dare aiuto ;)
Wolves85
Newbie
 
Post: 4
Iscritto il: 25/01/12 23:20

Sponsor
 

Re: [Excel] Copiare dati da elenco

Postdi Flash30005 » 26/01/12 04:47

Ciao Wolves85 benvenuto nel Forum

Ho presupposto che l'elenco voci siano sulla colonna A del foglio1 (da A2)
Da B a F ci siano i dati relativi
Quindi seleziona l'elenco da A2 a A10000 (o quante righe occorrono)
poi sul Menu Inserisci - > Nome - Definisci
Scrivi nel box in alto il nome "Voci" (senza virgolette)
Ora vai nel Foglio2
e nella colonna interessata (io ho usato la colonna C) in C2 fai una convalida elenco dal Menu Dati -> Convalida
su Consenti: seleziona la voce Elenco
e in Origine scrivi
Codice: Seleziona tutto
=Voci

premi Ok
Copia questa cella e incolla per n righe che ti occorrono

In D2 del foglio2 inserisci questa formula
Codice: Seleziona tutto
=SE(C2="";"";CERCA.VERT(C2;Foglio1!A$2:F$10000;2))

in E2
=SE(C2="";"";CERCA.VERT(C2;Foglio1!A$2:F$10000;3))
etc cambiando il valore Indice posto alla fine della formula stessa (come vedi c'è una volta 2 poi 3, metterai 4..5..6 nelle colonne successive
A questo punto
selezionando una voce in C2 o C3
otterrai le altre voci riportate sul foglio1
---
Per avere una digitazione facilitata come richiedi
devi inserire nel Vba del foglio2 (non modulo)
questo codice
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
CheckArea = "C2:C10000"
If Not Application.Intersect(ActiveCell, Range(CheckArea)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
        Application.ScreenUpdating = False
        Application.Calculation = xlManual
RArt = Target.Row
ArtV = Target.Value
    If ArtV <> 0 Then
        UR = Range("A" & Rows.Count).End(xlUp).Row
    For R = 1 To UR
        If ArtV = Mid(Range("A" & R).Value, 1, Len(ArtV)) Then
            Target.Value = Range("A" & R).Value
            GoTo esci
        End If
    Next R
esci:
End If
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub


Prova oppure scarica questo file

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Copiare dati da elenco

Postdi Wolves85 » 26/01/12 11:03

grazie infinite per il primo punto. Per quanto riguarda la compilazione automatica non riesco proprio a farla funzionare :oops:
Wolves85
Newbie
 
Post: 4
Iscritto il: 25/01/12 23:20

Re: [Excel] Copiare dati da elenco

Postdi Flash30005 » 26/01/12 14:51

Devi attivare le macro
sul Menu -> Strumenti -> Macro -> Protezione
inserisci l'opzione Bassa per non avere alcun tipo di messaggio (pericolosa per i neofiti)
o Media per confermare ogni volta se attivare le macro o no
chiudi excel e riapri il file

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Copiare dati da elenco

Postdi Wolves85 » 28/01/12 13:32

invece per unire due files che hanno lo stesso elenco di voci ma dati diversi, come faccio?
Wolves85
Newbie
 
Post: 4
Iscritto il: 25/01/12 23:20

Re: [Excel] Copiare dati da elenco

Postdi Flash30005 » 28/01/12 13:43

In che senso unire due file?
inoltre il percorso del file origine dati qual'è?
insomma spiega meglio l'esigenza

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Copiare dati da elenco

Postdi Wolves85 » 28/01/12 14:48

ti spiego, io ho un file con delle località (città, comuni, frazioni ecc ecc) estratto da un db. Ad ogni località sono collegati i dati relativi (provincia, regione, coordinate e altre info).

quello che sto facendo insieme ad altre persone è aggiungere e correggere i dati presenti in questo file excel che verrà alla fine inserito di nuovo nel db di partenza (lavorare direttamente sul db per una sola parte di esso e per una mole così enorme di dati è molto più lungo che farlo sui file xls estratti).

il file è strutturato con un id unico per ogni località nella prima colonna, il nome della località nella seconda colonna, gli altri dati nelle colonne successive. Più o meno come ho indicato nel primo post.

quello che devo fare io è aggiungere i dati che mano a mano mi arrivano dai miei collaboratori in un unico file excel. Devo fare tutti i confronti a mano o c'è un modo per unire insieme tutti i dati da un file ad un altro?

per esempio ho

Milano
Napoli
Roma

nel mio file ho i dati solo di Napoli, quando mi arrivano i dati di Milano, li devo copiare a mano o c'è un modo per far sì che excel mi inserisca direttamente i dati di Milano da un altro file?

I file che mi arrivano hanno tutti la stessa organizzazione delle colonne, ma solo il mio ha tutte le righe, quelli che mi arrivano hanno solo una parte delle righe del mio file
Wolves85
Newbie
 
Post: 4
Iscritto il: 25/01/12 23:20

Re: [Excel] Copiare dati da elenco

Postdi Flash30005 » 28/01/12 15:00

Non condiviso molto il discorso di usare excel per una mole di record così elevata visto che si ha già un db (o più db) strutturati

comunque è possibile importare automaticamente più file in un unico file creando un elenco file contenuti in una determinata cartella.
Troverai altri post su questo argomento e risolti con successo.
Macro che dovranno essere adattate alla tua esigenza e secondo la distribuzioni dei dati origine e destinazione.

Se risolvi da solo ok, altrimenti posta ancora inviando almeno due file con dati origine e un file destinazione
con esempi di importazione dati direttamente sul file

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Copiare dati da elenco

Postdi cosimail » 28/08/13 18:13

Buonasera

mi inserisco in questa discussione "datata" per chiedere a Flash30005
maggiori informazioni sull'inserimento della macro per la ricerca facilitata.
Nonostante abbia seguito i passaggi da te illustrati, non riesco in nessun modo ad attivarla.
Tra le altre cose: cosa vuol dire (non modulo)?
Grazie
cosimail
Newbie
 
Post: 4
Iscritto il: 28/08/13 18:08

Re: [Excel] Copiare dati da elenco

Postdi Anthony47 » 28/08/13 22:19

Ciao cosimail, benvenuto nel forum.
La macro di Flash e' una macro di Worksheet_Change; va messa quindi sul foglio di codice relativo al foglio cui l' evento Worksheet_Change si riferisce.
Per questo:
-tasto dx sul tab col nome del foglio
-scegli Visualizza codice
-ti si aprira' l' editor delle macro, nella posizione giusta dove devi inserire, nel frame di dx, il codice

La macro si attivera' in presenza di una modifica introdotta nel foglio, ma sviluppera' i suoi effetti solo se la modifica e' applicata all' interno dell' intervallo CheckArea = "C2:C10000".

Fai sapere se cosi' risolvi, altrimenti posta ancora spiegando quali sono i tuoi bisogni, cosa hai provato a fare, con che risultato. Meglio pero' se lo fai in una nuova discussione.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Copiare dati da elenco

Postdi cosimail » 29/08/13 08:56

Buongiorno Anthony47 e grazie per avermi risposto.

Anche io ho bisogno di un comando che mi permetta di fare una ricerca facilitata nel database ( man mano che inserisco le lettere compaiono i dati che contengono le lettere digitate).
Nonostante abbia seguito le tue istruzioni, purtroppo non sono riuscito at attivare questa comodissima funzione.
Ti allego gli screen shot, sperando che tu possa individuare l'errore (tieni presente che sono completamente a digiuno di VB, per cui posso aver sbagliato anche i passaggi più banali.
screen shot con il codice
http://www.flickr.com/photos/64429762@N03/9621457312/

Dopo aver inserito il codice mi dava il seguente messaggio di errore
http://www.flickr.com/photos/64429762@N03/9621451452/

ho provato a salvare con il formato .xlsm ma nulla è cambiato..... :roll:
Grazie per l'aiuto!
cosimail
Newbie
 
Post: 4
Iscritto il: 28/08/13 18:08

Re: [Excel] Copiare dati da elenco

Postdi Anthony47 » 29/08/13 21:44

Dopo aver inserito il codice mi dava il seguente messaggio di errore
http://www.flickr.com/photos/64429762@N03/9621451452/

ho provato a salvare con il formato .xlsm ma nulla è cambiato.....

Il messaggio dice che non puoi salvare la macro in un file con formato "xlsx".
Se anche salvando il file in formato "xlsm" ("Cartella di lavoro con attivazione macro") ti esce fuori lo stesso messaggio allora il tuo excel e' corrotto...
A meno che con quel "ma nulla e' cambiato" volessi in realta' dire un' altra cosa.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Copiare dati da elenco

Postdi cosimail » 30/08/13 08:19

Ciao Anthony47 e grazie per la tua assistenza.

Dopo aver modificato il formato del file non mi compariva più il messaggio di errore.
Tuttavia, il codice non funzionava ugualmente.
cosimail
Newbie
 
Post: 4
Iscritto il: 28/08/13 18:08

Re: [Excel] Copiare dati da elenco

Postdi Anthony47 » 30/08/13 17:50

Eh eh, lo sapevo...
E' ovvio che il codice che hai provato a usare non risolve il tuo bisogno; quindi direi di ripartire da quanto scrissi un paio di giorni fa:
Fai sapere se cosi' risolvi, altrimenti posta ancora spiegando quali sono i tuoi bisogni, cosa hai provato a fare, con che risultato. Meglio pero' se lo fai in una nuova discussione.

Aspettiamo quindi i dettaglio del problema che devi risolvere ("Meglio" pero' se lo fai in una nuova discussione).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Copiare dati da elenco

Postdi cosimail » 30/08/13 18:32

Ciao Anthony

sarò lieto di aprire una nuova discussione.

Tuttavia non credo di poter spiegare meglio il problema che cerco di risolvere: semplicemente,
ho cercato di seguire le istruzioni che diede Flash a suo tempo al ragazzo che ha iniziato la discussione,
tuttavia queste non sembrano funzionare. Per questo motivo ho chiesto aiuto sul forum
Se avessi potuto scaricare il file di esempio sarebbe tutto più facile, ma purtroppo non è più disponibile.
cosimail
Newbie
 
Post: 4
Iscritto il: 28/08/13 18:08

Re: [Excel] Copiare dati da elenco

Postdi Anthony47 » 30/08/13 19:19

Chiedere aiuto senza spiegare quale e' il problema da risolvere "potrebbe non dare risultati"...
Quindi devi provarci, senno' solo mago merlino sapra' a quale scopo hai provato a sfruttare quella macro, che fa una cosa ben specifica, evidentemente diversa da quello che serve a te.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Copiare dati da elenco

Postdi pippopippo18 » 02/10/14 11:17

Riprendo come spunto una discussione di FLASH30005
così da proseguire senza restare in attesa per 1 settimana, sperando di fare progressi.

Ho creato un file excel (allegato) che ha sul Foglio1 dalla colonna A1:A21 le voci che sono state DEFINITE col nome "Voci"
Sul Foglio2 alla cella C2 ho convalidato i dati "Voci" così da avere un elenco.
Successivamente, prendendo spunto da un post un po datato dell'utente FLASH30005 ho copiato questo codice nel MODULO del foglio.

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
CheckArea = "C2:C10000"
If Not Application.Intersect(ActiveCell, Range(CheckArea)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
        Application.ScreenUpdating = False
        Application.Calculation = xlManual
RArt = Target.Row
ArtV = Target.Value
    If ArtV <> 0 Then
        UR = Range("A" & Rows.Count).End(xlUp).Row
    For R = 1 To UR
        If ArtV = Mid(Range("A" & R).Value, 1, Len(ArtV)) Then
            Target.Value = Range("A" & R).Value
            GoTo esci
        End If
    Next R
esci:
End If
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub



e successivamente attivate le Macro.
Il codice viene eseguito ad ogni modifica delle celle C2:C10000 del Foglio2, ed effettivamente funziona, solo che funziona "a metà", vi spiego.

Io voglio che digitando una lettera, ad esempio C nella casella C2, vengano filtrati i risultati che contengano la lettera inserita così da facilitare la ricerca.
Il tutto avviene, ma avviene solo ed esclusivamente se inserisco il dato per intero, ad es. "Ciro","Antonio","Barbara", se inserisco solo "C","A","B", non mi filtra nessun risultato.

Insomma, va sistemato.

Chi mi sa dare una mano ?
allego il file di esempio

http://www.4shared.com/file/eNKKos5xce/TEST.html
pippopippo18
Newbie
 
Post: 3
Iscritto il: 01/10/14 17:58


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Copiare dati da elenco":


Chi c’è in linea

Visitano il forum: Nessuno e 33 ospiti