Lanciare macro in excel

lunedì 13 settembre 2010 - 09.43
Tag Elenco Tags  Windows XP  |  Office 2007  |  VBScript

bean_bandit Profilo | Newbie

Ciao, ho il seguente problema:

Una macro in excel 2007 che mi crea un bottone in un foglio di lavoro che a sua volta se premuto mi avvia una nuova macro.
Tutto bene se eseguo la macro sul mio pc, ma passando il file ad altri pc, la macro fa riferimento ad un percorso sul mio computer.

La macro è scritta nel seguente modo:

ActiveSheet.Buttons.Add(579.75, 83.75, 113.25, 36.75).Select
Selection.Characters.Text = "estrai disegni"
Selection.OnAction = "copia_disegni"

Come faccio a dirgli cerca copia disegni in un file esterno oppure a fargli scrivere la macro nel file in modo da portarsela dietro?

angelotv Profilo | Guru

Il problema non è nella macro che crea il bottone ma nell'altra (estrai_disegni) che non hai postato.
by Angelo

bean_bandit Profilo | Newbie

Ti copio la macro che estrae i disegni, pero il problema è che la macro non viene richiamata non che non funziona, lanciandola dal mio pc va benissimo, lanciandola da un'altro pc (quindi premendo il bottone) mi da un messaggio d'errore in cui mi viene detto che la macro non è presente e mi viene dato un indirizzo che punta nel mio computer....

Sub copia_disegni()
Dim file
Dim partenza As String
Dim arrivo As String
Dim dir_partenza As String
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Dim z
Dim a
Dim b
Dim c
Dim CODICE
Dim fs
Dim descrizione

z = 3
Set file = CreateObject("Scripting.FileSystemObject")
arrivo = Cells(1, 11)
dir_partenza = Cells(2, 11)
Msg = "VERRANNO COPIATI I DISEGNI " & Chr(13) & "DA:" & dir_partenza & Chr(13) & " A:" & arrivo & Chr(13) & "CONTINUARE?"
Style = vbYesNo + vbExclamation + vbApplicationModal 'DEfinisce i pulsanti.
Title = "ATTENZIONE" ' Definisce il titolo.
' Visualizza il messaggio.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' L'utente sceglie il pulsante Sì.
MyString = "Si" ' Esegue un'azione.
Else ' L'utente sceglie il pulsante No.
MyString = "No" ' Esegue un'azione.
End If
If MyString = "No" Then
GoTo 15
End If
If MyString = "Si" Then
a = 9
While Cells(a, 1) <> 0
Cells(a, 1).Select
If Cells(a, 10) <> "OK" Then
CODICE = Cells(a, 3)
descrizione = Cells(a, 4)
partenza = dir_partenza & CODICE & ".*"
arrivo = Cells(1, 11)

file = Dir(partenza)
If file <> "" Then
On Error GoTo 10
FileCopy dir_partenza & file, arrivo & file
Cells(a, 9) = ""

GoTo 10


Else:

Cells(a, 9) = "disegno non trovato"
End If
'End With
End If
10
a = a + 1
Wend

End If

15 Msg = "OPERAZIONE TERMINATA"
Style = vbOKOnly 'DEfinisce i pulsanti.
Response = MsgBox(Msg, Style)
End Sub

angelotv Profilo | Guru

Ma scusa, nel pc in cui non c'è la macro, questa c'è o non c'è? se non c'è la devi ovviamente inserire come hai inserito l'altra!
by Angelo

bean_bandit Profilo | Newbie

Ciao Angelo,

scusa se rispondo con una marea di ritardo.

So che devo inserirla anche nell'altro pc ma dato che viene utilizzata da piu pc in rete volevo o mettere la macro in rete da qualche parte e tutti i pc pescano da li oppure far scrivere direttamente la macro nel file in modo da "portarsela indietro"

angelotv Profilo | Guru

in genere quando scrivi una macro viene salvata col file excel.
by Angelo

bean_bandit Profilo | Newbie

No aspetta non hai capito il punto...

Ho scritto una macro che ho salvato in un file che chiamiamo "A" ed è salvato in rete

Ho creato un pulsante che richiama la macro "A"

La macro "A" crea dei pulsanti nel file "B" che viene utilizzato da piu pc.

I pulsanti su "B" puntano ad altre macro contenute in "A"

Quando li lancio da un'altro pc mi viene fuori un messaggio di errore in cui mi si dice che la macro non si trova (e mi dice di cercarla in una posizione locale del mio pc)

Non capisco perche e soprattutto non capisco che bisogno c'era di incasinare cosi office è_é
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5