|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
[Excel vba] problema comm32
in excel2007 vado in macro, metto il nome macro e poi crea, mi si apre il visual basic, vado in inserisci useform, mi appare la schermata a questo punto prendo dai controlli il mscomm l'icona del telefono e la porto nella useform, e mi appar eil messaggio di errore, il soggetto non è autorizzato a eseguire l'operazione specificata. perchè ?
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Strano, ho provato proprio ora con una UserForm di Excel 2003 senza alcun problema. Il controllo che ho usato è un "Microsoft Communication Control version 6.0", ossia :
C:\WINDOWS\system32\MSCOMM32.OCX Vedi di trovare l'esatto nome del componente che crea problemi... |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
proprio quello !
ho provato a fare un foglio nuovo di excel e poi creare la macro e ottengo lo stesso risultato non mi permette di usare il mscomm32 ho anche provato a registrarlo con regsvr32 c:\windows\system32\mscomm32.ocx mi dice che è registrato correttamente ma poi non funziona. non è che c'è una incompatibilità tra excel 2007 e visual basic 6 ? |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Mi sembra si possano escludere incompatibilità con le DLL installate dall'environment di VB6, se è ciò che intendi. Ho usato spesso DLL e OCX di VB6 in Excel senza problemi. Forse hai fatto di recente qualche bel Windows Live Update che può aver sballato o sovrascritto diverse DLL in giro per il sistema... Mi rimane questa, come ultima ipotesi. |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
maledetto visual basic !
è tutta la mattina che provo . adesso provo a installare tutto in un altro pc e vediamo come va... se uso visual basic direttamente tutto funziona, mentre se uso excel non va ! non vorrei che in excel 2007 non sia possibile usare mscomm nelle macro. è possibile fare in visual basic e poi importare la macro in excel ? cioè senza da excel passare in visual basic ? e in visual studio express edition sapete se è possibile farlo ? |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Codice gestito VB-Express non funzionerà MAI in Excel. MSCOMM32.OCX è un componente COM, non .NET, quindi suppongo che, quando dici che il componente non da problemi in VB, tu stia parlando di utilizzo di MSCOMM32.OCX in applicazione VB6. Se invece usi MSCOMM32.OCX in un'applicazione VB.NET si può sempre fare, ma poi non aspettarti di fare un semplice copia-incolla del codice VB.NET in una macro VBA ! Se hai a portata di mano un Excel 2003, prova. Forse la colpa è proprio di Excel 2007... |
|
![]() |
![]() |
![]() |
#7 | ||
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
Quote:
però come faccio da vb6 a importare la macro in excel cioè il codice e i form ? ![]() Quote:
e l'altro problema è che vb.net lo so usare ancora meno di vb6 ! ![]() ![]() ![]() ![]() ![]() ![]() |
||
![]() |
![]() |
![]() |
#8 | ||
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
- Non puoi importare in VBA una Form VB6 - Puoi importare in VB6 una UserForm VBA In pratica devi ricostruirti la/le Form VB6 replicandole in VBA, e poi fare copia/incolla del codice... Quote:
Trova un modo di provare prima con Excel 2003. Ho usato parecchie DLL e controlli OCX esterni in Excel 2003, ma non ricordo davvero di aver mai ricevuto un errore del tipo "il soggetto non è autorizzato a eseguire l'operazione specificata". Ultima modifica di MarcoGG : 19-02-2010 alle 17:53. |
||
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
problema risolto si deve installare il service pack e il fix della licenza per adesso funziona.
http://support.microsoft.com/kb/194751/it http://www.microsoft.com/downloads/d...displaylang=en |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
altro problema, se io ho il file di visual basic con il programmino che funziona, come faccio a passarlo nella macro di excel senza stare li a ricopiare tutto ?
c'è la possibilità di farlo. |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Non puoi importare i file sorgenti direttamente da VB6 a VBA. Per quanto riguarda il codice, un copia/incolla non mi sembra poi questo gran incubo... |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
Quote:
![]() ![]() ![]() Ultima modifica di Scalor : 21-02-2010 alle 09:39. |
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Se in VB6 hai fatto le cose come si deve, ossia hai cercato di astrarre il più possibile la logica dall'interfaccia grafica, creando Function e Sub riutilizzabili, il procedimento sarà abbastanza indolore. Se invece non l'hai fatto, beh, sarà tutto più difficile. |
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
Quote:
meglio che mi prepari una decina di litri di camomilla ! Ultima modifica di Scalor : 21-02-2010 alle 11:24. |
|
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
ma se io faccio un combobox, in visual basic faccio la lista delle opzioni
Quote:
![]() |
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
In VBA il Load() delle Form non c'è, in quanto non si tratta di Form "indipendenti" come in VB6. Le UserForm di Excel sono Dialog Forms dell'applicazione-Excel, e hanno chiaramente meno autonomia e flessibilità rispetto alle Forms di VB6. Solitamente si usa UserForm_Initialize() al posto del Load(). |
|
![]() |
![]() |
![]() |
#17 | ||
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2659
|
ok incomincio a capirci qualcosa,
e per mostarre in una textbox un valore proveniente dalla seriale alla pressioned i un pulsante ? Quote:
Quote:
|
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:32.