Bongiorno a tutto il gruppo.
Come da titolo, non riesco ad eseguire da VB6 una macro che invece funziona benissimo se lanciata direttamente da VBA.
Innanzitutto tengo a precisare che VB6 interagisce benissimo con il file excel.
Questo è il codice che uso all'apertura di VB6:
Private Sub Form_Activate()
Set xlCartella = GetObject("C:\Programmi\Contabilità\Operazioni.xls")
Set MyXL = GetObject(, "Excel.Application")
MyXL.Application.Visible = False
...
e questo è un esempio di codice di interazione VB6/EXCEL che funziona benissimo:
xlCartella.Sheets("Foglio2").Range("G1") = xlCartella.Sheets("Foglio2").Range("C1")
Questa è la macro di excel che funziona benissimo se lanciata direttamente da VBA:
Sub Ordina3()
Sheets("Foglio2").Range("BA1:BD10").Value = Sheets("Foglio2").Range("AW1:AZ10").Value
Dim ur
ur = Sheets("Foglio2").Range("BA" & Rows.Count).End(xlUp).Row
Sheets("Foglio2").Range("BA1:BD" & ur).Sort Key1:=Sheets("Foglio2").Range("BA1"), Order1:=xlAscending, Key2:=Sheets("Foglio2").Range( _
"BD1"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
End Sub
In rete ho trovato qualcosa che sembra dovrebbe funzionare, per cui ho scritto questo codice per attivare la macro "Ordina3" di excel direttamente da VB6:
Private Sub Command1_Click()
Set xlCartella = GetObject("C:\Programmi\Contabilità\Operazioni.xls")
Set MyXL = GetObject(, "Excel.Application")
MyXL.Application.Visible = False
Dim objxls
Set objxls = createobject("Excel.Application")
objxls.Run "xlCartella!Ordina3"
ma non funziona. Esce il seguente messaggio:
Errore di Run-Time 1004:
Impossibile trovare
C:\Users\pinco.pallino\Documents\xlCartella.xlsx.
Controllare l'ortografia del nome del file e verificare che la posizione del file sia corretta
Non riesco nemmeno a capire perchè nel messaggio di errore c'è un percorso diverso del file.
C'è un modo per correggere il codice del Command1?
Grazie