Condividi:        

[Excel] Creare lista con form.

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] Creare lista con form.

Postdi OmarOmar » 31/08/06 12:17

Salve e complimenti per il vostro forum, vorrei sapere se è possibile creare una lista, sul foglio1, di dati provenienti da un database situato sul foglio2, utilizzando una form che prima dell'inserimento sulla lista mi cerchi i dati presenti sul database esempio per nome.

Ciao grazie
OmarOmar
Newbie
 
Post: 8
Iscritto il: 31/08/06 12:04

Sponsor
 

Postdi taurex » 31/08/06 12:26

Mettiamo che i dati su Foglio2 siano nella colonna A, da A1 a A5000

e i tuoi dati nel Foglio1 colonna A, da A2 a A50

Vai nel Foglio1.
Inserisci-->Nome-->Definisci
In: Nomi della cartella di lavoro
metti il nome che vuoi dare al tuo elenco
(es. mioElenco)
In: Riferito a
metti il riferimento ai tuoi dati
(nel nostro esmpio =Foglio1!$A$2:$A$50)
Click sul pulsante: Aggiungi

Vai nel Foglio2.
Evidenzia le celle da A1 a A5000
Dati-->Convalida
In: Consenti
seleziona: Elenco
In: Origine
scrivi: =mioElenco(o il nome che hai
dato all'elenco).
Ok.

se no devi usare codice vba
Moderatore di
Immagine
taurex
Utente Senior
 
Post: 145
Iscritto il: 09/08/06 09:34
Località: Asti

Postdi OmarOmar » 31/08/06 12:38

Grazie taurex per la tempestiva risposta, ma credo proprio che ci voglia qualche codice vba, anche perche la lista si trova su piu colonne e poi dovrei usare una form per cercarle prima di inserirle sul foglio 1.
OmarOmar
Newbie
 
Post: 8
Iscritto il: 31/08/06 12:04

Postdi Alexsandra » 31/08/06 17:11

Prova a guardare questo topic http://www.pc-facile.com/forum/viewtopic.php?t=49271 c'è anche il link per scaricare il file.
Guardalo e vedi come lo puoi adattare al tuo bisogno,poi parliamo delle eventuali modifiche che hai bisogno.

PS. Puoi sostituire i textbox con un list box mantenedo la parte superiore di ricerca e ordinamento.
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi OmarOmar » 31/08/06 19:15

Ho provato il file, c'è la possibilità, una volta trovato il nominativo, di creare una nuova lista su un'altro foglio?

es: sul foglio1 ho una lista di clienti dove vado a ricercare con un form(e il file che ho visto va benissimo), ma una vota trovato il cliente, cliccando su un pulsante, lo devo sistemare su un'altro foglio creando una nuova lista.
OmarOmar
Newbie
 
Post: 8
Iscritto il: 31/08/06 12:04

Postdi Alexsandra » 31/08/06 19:28

Trovato il cliente puoi copiare tutta la riga e incollarla in un altro foglio, aggiungi un pulsante alla form, e quando lanci la macro prima trovi la riga vuota nel 2° foglio e poi puoi copiare la riga relativa al cliente selezionato e incollarla nel 2° foglio.

PS. metti un campo hidden nella form e quando selezioni un cliente ci scrivi il n° di riga ,ti facilita la scrittura
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi OmarOmar » 31/08/06 20:32

Sto provando e riprovando, riesco solo a copiare una riga ma non le seccessive, come posso fare???
OmarOmar
Newbie
 
Post: 8
Iscritto il: 31/08/06 12:04

Postdi Alexsandra » 31/08/06 20:48

Dovresti spiegare megli quello che vuoi fare.
Se selezioni un cliente da un listbox e clicchi su copia ti viene copiato solo quel record,pertanto puoi agire solo così in "manuale" diciamo, se invece vuoi fare una cosa un pò diversa (ora mi invento io delle soluzioni) puoi ordinare i dati e copiare tutti i clienti che cominciano per A, oppure tutti i clienti che non hanno pagato, oppure ?????' quello che hai bisogno.

Prova ad esporre meglio quello che desideri fare che vediamo di trovare la soluzione adeguata

Ciao
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi OmarOmar » 31/08/06 21:02

Cerco di spiegarmi meglio con un esempio:

Ammettiamo di gestire una piscina dove voglio tenere la lista dei clienti presenti ogni giorno, quindi vado ad estrapolare i nomi dei clienti da un database (foglio1) e pian piano che i clienti vengono in piscina gli elenco in un'altra lista (foglio2) dove a fine giornata posso stampare per avere a disposizione la lista dei clienti presenti tale giorno.
OmarOmar
Newbie
 
Post: 8
Iscritto il: 31/08/06 12:04

Postdi taurex » 01/09/06 08:28

OmarOmar ha scritto:Cerco di spiegarmi meglio con un esempio:

Ammettiamo di gestire una piscina dove voglio tenere la lista dei clienti presenti ogni giorno, quindi vado ad estrapolare i nomi dei clienti da un database (foglio1) e pian piano che i clienti vengono in piscina gli elenco in un'altra lista (foglio2) dove a fine giornata posso stampare per avere a disposizione la lista dei clienti presenti tale giorno.


credo che il sistema che ti ho postato io vada benissimo per fare questo.
cos'ha che non ti funziona?
Moderatore di
Immagine
taurex
Utente Senior
 
Post: 145
Iscritto il: 09/08/06 09:34
Località: Asti

Postdi Anthony47 » 01/09/06 12:44

Ciao Omar,
E' difficile rispondere a frasi come "Sto provando e riprovando, riesco solo a copiare una riga ma non le seccessive, come posso fare???", se non dici che cosa stai provando e che cosa ti succede.
Comunque, se il metodo del "Covalida dati" proposto da Taurex non ti quadra, allora prova la seguente macro:

Codice: Seleziona tutto
Sub Presenze()
FoDB = "Foglio1"        '<<<
FoPre = "Foglio2"       '<<< CAMBIARE SE SERVE
ColDati = "A1:D1"       '<<<
RiCorr = ActiveCell.Row
Cells(RiCorr, 1).Range(ColDati).Select
Selection.Copy

Sheets(FoPre).Select
Range("A65356").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = Now
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False

End Sub


Nelle prime righe gli definisci quale e' il foglio del DB (ora e' Foglio1), quale quello dove vuoi mettere le presenze (ora e' Foglio2), quali colonne del foglio db vuoi copiare nel foglio Presenze. Cambiale come ti serve.

Come si usa:
vai sul foglio db, selezioni una cella sulla riga del nominativo che vuoi segnare come "presente", lanci la macro.
La macro copia le celle che hai definito dalla riga selezionata; passa sul foglio Presenze; trova la prima riga libera; in colonna A scrive Data e Ora; nelle colonne adiacenti copia le celle dal foglio db.
Puo' essere utile associare un tasto per il lancio facilitato della macro: sai come si fa?

Dimmi se puo' esserti utile.

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

Postdi OmarOmar » 01/09/06 15:06

Grazie Anthony, il codice che mi hai dato è utilissimo, ho fatto una piccola modifica collegandolo ad un pulsante sulla form
Codice: Seleziona tutto
Private Sub CommandButton10_Click()
FoDB = "Foglio1"        '<<<
FoPre = "Foglio2"       '<<< CAMBIARE SE SERVE
ColDati = "A1:E1"       '<<<
RiCorr = ActiveCell.Row
Cells(RiCorr, 1).Range(ColDati).Select
Selection.Copy

Sheets(FoPre).Select
Range("A65356").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = Now
ActiveSheet.Paste
Application.CutCopyMode = False


End Sub

Vi devo chiedere ancora un'aiuto, quando trovo il nominativo con la form e poi clicco sul pulsante creato, mi coppia il risultato sul foglio 2 tenendomi attivo quel foglio, e possibile invece ad ogni inserimento tenere attivo sempre il foglio1?.
OmarOmar
Newbie
 
Post: 8
Iscritto il: 31/08/06 12:04

Postdi taurex » 01/09/06 15:45

OmarOmar ha scritto:Vi devo chiedere ancora un'aiuto, quando trovo il nominativo con la form e poi clicco sul pulsante creato, mi coppia il risultato sul foglio 2 tenendomi attivo quel foglio, e possibile invece ad ogni inserimento tenere attivo sempre il foglio1?.

basta che alla fine del codice inserisci
Codice: Seleziona tutto
Sheets(FoDB).Select
Moderatore di
Immagine
taurex
Utente Senior
 
Post: 145
Iscritto il: 09/08/06 09:34
Località: Asti

Postdi OmarOmar » 01/09/06 15:50

Grazie tutto ok.
OmarOmar
Newbie
 
Post: 8
Iscritto il: 31/08/06 12:04

Postdi Anthony47 » 01/09/06 18:53

Ciao, ho visto che hai tolto il "timbro" di data/ora in colonna A del foglio Presenze; a questo punto tanto vale cancellare dal codice l' istruzione ActiveCell.Value = Now, ne guadagniamo in leggibilita' del codice.

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


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Creare lista con form.":


Chi c’è in linea

Visitano il forum: Nessuno e 88 ospiti