Condividi:        

[Excel] Inserire dati in un foglio richiamandoli da un altro

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] Inserire dati in un foglio richiamandoli da un altro

Postdi facciotto » 23/09/06 15:09

Ho visitato questo topic "creare lista con form" (di omaromar) ed ho cercato di applicarlo al mio caso, ma forse la soluzione offerta da Taurex inverte il significato dei due fogli nell'esempio? A me non funziona! :cry:
In pratica io ho un foglio che funge da database con centinaia di nomi di alunni.
Sul foglio accanto vado creandomi giorno per giorno i partecipanti ad un certo corso e non voglio scrivere i nomi di chi si iscrive di volta in volta, ma voglio richiamarli - al momento del bisogno - dal database vicino.
facciotto
Utente Junior
 
Post: 80
Iscritto il: 13/02/06 14:55
Località: VERONA

Sponsor
 

Postdi Alexsandra » 24/09/06 09:36

Intanto "Complimenti per il titolo" proprio come piace a mè la E di excel maiuscola, racchiuso entro i tag lo spazio e la 1° lettera del titolo maiuscola.

Titolo molto descrittivo del problema e anche l'esposizione dello stesso nel post, cosa ovvia vista la tua località di provenienza :lol:

Torniamo al problema, come li vuoi estrarre i nomi? ci sono diverse possibilità.
1) Tramite un codice? se ne hai tanti di alunni ricordare i codici è un'impresa
2) Tramite le iniziali? potresti però estrarre nomi che non ti interessano
3) Digitando il cognome?

Io ti proporrei un listbox che alla sua attivazione si popola con i nomi di tutti i tuoi alunni, e per scegliere l'alunno e copiarlo nell'altro foglio devi solo selezionare col mouse l'alunno e cliccare su un tasto, oppure fare doppio clik sul nome dello stesso.
Io preferisco questa ultima soluzione, la vedo molto più comoda e rapida, bisogna usare VBA ti posso buttar giù un esempio e se non sei molto pratico di VBA mi devi dare il nome del foglio dove tieni l'archivio e il nome del foglio dove vuoi ricevere i dati.
Dò per scontato che nella 1° riga del foglio archivio tieni le intestazioni delle colonne (Nome, Cognome, classe etc....) e nel foglio destinazione idem.

Attendo tuoi chiarimenti.

PS. soddisfa la mia curiosità : di che zona sei di Verona? (in pvt magari)

ciao
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi facciotto » 24/09/06 11:06

Mi hanno fatto piacere i complimenti: per me è normale creare un post fatto benino. Lo leggo e lo rileggo, facendo molte anteprima prima di inviarlo. In e-mail a parte ti invio altre notizie.

Per ora invio un file di esempio:
http://rapidshare.de/files/34248496/ese ... o.xls.html

L'idea era proprio quella di un listbox :!: Evitami il VBA, per favore, non sono ancora pronta, non è nelle mie corde, vado via di testa. :eeh:
Credo si possa realizzare anche con CERCAVERT, ma tu credi che ci sia riuscita? No. :cry:

Grazie, come sempre, dell'eventuale aiuto.
facciotto
Utente Junior
 
Post: 80
Iscritto il: 13/02/06 14:55
Località: VERONA

Postdi Alexsandra » 24/09/06 14:22

Purtroppo non ti posso evitare il VBA, comunque te lo metto giù in maniera molto semplice, poi lo vediamo assieme, non ti preoccupare, dopo diventa un automatismo come tanti altri
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Anthony47 » 24/09/06 17:03

Ciao facciotto,
anche guardando l’ esempio_database_facciotto i termini del problema non sono a me chiari.
Hai un lungo elenco di nomi e cognomi e altre cose, e vorresti copiare questi nomi in un registro di corso? Per ogni corso hai un “FoglioCORSO” (ipotesi 1), o pensi di elencare sullo stesso foglio ma in colonne diverse?
Nell’ ipotesi 1, allora ti propongo il seguente approccio:
Sei sul foglio del corso xyz, vuoi inserire nomi all’ elenco attuale (che puo’ essere anche vuoto). Fai doppio-click su una cella, che ti porta sul foglio del database; fai doppio-click sul nome che vuoi aggiungere, e questo nome con un tot di colonne adiacenti sono copiate sul tuo fogliocorso, in coda all’ elenco esistente.
In questo modo, scegliendo i nomi direttamente dall’ elenco, risolvi anche ad esempio i casi di omonimia: quanti fasol antonio avrai sul tuo db?
Se il metodo ti va bene, allora usa il seguente codice vba (ilvba non te lo risparmia nessuno..):
Codice: Seleziona tutto
Dim strWs

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
'strWs = ActiveSheet.Name
FoDB = "database"       '<<< CAMBIARE SE SERVE
ColDati = "A1:B1"       '<<< CAMBIARE SE SERVE

If ActiveSheet.Name <> FoDB Then
strWs = ActiveSheet.Name
Sheets(FoDB).Select
GoTo usci
End If
RiCorr = ActiveCell.Row
Cells(RiCorr, 1).Range(ColDati).Select
'MsgBox ("ohiohi")
Selection.Copy

Sheets(strWs).Select
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False

usci:
Cancel = True
End Sub


Istruzioni:
apri il tuo foglio; premi ALT-F11, che ti apre il vba editor; fai doppioclick sulla scritta ThisWorkbook che trovi a sx, sotto i nomi dei fogli del tuo file; copia il codice e incollalo nel frame di dx, che dovrebbe essere totalmente bianco.
Modifica se serve la variabile di ColDati, che definisce quali colonne sono portate dal database nel foglio corso (come e’ impostato, copia le colonne A e B; se vuoi copiare le colonne C,D,E scriverai “C1:E1”) e il nome del foglio database (variabile FoDB).

Uso:
vai sul foglio del corso; se vuoi aggiungere un nominativo fai doppioclick da qualche parte, cosi’ ti porta sul foglio db; fai doppioclick sulla riga che contiene il tuo nominativo; voila’, le informazioni sono aggiunte sul tuo foglio corso.

Questo metodo e’ derivato da quanto suggerito a omaromar nel post a cui hai fatto riferimento.

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

Postdi facciotto » 24/09/06 19:25

C'è qualcosa che non va.
Eseguo tutto secondo le tue istruzioni:
vado sul foglio del corso XYZ e mi posiziono nella prima cella utile dove voglio che compaia il nome che andrò a scegliere dal database.
Faccio doppio click e mi si presenta la lista dei nomi del database.
Faccio doppio click sul nome di chi mi interessa e capita invece quanto segue: se scelgo il primo in A2 Mario, mi incolla invece i nomi di A3 A4 A5 ecc...; se scelgo il secondo in A3 Giulio mi incolla A4 A5 ecc... e così via. Praticamente mi incolla tutta la lista sottostante al nome che mi interessa, ma non il nome che voglio.
Però ammetto che sono stata molto contenta di usare VBA per la prima volta. Davvero interessante questo codice.
A presto.
facciotto
Utente Junior
 
Post: 80
Iscritto il: 13/02/06 14:55
Località: VERONA

Postdi Alexsandra » 24/09/06 20:10

Io non riesco a capire una cosa, o sei il Mago Zurlì e io non capisco una mazza, oppure non hai ben chiaro certi concetti.

1) L'utente ha espresso chiaramente che non è molto pratico di VBA
2) Doveva fornire altre indicazioni su come voleva o preferiva operare
3) Ti metti a postare una soluzione che oltre ad essere intrigante crea solo confusione
Per ogni corso hai un “FoglioCORSO”
chi te lo ha detto è una tua "Ipotesi"??
FoDB = "database" '<<< CAMBIARE SE SERVE
ColDati = "A1:B1" '<<< CAMBIARE SE SERVE
Come fà a cambiare? sei certo che è in grado di "cambiare" e se cambia cosa mette?

E' ora che cominci anche a pensare agli utenti specialmente a quelli poco pratici, tu vai per "Ipotesi" e dalla risposta che hai ottenuto dall'utente hai ricavato solo una gran confusione, creata facendo le tue "ipotesi" invece di attendere quello che ha bisogno l'utente

Il mio compito quì è quello di far crescere questa sezione, non con delle ipotesi, ma con dei fatti ben chiari e concreti voglio che l'utente parli ed esprima il suo bisogno, in maniera chiara ed esplicita o pensi che siamo riusciti ad avere 23.000 utenti andando per "Ipotesi"
Gli utenti, specialmente quelli appena iscritti sono il nostro patrimonio e in nessuna sezione si và per "Ipotesi" tanto meno quì .. chiaro?
se ho chiesto i nomi dei fogli un motivo ci sarà,forse è questo?
Evitami il VBA, per favore, non sono ancora pronta, non è nelle mie corde, vado via di testa
l'utente può avere ciò che desidera senza correre rischi (mi dà il nome dei fogli, per cui il tuo [<<< CAMBIARE SE SERVE], non serve) e dal suo esempio o dai suoi bisogni
gli verrà postato un file di esempio in cui deve solo copiare i nomi dei suoi alunni.

Problema finito.

PS. chiarimenti in primato, continuiamo con la discussione
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Alexsandra » 24/09/06 20:19

@ facciotto

Cominciamo da capo e per gradi

Abbiamo appurato che hai un foglio "database" in cui inserisci tutti i tuoi nominativi, il foglio corsoxyz stà a segnalare che ci possono essere vari fogli per vari tipi di corsi oppure è un nome di fantasia?

In sostanza a tè serve un foglio solo per estrarre dei nominativi o più fogli in cui estrarre sempre dei nomi per ogni tipo di corso?

In base alle tue risposte ti posso postare un foglio di esempio che potrai valutare se è inerente alle tue necessità, all'interno troverai del codice VBA, e non dovrai far altro che consentire l'esecuzione delle macro, se il tutto è di tuo gradimento dovrai solo copiare nel foglio "database" il nome degli alunni.

ciao
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi facciotto » 24/09/06 22:05

Ho creato un foglio che funge da banca dati con i nomi di tutti gli alunni della scuola e da cui intendo attingere di volta in volta. Nome foglio = DATABASE.
A fianco ho creato il foglio XYZ che è un nome di fantasia, ma che se vuoi allora chiamerò CORSi di RECUPERO. E' un foglio necessariamente vuoto perché siamo a inizio anno scolastico. Andrà mano a mano riempiendosi ed incrementandosi con i nomi dei partecipanti ogni volta che partirà un corso o di matematica o di inglese ecc..
Quindi - per rispondere alla tua domanda - ribadisco che il foglio da cui attingere è uno e uno solo. Pensandoci bene, invece, i fogli di destinazione potrebbero essere più di uno? Cioè: se volessi prevedere un foglio per ogni tipo di corso? Uno per Matematica, uno per inglese ecc...
No no no !!!! Intanto partiamo ipotizzando un unico foglio dei corsi che li raccolga tutti indistintamente: non voglio creare confusione. :-? :undecided: :undecided:
Poi si vedrà.
facciotto
Utente Junior
 
Post: 80
Iscritto il: 13/02/06 14:55
Località: VERONA

Postdi Alexsandra » 25/09/06 08:35

Ti ho fatto questo esempio per farti vedere come potresti lavorare.
http://rapidshare.de/files/34360982/Dat ... i.xls.html

Si potrebbe evolvere il tutto in questa maniera:

1) Eseguire un ordinamento su Form (quella che vedi cliccando sul pulsante "Inserisci alunni") in base a varie scelte (es. decrescente o crescente sui nomi degli alunni, per classe, per corso)
Ti ritrovi così i dati ordinati nella form, se vuoi scegliere degli alunni della classe 2a hai tutti i nominativi in ordine nel box che ti compare (questo è un filtro)

2) Puoi scegliere sempre nella form il tipo di corso e copiare i dati in più fogli a seconda del corso

prova questo esempio e dopo dimmi tu cosa ti và più comodo, considera che puoi inserire anche un flag in cui tu metti solo la spunta sul corso e te lo scrive nella colonna "Corso"
es. se metti la spunta sul flag "Inglese" tutti gli alunni che inserisci rendono il corso di Inglese. In pratica Puoi fare quello che vuoi

I dati degli alunni che sposti nel foglio corso li devi stampare o solo visualizzare?
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Anthony47 » 25/09/06 10:16

Per facciotto:
hai per caso modificato l’ istruzione ColDati = "A1:B1" in qualcosa tipo ColDati = “A2:xx4” dove xx e’ la lettera delle colonne? Questo spiegherebbe cosa ti succede; se SI, allora correggi l’ istruzione come segue:
-se vuoi copiare, della riga selezionata, le colonne A e B, scrivi ColDati = "A1:B1"
-se vuoi copiare le colonne A,B e C, scrivi ColDati = "A1:C1"
-se vuoi copiare le colonne A,B,C e D, scrivi ColDati = "A1:D1"

Se invece non hai modificato altro nelle istruzioni, fammici pensare, ma nel frattempo sono sicuro che Alexsandra ti avra’ dato una soluzione mooolto piu’ facile da applicare e da usare. Ciao.

Per Alexsandra:
Io non riesco a capire una cosa, o sei il Mago Zurlì e io non capisco una mazza, oppure non hai ben chiaro certi concetti.
Non ho una chiara opinione in merito
1) L'utente ha espresso chiaramente che non è molto pratico di VBA
Il vba e’ indispensabile per risolvere il problema, lo hai detto anche tu.
Ti metti a postare una soluzione che oltre ad essere intrigante crea solo confusione
Confusione dove? il fatto che facciotto abbia deciso di provarla mi sembra una prova che tutto sommato era una soluzione presentabile e applicabile anche da un Utente dichiaratamente non pro-vba.
Per ogni corso hai un “FoglioCORSO” chi te lo ha detto è una tua "Ipotesi"??
Si, confermo, e’ una mia ipotesi: leggi appunto quanto scrivevo nel post:
Per ogni corso hai un “FoglioCORSO” (ipotesi 1), o pensi di elencare sullo stesso foglio ma in colonne diverse?
Nell’ ipotesi 1, allora ti propongo il seguente approccio: etc etc etc
Come fà a cambiare? sei certo che è in grado di "cambiare" e se cambia cosa mette?
Anche qui, leggi quanto scrivevo nel post:
come e’ impostato, copia le colonne A e B; se vuoi copiare le colonne C,D,E scriverai “C1:E1”
E' ora che cominci anche a pensare agli utenti specialmente a quelli poco pratici, tu vai per "Ipotesi" e dalla risposta che hai ottenuto dall'utente hai ricavato solo una gran confusione, creata facendo le tue "ipotesi" invece di attendere quello che ha bisogno l'utente
Ripeto: il fatto che facciotto abbia deciso di provarla mi sembra una prova che tutto sommato era una soluzione presentabile e applicabile anche da un Utente dichiaratamente non pro-vba, e che le istruzioni siano state abbastanza ampie. Questo per chi ha letto il mio messaggio con l' obiettivo di capirlo.
Il mio compito quì è quello di far crescere questa sezione, non con delle ipotesi, ma con dei fatti ben chiari e concreti voglio che l'utente parli ed esprima il suo bisogno, in maniera chiara ed esplicita o pensi che siamo riusciti ad avere 23.000 utenti andando per "Ipotesi"
Complimenti. Pensavo che un Moderatore avesse anche il compito di favorire il dialogo tra gli Utenti, ma mi pare che questo non sia un tuo obiettivo.

UN SALUTO A TUTTI I FREQUENTATORI DEL FORUM.

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

Postdi Anthony47 » 25/09/06 10:33

PS per Alexsandra:
PS. chiarimenti in primato, continuiamo con la discussione

E' gia' abbastanza chiaro, non c' e' bisogno di messaggi privati.

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

Postdi facciotto » 25/09/06 15:53

Per Anthony47:
in effetti sbagliavo io! Ho corretto ora con A1:B1 e tutto funziona.
Ti ringrazio moltissimo.

Anche la soluzione di Alexsandra è valida.
Ho effettivamente l'imbarazzo della scelta fra tutte e due.

Alexsandra: ho testato il tuo punto 1 ed è OK. Mi farebbe comodo anche quanto esponi nel punto 2 a dir la verità. Per l'uno e per l'altro caso quali sono gli ordini da dare?

I dati del foglio corso costituiscono la base di una stampa unione in Word in quanto alle famiglie va inviata un'informativa sull'avvio di 'sti benedetti corsi; ma anche rimanendo in Excel devo comunque ottenere delle stampe-elenco.

Grazie di cuore a tutti per la disponibilità. :)
facciotto
Utente Junior
 
Post: 80
Iscritto il: 13/02/06 14:55
Località: VERONA

Postdi Mago di Oz » 25/09/06 20:50

Anthony47 ha scritto: .............

Pensavo che un Moderatore avesse anche il compito di favorire il dialogo tra gli Utenti, ma mi pare che questo non sia un tuo obiettivo.

UN SALUTO A TUTTI I FREQUENTATORI DEL FORUM.

Anthony

Condivido pienamente.
Mago di Oz
Utente Senior
 
Post: 644
Iscritto il: 09/06/06 12:51

Postdi Alexsandra » 25/09/06 21:41

Mancavi solo tu, è diventato il raduno dei maghi questo topic, di solito razzoli in OT a polemizzare, meglio che ci ritorni.

interessanti i vari nick che usate forse sono un pò troppi, ahhh ma voi siete maghi :lol: :lol: :lol:
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Dylan666 » 26/09/06 02:26

Niente OT please.
Continuate a discutere SERENAMENTE unicamente del codice ;)
Avatar utente
Dylan666
Moderatore
 
Post: 39993
Iscritto il: 18/11/03 16:46

Postdi taurex » 26/09/06 13:37

Mago di Oz ha scritto:
Anthony47 ha scritto: .............

Pensavo che un Moderatore avesse anche il compito di favorire il dialogo tra gli Utenti, ma mi pare che questo non sia un tuo obiettivo.

UN SALUTO A TUTTI I FREQUENTATORI DEL FORUM.

Anthony

Condivido pienamente.


per quello che può valere anch'io
Moderatore di
Immagine
taurex
Utente Senior
 
Post: 145
Iscritto il: 09/08/06 09:34
Località: Asti

Postdi Alexsandra » 26/09/06 13:39

Ovvio siete la stessa persona
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi taurex » 26/09/06 13:48

Alexsandra ha scritto:Ovvio siete la stessa persona

scusa Alexsandra, hai fumato qualcosa di strano??????????

io sarei Mago di Oz ???
ma che stai a dire?
Moderatore di
Immagine
taurex
Utente Senior
 
Post: 145
Iscritto il: 09/08/06 09:34
Località: Asti

Postdi Alexsandra » 26/09/06 14:24

taurex ha scritto:
Alexsandra ha scritto:Ovvio siete la stessa persona

scusa Alexsandra, hai fumato qualcosa di strano??????????

io sarei Mago di Oz ???
ma che stai a dire?
no no.
dal tuo quote un pò più sotto al mago, è scritto in grassetto :lol:
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Inserire dati in un foglio richiamandoli da un altro":


Chi c’è in linea

Visitano il forum: Nessuno e 46 ospiti