PDA

View Full Version : [VBA] Macro excel


Hyperion
20-01-2010, 14:47
Salve,
avrei bisogno di un aiuto per creare una macro con excel che esegua determinate istruzioni su un foglio di calcolo così fatto:

colonna A:
X0001
X0004
X0004
X0004
X0008
...
X0500
(ovvero X seguito da numero intero di 4 cifre, non necessariamente progressivo, alcuni ripetuti più volte, altri assenti, con un totale di linee variabile -diciamo da 4000 a 15000 linee-)

colonna D:
una data nel formato gg/mm/aaaa hh:ss:mm

colonna J:
una stringa da inserire a seconda di quello che è presente i un secondo file excel, che per semplicità chiamo di riferimento.


File excel di riferimento:
file che si chiama a.xls, presente in c: , in cui è presente un listato composto da 4 colonne:

Colonna A:
X0001
X0002
...
X0500

colonna B:
una data nel formato gg/mm/aaaa hh:ss:mm

colonna C
una stringa di testo

colonna D
un'altra stringa di testo


La macro deve eseguire questo:
ad ogni Xnnnn deve mettere nella corrispondente colonna J la stringa di testo nella colonna C o D (a seconda di un confronto tra date: se la data del file di riferimento è maggiore di quella del file da elaborare, allora colonna C, altrimenti colonna D) corrispondente allo stesso Xnnnn del file di riferimento.

Faccio un esempio:

File di riferimento:
ColonnaA ColonnaB ColonnaC ColonnaD
X0001 15/10/2009 10:55:39 Ciao1 Ciao2
X0002 15/10/2009 10:53:36 Ciao3 Ciao4
X0003 15/10/2009 10:51:36 Ciao5 Ciao6
X0004 15/10/2009 10:55:32 Ciao7 Ciao8
..
X0008 15/10/2009 11:55:36 Ciccio Ciccia
...
X0500 15/10/2009 09:55:36 Giorno Notte

File iniziale elaborato:
ColonnaA ColonnaB ColonnaJ
X0001 15/10/2009 10:55:36 Ciao1
X0004 15/10/2009 10:55:30 Ciao7
X0004 15/10/2009 10:55:36 Ciao8
X0004 15/10/2009 10:55:36 Ciao8
X0008 15/10/2009 10:55:36 Ciccio
...
X0500 15/10/2009 10:55:36 Notte

Spero di essere stato sufficientemente chiaro in cosa vorrei ottenere; in caso contrario, fatemi sapere e cercherò di essere più preciso.
In ogni caso, grazie in anticipo. ;)

zuper
20-01-2010, 15:26
sorry nn ho molto tempo per sistemarla :)

prova sul tuo foglio nella colonnaJ qualcosa del genere

=+SE(CERCA.VERT(A16;A2:B9;2;FALSO)>B16;C2;D2)

cambia i riferimenti...se no zippa i 2 files e postali che stasera ci do un okkio :)

Hyperion
20-01-2010, 15:39
sorry nn ho molto tempo per sistemarla :)

prova sul tuo foglio nella colonnaJ qualcosa del genere

=+SE(CERCA.VERT(A16;A2:B9;2;FALSO)>B16;C2;D2)

cambia i riferimenti...se no zippa i 2 files e postali che stasera ci do un okkio :)

Purtroppo il file da elaborare cambia di volta in volta, quindi non è possibile fissare i riferimenti...

zuper
20-01-2010, 16:40
Purtroppo il file da elaborare cambia di volta in volta, quindi non è possibile fissare i riferimenti...

beh nn sono proprio statici :)
lui cercherà qualsiasi elemento del file da elaborare ;)