Newsgroup: it.comp.lang.visual-basic
Titolo: help su vbproject e vbcomponents in VBA Excel





allora, come al solito ho da sottoporvi un bel 
quesito su VBA per Excel. speriamo che maurizio borrelli lo legga... sono 
praticamente nelle sue mani... ::))))))))))))))


è possibile, da una Function inserita in 
una cartella (Cartel1), richiamare una Sub che si trova in un'altra cartella 
aperta (Cartel2)? se scrivo ovviamente solo il nome della Sub, mi esce un 
errore, perche la Sub è utilizzabile solo da Cartel2.


le soluzioni possono essere 2


 


1) se la Sub in Cartel2 ha un tasto di scelta 
rapida, allora è sufficiente, da cartel1, usare il comando SendKeys su 
Cartel2 e tutto funziona perfettamente;


2) ma se la suddetta Sub non ce l'ha il tasto di 
scelta rapida, come si fa a richiamarla da Cartel1?


 


ancora una cosa importantissima. come è 
possibile, sempre da codice VBA, assegnare ad una Sub un tasto di scelta 
rapida?


 


grazie 1000 a tutti (e grazie 2000 a Maurizio... 
che ruffiano che sono, vero...?)


 


mario


(
kron...@yahoo.com
)


 


 



 ancora una cosa importantissima. come è possibile, sempre da codice VBA,
assegnare ad una Sub un tasto di scelta rapida?
Uff!... Ma non s'era appena detto "se lo sai fare in Excel..."? Usa il
registratore di macro!
Option Explicit
Sub Macro1( _
)
  Application.MacroOptions _
      Macro:="Cartel1.xls!Prova" _
    , Description:="Questa e` una macro di prova." _
    , ShortcutKey:="p"
End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 Ma fa schifo... ;-)))
perchè? sendkeys è la piu bella invenzione del secolo, dopo la coca-cola, la
nutella e i beatles... ::))))))))
per quanto riguarda la cosa mi diventa piu complicata perche, in breve, la
mia applicazione da Cartel1 avrebbe dovuto fare, in fase di esecuzione,
quanto segue:
1. aggiungere un modulo a Cartel2
2. aggiungere una sub nel suddetto modulo, scrivendo rigo per rigo con quel
metodo che ora non ricordo esattamente come si chiama, credo addfromstring o
qualcosa del genere
3. assegnare una shortcutkey alla sub or ora creata
4. richiamare la sub con SendKeys...
impresa ciclopica... ma ci ero riuscito, solo che poi ho trovato un metodo
piu semplice perche mi sono accorto che era inutile "scrivere" una sub
durante la fase dell'esecuzione... o meglio, puo essere utile inqualche
caso, ma non nel mio...
insomma, per ora sembra che funzioni, poi OVVIAMENTE quando qualcosa non
funzionerà mi farò vivo...
ps: come vedi avevo gia seguito il tuo consiglio, cioe registrare la macro
ecc ecc... e cmq quando saprai a cosa mi serve tutto questo, magari dirai
"tutto qui?? e mi hai rotto per questa cagata?????" ... ::)))))))))
mario

 ecc ecc... e cmq quando saprai a cosa mi serve tutto questo, magari dirai
"tutto qui?? e mi hai rotto per questa cagata?????" ... ::)))))))))
Oddio!... Sara` mica qualcosa che ha a che fare col calcio o col lotto?



no. hai presente quando in una cella scrivi "=somma(a:a)" o "=media(a:a)"?
se accidentalmente in a:a c'č un errore, allora tutta la funziona va a
putt.... giusto? bene, sto cercando di far sě che Excel tenga presenti solo
le celle che non contengono errori. e lo devi fare da una funzione, non da
una sub. e lo devo fare senza For... Next, perche senno si impallerebbe
quando l'intervallo č troppo grosso.
comunque, per la cronaca, ci sono appena riuscito, solo che c'č un problema
che credo non dipenda da me, ma da Excel che a volte fa cagare sul serio, e
cioe si ingrippa sul ricalcolo, e quindi bisogna calcolare la cella due
volte prima di ottenere il risultato giusto... oppure fare un un bel
CalculateFull, e tutto si risolve...
ciao
mario
(secondo te ho perso tempo? per ora l'ho fatto solo per la somma e per la
media, ma non dovrebbe essere difficile estenderlo un po' a tutte le
funzioni)

 (secondo te ho perso tempo? per ora l'ho fatto solo per la somma e per la
media, ma non dovrebbe essere difficile estenderlo un po' a tutte le
funzioni)
Ti diro`... se c'e` un errore c'e` anche qualcosa che l'ha causato... ed io
normalmente preferisco sapere che c'e` un errore piuttosto che vedere un
risultato "drogato". Oppure intercetto l'errore *prima*: o direttamente
nella formula che potrebbe causare l'errore o aggiungendo una colonna
correttiva.



quindi ho perso tempo... ?????????????????
ODDIOOOOOOO!!!!!!!1
sigh sigh
mario

> MarioH:

Se hai imparato qualcosa di nuovo di sicuro non hai perso tempo. Eppoi tutto
il tuo lavoro sicuramente ti sara` utile ogni volta che avrai bisogno di
fare, per esempio, delle validazioni batch.



delle validazioni batch?? ahhhhhhhh beh allora... contando che non so manco
cosa sono... ::)))))))))
che cosa sono..????????
mario

> MarioH:

Con il termine "validare" normalmente intendiamo una procedura che verifica
se un dato immesso e` *valido*, ossia coerente coi vincoli imposti dalle
specifiche di analisi (se rientra o meno in un determinato intervallo, se e`
numerico, se e` nullo, ecc).
Questa operazione possiamo compierla *interattivamente*, ovvero man mano che
i dati vengono immessi, come per esempio quando usiamo l'evento Validate di
un TextBox, oppure in un momento successivo al termine di una sessione di
immissione dati, senza interrompere il lavoro dell'operatore con messaggi di
errore ma producendo una lista errori a conclusione della procedura di
validazione. Questa seconda modalita`, non interattiva, e` detta appunto
"batch" (= infornata).


capito...