Condividi:        

estrarre dati da un elenco se...

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

estrarre dati da un elenco se...

Postdi kanji78 » 20/06/08 20:33

salve, rieccomi...quesito:

A B C D E F
1 01/01/1990 15/10/1991 A1 € 25.000,00 (vuote) (cella di
2 01/01/1995 15/10/1995 A1 € 25.000,00 controllo)
3 01/01/1999 15/10/1999 A1 € 25.000,00
4 01/01/1989 15/10/1989 A2 € 25.000,00


ho questo foglietto, sono compensi (magari fossero veri!!) Vorrei sapere come estrarre i dati in questo modo:

Per ogni cella B dove l'anno è < al 1992 allora estrai la riga corrispondente in un altro foglio....

Ho cercato in giro e mi sto impazzendo con i cicli "For Each" ma soprattutto con la selezione della riga, vorrei estrarre le celle A:D e ok, ma c'è un modo da renderlo più automatico? cioè la funzione "Selection.End(xlDown).Select" trova la prima cella vuota, no? Io vorrei che facesse "estrai la riga fino a che non ne trovi una vuota" in questo caso la cella E

spero di essere stato chiaro....GRAZIE
kanji78
Utente Junior
 
Post: 16
Iscritto il: 12/06/08 21:53

Sponsor
 

Re: estrarre dati da un elenco se...

Postdi Anthony47 » 22/06/08 18:42

Guarda questa macro, dovrebbe fare quello ch ti serve
Codice: Seleziona tutto
Sub Kanji()
TDate = DateValue("01/01/1992")  '<< Data soglia
CColumn = "A1:F1"                '<< Colonne da copiare
TSheet = "Foglio2"               '<< Foglio di destinazione
For Each Cella In Range("A1", Cells(Range("a65536").End(xlUp).Row, 1))
If Cella.Value < TDate And Cella.Value <> "" Then
Cells(Cella.Row, 1).Range(CColumn).Copy Destination:=Sheets(TSheet).Range("A65536").End(xlUp).Offset(1, 0)
End If
Next Cella
End Sub

Personalizza le istruzioni marcate << (spero che il loro significato sia intuitivo...)

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

Re: estrarre dati da un elenco se...

Postdi kanji78 » 22/06/08 22:28

grazissime tanto

una domanda sola. è possibile specificare solo l'anno? ti spiego il casino...alcune date importate da un txt me le importa come "00/1970" (sono elenchi lunghissimi). Ora, o mi imparo a formattare i dati nelle celle, magari mettendo il formato "01/01/1970" oppure, come ho fatto io, mi sono estratto l'anno nella colonna A1...e qui nasce la domanda, si può chiedere di estrarre solo quelle inferiori all'anno?

graziiiiieeeee
kanji78
Utente Junior
 
Post: 16
Iscritto il: 12/06/08 21:53

Re: estrarre dati da un elenco se...

Postdi kanji78 » 22/06/08 23:05

ops....ho provato la macro, non mi fa nulla come mai? Le date le ho riformattate in formato ##/##/##, ho riadattato il campo Tdate (x provare) ma niente.

Ho messo le macro in un modulo e la lancio dal menù strumenti, macro.

Puoi consigliarmi?? Grazie....


Ps....ma un libro per iniziare a capire meglio i cicli delle macro e modificarli?? GRAZIE ANCORA
kanji78
Utente Junior
 
Post: 16
Iscritto il: 12/06/08 21:53

Re: estrarre dati da un elenco se...

Postdi Anthony47 » 23/06/08 00:48

Leggendo anche il post precedente comincio a dubitare che in col. A ci siano delle date...
Se formatti la colonna "numeri con 0 decimali", che cosa leggi?

Dici che hai riadattato TDate, ma che bisogno c' era di modificare? e come l' hai modificata?

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

Re: estrarre dati da un elenco se...

Postdi kanji78 » 25/06/08 16:47

ottengo un numero di 5 cifre esempio: 01/01/1987 diventa, 24473.
ho cambiato Tdate solo per prova, non per altro.
Ti chiedevo un consiglio sull'acquisto di un libro appunto perchè non ci capisco molto.

grazie
kanji78
Utente Junior
 
Post: 16
Iscritto il: 12/06/08 21:53

Re: estrarre dati da un elenco se...

Postdi Anthony47 » 25/06/08 22:51

Se tutte le celle diventano un numero come hai scritto, allora la macro dovrebbe funzionare regolarmente, indipendentemente dalla formattazione delle celle, che determin solo il modo in cui il dato viene visualizzato.
Anche se alcune celle fossero state importate erroneamente come testo, solo le celle testo sarebbero escluse dal lavoro di confronto.
Anche per quanto riguarda la richiesta di lavorare "solo sull' anno" tieni presente che se come TData metti 01/01/1992 allora automaticamente sara' l' anno la discriminante.

Dici che "lanciata la macro, non fa nulla", che ovviamente e' quasi come dire "non funziona": un po' poco per farci una diagnosi.
Per ora controllami solo che hai messo il codice in "Modulo1" del vba (e non in un modulo di codice di uno specifico foglio di lavoro); trovi sul frame Progetto (a sx) l' elenco dei "Fogli" e "Moduli" presenti, doppioclick sul nome del foglio o del modulo e ne leggi il contenuto; leggi il nome del modulo anche sulla testata della finestra del vba.
Se la macro e' su un modulo di uno specifico foglio, allora cancellala; poi fai Menu /Inserisci /Modulo, e incolli la macro nel frame di destra di questo Modulo.
Se cosi' non facciamo passi avanti allora faremo indagini mirate.

Per quanto riguarda letteratura di riferimento, quando puoi fai un giro in una libreria Feltrinelli o Mondadori, troverai certamente qualcosa di utile; ma non aspettarti libri miracolosi.

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

Re: estrarre dati da un elenco se...

Postdi kanji78 » 27/06/08 18:10

mi sembra stia in modulo1, non nel foglio1; comunque ora non ho il portatile, appena verifico ti faccio sapere.

Grazie x il consiglio del libro....che praticamente è inutile cercare! ^_^
kanji78
Utente Junior
 
Post: 16
Iscritto il: 12/06/08 21:53

Re: estrarre dati da un elenco se...

Postdi Anthony47 » 29/06/08 18:32

Grazie x il consiglio del libro....che praticamente è inutile cercare!
Se cerchi un libro dagli effetti miracolosi allora hai centrato il messaggio.

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

Re: estrarre dati da un elenco se...

Postdi kanji78 » 02/07/08 07:30

kanji78 ha scritto:eccomi tornato su un pc windows....ho provato la macro, n
salve, rieccomi...quesito:

ho questo foglietto, sono compensi (magari fossero veri!!) Vorrei sapere come estrarre i dati in questo modo:

Per ogni cella B dove l'anno è < al 1992 allora estrai la riga corrispondente in un altro foglio....

Ho cercato in giro e mi sto impazzendo con i cicli "For Each" ma soprattutto con la selezione della riga, vorrei estrarre le celle A:D e ok, ma c'è un modo da renderlo più automatico? cioè la funzione "Selection.End(xlDown).Select" trova la prima cella vuota, no? Io vorrei che facesse "estrai la riga fino a che non ne trovi una vuota" in questo caso la cella E

spero di essere stato chiaro....GRAZIE


dunque, la macro funziona, solamente che mi copia tutti i periodi nello stesso foglio dalla cella 1000 e qualcosa. Se volessi copiarlo nel foglio 3? come devo inserire il comando paste selection?
Grasssie
kanji78
Utente Junior
 
Post: 16
Iscritto il: 12/06/08 21:53

Re: estrarre dati da un elenco se...

Postdi Anthony47 » 03/07/08 12:59

La macro che ti diedi copia i dati su un "foglio target" che puoi impostare, vedi l' istruzione
Codice: Seleziona tutto
TSheet = "Foglio2"               '<< Foglio di destinazione
in coda ai dati gia' presenti.
Se copia sul foglio sbagliato e' perche' la definizione e' sbagliata, ma fortunatamente basta modificarla ...

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


Torna a Applicazioni Office Windows


Topic correlati a "estrarre dati da un elenco se...":


Chi c’è in linea

Visitano il forum: Marius44 e 40 ospiti