Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Eseguire macro su foglio excel avviandola da vb6

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Eseguire macro su foglio excel avviandola da vb6

Postdi piter123 » 18/04/09 17:49

Salve, ho un programmino in vb6 che legge dei dati da un foglio excel.
Sul foglio excel è registrata una macro.
Avrei bisogno dal programma in vb6 di lanciare la macro "calcola" sul foglio excel "dataprova.xls".
Ovviamente la macro "calcola" una volta lanciata andrà ad eseguire dei comandi all'interno del foglio "dataprova.xls".
Grazie mille

posto il codice con il quale il programma in vb6 apre e aggancia il foglio excel
Codice: Seleziona tutto
Option Explicit
Public AppExcel As EXCEL.Application
Public FileExcel As EXCEL.Workbook
Public FoglioExcel(3) As EXCEL.Worksheet
Public CTRL_NUOVA_ISTANZA As Boolean

Public Sub APRE_EXCEL()
    CTRL_NUOVA_ISTANZA = False
    On Error Resume Next 'Ignora errori
    Set AppExcel = GetObject(, "Excel.Application") 'Controlla se esiste gia' una copia di Excel in esecuzione
    If Err.Number <> 0 Then 'Se Excel non sta girando
            Set AppExcel = CreateObject("Excel.Application") 'esegui l'applicazione
            CTRL_NUOVA_ISTANZA = True
        End If
    Err.Clear   ' Cancella gli errori che possono essere accaduti.
    On Error GoTo 0 'Riprendi il normale controllo degli errori
    Set FileExcel = AppExcel.Workbooks.Open(PERCORSO_DDE & "DDE.xls")
    If VISUALIZZA_EXCEL = 1 Then
            EXCEL.Application.Application.Visible = True 'VISUALIZZA FILE EXCEL
            FileExcel.Application.Visible = True
        Else
            If CTRL_NUOVA_ISTANZA = False Then
                EXCEL.Application.Application.Visible = False 'NON VISUALIZZA FILE EXCEL
            End If
            FileExcel.Application.Visible = False
    End If
    Set FoglioExcel(0) = FileExcel.Worksheets(1)
    Set FoglioExcel(1) = FileExcel.Worksheets(2)
    Set FoglioExcel(2) = FileExcel.Worksheets(3)
    Set FoglioExcel(3) = FileExcel.Worksheets(4)
End Sub
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Sponsor
 

Re: Eseguire macro su foglio excel avviandola da vb6

Postdi maxmula » 18/04/09 22:24

Ciao Piter123,
Potresti provare a mettere la macro in esecuzione automatica all'apertura del foglio...

Per farlo, è sufficiente mettere una Call nell'evento Workbook_open, che trovi facendo doppio click sull'oggetto ThisWorkbook nella Gestione Progetti.

Esempio:
Codice: Seleziona tutto
Private Sub Workbook_Open()
    ActiveSheet.UnPROTECT
    ActiveSheet.Cells(1, 1).Select
   
    Call AUTO_AVVIA          'questa è la macro da lanciare all'apertura...
FINE:

End Sub


In questo modo, la macro viene eseguita non appena il foglio viene aperto.

Ciao,
MAx

PS. Evviva! Il mio QUATTROCENTESIMO POST sul mio forum preferito!!! :D :D :D :D (scusate x lo spam ma occasioni simili non capitano spesso :P )
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Eseguire macro su foglio excel avviandola da vb6

Postdi archimede » 19/04/09 09:06

Dovrebbe essere sufficiente:
Codice: Seleziona tutto
Set objxls = createobject("Excel.Application")
objxls.Run "nomefile.xls!nomemacro"
In alternativa prova a dare un'occhiata qui.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Eseguire macro su foglio excel avviandola da vb6

Postdi piter123 » 19/04/09 09:29

ringrazio entrambe, ma la soluzione di maxmula non è da me applicabile in quanto in realtà il foglio excel parte già aprendo la macro in workbook_open e poi viene rieseguita a tempo, ma poi chissa per quale motivo a causa dell'interfacciamento con prg di vb6 questa a volte si interrompe. (senza alcun dubbio sbaglio qualcosa io sulla programmazione).
La soluzione di archimede invece sembra la più fattibile ad occhio al caso mio (la proverò domani) , dovrebbe permettermi di verificare ogni tanto dal file di vb6 se sul foglio excel la macro viene eseguita altrimenti la faccio ripartire da comando di vb6.
Grazie ad entrambe per l'attenzioe e per i suggerimenti, vi farò sapere non appena provo
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Re: Eseguire macro su foglio excel avviandola da vb6

Postdi piter123 » 19/04/09 18:09

Funzia alla grande, mille grazie
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31


Torna a Programmazione


Topic correlati a "Eseguire macro su foglio excel avviandola da vb6":


Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti