View Full Version : Macro e Codice VBA
Raffaele53
11-07-2010, 11:03
Colgo l'occazione di un post di Wjmat (in Excel) per aprire una discussione tra tutti i volenterosi e partecipanti che desiderano parlare di questo argomento. Desiderei che venisse descritto nei minimi particolari, i passaggi per come si possa risolvere la questione.
Naturalmente farò un up ogni volta che sparisce in seconda pagina.
Ps. Spero che emmedi non chiuda questo post, perchè l'argomento può essere utile in Word,Excel e altro
Raffaele53
11-07-2010, 14:44
Inizio io....,usando per l'occazione il registratore...
Visto che il files prova.xls contiene delle macro... e siccome mi fido delle persone che l'hanno spostato, apro Excel e in Strumenti/Macro/Protezioni spunto la casella Medio
Apro il files prova.xls, mi avverte che ci sono delle macro e clicco Attiva Macro (cosa da non fare se il files arriva da sconosciuti)
Adesso inizio a risolvere la faccenda.....
Innanzitutto il files in questione ha una Password che io non conosco. Pertanto copio il foglio S(10) in un nuovo files che salvo con nome Prova2.xls e li chiudo.
Adesso mi ritrovo sul foglio1 i dati dell'utente e sono pronto per fare una macro.
Strumenti/Macro/Registra nuova Macro, dandogli il nome ex PIPPO
(Significa che da questo istante Excel, memorizza tutti i passaggi che farò sul monitor, ....come detto devo importare altri dati)
A)Riapriamo il file Prova2.xls
B)Dal menu scegliamo DATI/IMPORTA dati esterni/Importa Dati troviamo e selezioniamo il files "da importare.xls"
(nelle varie opzioni scegliamo OK e in nuovo foglio)
C)Selezionare la colonna A e Inserisci/Colonna
D)Scrivere in A2 =SE(C2="n.d.";CONCATENA(B2;"Abweichung");CONCATENA(B2;C2))
E)Selezionare la cella e trascinarla in basso sino alla riga 533
F)Ritorniamo sul foglio1 e nella cella H9 scrivo =SE(VAL.NON.DISP(CERCA.VERT(CONCATENA($A9;H$8);Foglio5!$A$2:$F$553;4;FALSO));"";CERCA.VERT(CONCATENA($A9;H$8);Foglio5!$A$2:$F$553;4))
G)seleziono la cella e la trascino a destra per altre 3 celle
H)Seleziono le 4 celle e le trascino sino alla riga 26
I)lSeleziono l'area H9:O26, in Modifica/Copia e ancora in Modifica/Incolla/speciale/valori
L)Elimino il foglio creato con Importa Dati
A questo punto fermate la macro Strumenti/Macro/ferma registrazione.
Chiudo Excel e lo riapro (la macro, darebbe un'errore sulla ricerca e foglio da eliminare) per verificarla.......
PS. Naturalmente si sarebbe dovuto fare anche sugli altri fogli
PPS. Questo sistema può andare bene per tutti quei dati che saranno in futuro fissi/stabili. Infatti basta una riga in più o un foglio che bisogna subito modificare la macro
Adesso passo la palla per vedere come fatte a farlo tramite VBA
Io stò qui in silenzio ...e come codice vi sposto la macro
Raffaele53
11-07-2010, 15:51
Mio esempio http://myfreefilehosting.com/f/7c9f80221e_0.03MB
file prova da riempire https://docs.google.com/uc?export=download&id=0BxPoNvjTbF5bYmMxMGU4YzEtMjJkYy00ODc3LTljYzctMjJmMzQyMGM3NDcz
file da importare https://docs.google.com/uc?export=download&id=0BxPoNvjTbF5bNGZmYWMwYjgtZDczNi00ZDZhLWJiYzYtNTA2YzU0MzVjYjNh
Raffaele53
14-07-2010, 07:29
Non voglio fare un monologo......, voglio capire VBA e altri sistemi.
Mi interessa le procedure, non il risultato.
Raffaele53
22-07-2010, 14:39
Up....
Questa cosa mi stà facendo dannare, nel foglio da importare ho inserito nella colonna A un colonna con questa formula
=SE(C2="";"";SE(C2="N.D.";CONCATENA(B2&"Abweichung");CONCATENA(B2&C2)))
OK, adesso apro il foglio Prova.xls e metto in H9 (tutti fogli) questa formula
=SE(VAL.NON.DISP(CERCA.VERT(CONCATENA($A9;H$8);'da importare.xls'!$A$2:$F$999;1;FALSO));"";CERCA.VERT(CONCATENA($A9;H$8);'da importare.xls'!$A$2:$F$999;4))
Trascino a destra e in basso, noto che in alcuni fogli la fomula mi ritorna con 0,00 e nel chiudere il foglio VB mi dice intervallo non compreso.....!?!
Ho Excel 2003, vi risulta pure a Voi (opzioni foglio calcolo automatico)
Raffaele53
26-07-2010, 10:32
Wjmat, magari avrai gia risolto ma potresti controllare un errore.....
Apri il files Prova e modifica una qualsiasi cella H9 e salva.
Ti da un errore in VB?
Se risolvo questo e un'altro errore (magari sono collegati) potrei fare la macro sul files "da importare" in modo da non toccare "Prova"
Mi sai anche dire se i dati sono definitivi oppure un domani ne veranno aggiunti. Ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.