Discussione:
Richiamare una macro da un'altra macro saltando un a parte di codice
(troppo vecchio per rispondere)
CR
2004-10-15 10:58:44 UTC
Permalink
Buon di'
ho creato una macro che nasconde una serie di righe se il valore di una
data cella non soddisfa la condizione.
All'avvio questa macro chiede il file e il foglio su cui dovrà andare a
"lavorare".
Ora ho la necessita di richiamare la stessa macro da un'altra macro.
Siccome ho già aperto il file e il foglio su cui lavorare vorrei
evitarmi le due domande (che hanno di default altri nomi).
Come posso fare senza riscrivere la stessa macro in versione "senza
domanda"?
Grazie a tutti
Claudia
Mauro Gamberini
2004-10-15 13:42:45 UTC
Permalink
Post by CR
Ora ho la necessita di richiamare la stessa macro da un'altra macro.
Siccome ho già aperto il file e il foglio su cui lavorare vorrei
evitarmi le due domande (che hanno di default altri nomi).
Come posso fare senza riscrivere la stessa macro in versione "senza
domanda"?
Se stiamo parlando di cartelle diverse:

If ActiveWorkbook.Name = "Uno.xls" Then
Codice con Conferme
Else
Codice senza conferme
End If

Dove "Uno.xls" va sostituito con il nome del file che
contiene la macro
--
----------------------------
Mauro Gamberini
Maurizio Borrelli
2004-10-15 17:03:48 UTC
Permalink
Post by CR
ho creato una macro che nasconde una serie di righe se il valore di una
data cella non soddisfa la condizione.
All'avvio questa macro chiede il file e il foglio su cui dovrà andare a
"lavorare".
Ora ho la necessita di richiamare la stessa macro da un'altra macro.
Siccome ho già aperto il file e il foglio su cui lavorare vorrei
evitarmi le due domande (che hanno di default altri nomi).
Come posso fare senza riscrivere la stessa macro in versione "senza
domanda"?
Ciao, Claudia.

Ti risparmio quello che mi passa per la testa leggendoti ;-) e vengo
subito al sodo.

Posto che tu abbia:

Option Explicit

Public Sub Macro1()
Dim strInput As String
strInput = InputBox("Immetti il nome del file:" _
, "Macro1" _
, "D:\Percorso\TEST1.XLS")
If (Len(strInput)) Then
Debug.Print "Nome del file: " & strInput
Else
Debug.Print "Qui non succede nulla."
End If
End Sub

e che la routine:

Public Sub Macro2()

End Sub

debba chiamare Macro1 facendole eseguire il codice successivo alla richiesta
di input dell'utente e con un certo nome di file, allora con questa orrida
pezza dovresti combinare:

Option Explicit

Private m_strInput As String

Public Sub Macro1()
Dim strInput As String
If (Len(m_strInput)) Then
strInput = m_strInput
Else
strInput = InputBox("Immetti il nome del file:" _
, "Macro1" _
, "D:\Percorso\TEST1.XLS")
End If
If (Len(strInput)) Then
Debug.Print "Nome del file: " & strInput
Else
Debug.Print "Qui non succede nulla."
End If
End Sub

Public Sub Macro2()
m_strInput = "D:\Percorso\TEST2.XLS"
Macro1
Debug.Print "Qui succede qualcosa."
m_strInput = ""
End Sub

(Facci sapere se ed eventualmente come hai risolto. Grazie.)
--
Ciao :o)
Maurizio Borrelli, Microsoft MVP - Office Systems - Access
--------
?SPQR(C)
X
--------
Loading...