Newsgroup: it.comp.lang.visual-basic
Titolo: In VBA per Excel come è possibile fermare il codice per selezionare celle e poi ripartire?

Ciao a tutti,
ho già fatto questa domanda ma non ho ricevuto risposta.
Per vari motivi non posso far selezionare all'utente prima le celle e poi
procedere con l'avvio della macro, ma devo prima avviare la macro e durante
la sua esecuzione chiedere all'utente di selezionare le celle desiderate.
Come posso fare per interrompere temporaneamente il codice VBA per far
interagire l'utente con la macro.
Ringrazio tutti in anticipo.
Ciao da Emiliano

 Ciao da Emiliano
Ciao
Andrea


Grazie Andrea,
ma non è proprio possibile fare con un'unica macro??
Ciao da Emiliano e ancora grazie


Poco elegante ma funziona:
Nel foglio su cui devi far selezionare le celle incolla il seguente codice
Ciao
VB
Option Explicit
Public Flag As Long
Public Intervallo As Range
Public Sub Inizia()
    MsgBox "Seleziona la zona e dopo premi il tasto DX del maouse"
    Flag = 1
    Do
        If Flag = 0 Then Exit Do
        DoEvents
    Loop
    MsgBox Intervallo.Address
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
    If Flag = 1 Then
        Set Intervallo = Target
        Flag = 0
        Cancel = True
    End If
End Sub

 End Sub
Ti ringrazio vivamente per la risposta che mi hai dato che ho provato e
funziona bene, tuttavia provo a spiegare meglio il mio problema per farti
capire che la soluzione da te trovata purtroppo non risolve il grosso del
problema.
Spero tanto che tu abbia il tempo e la voglia di leggere il papiro che sto
scrivendo!!!!!!!!!!!!!!!!!!!!!!!!!!!
1. Ho un file dove è residente il codice VBA che si chiama PROVA.XLS
2. Devo esportare un foglio di EXCEL in formato TXT utilizzando il comando
SALVA CON NOME nel file che si chiama PROVA.TXT
3. Purtroppo quando esporto il foglio in TXT il nome del file corrente non
sarà più PROVA.XLS ma è diventato PROVA.TXT
Per risolvere questo problema ho pensato di avviare una macro che:
1. Copia tutto il contenuto del file PROVA.XLS
2. Apre un nuovo file SENZANOME
3. Incolla tutto il contenuto precedentemente copiato
4. Salva il nuovo file in formato TXT con nome PROVA.TXT
5. Chiude il nuovo file PROVA.TXT in modo che l'utente ritrovi la situazione
di partenza a video ma nell'hardisk avrà un file in più e cioè il PROVA.TXT
Tutto questo sarebbe semplice se i dati presenti nel foglio di Excel
andassero bene così come sono, purtroppo invece occorre eseguire tutta una
serie di operazioni (cancellare, aggiungere dati e/o righe ecc) tramite VBA;
queste operazioni poi devono risultare solo sul file PROVA.TXT esportato,
mentre il file di origine PROVA.XLS deve rimanere invariato.
Tutte queste modifiche richiedono, come se non bastasse, che l'utente
effettui una selezione dell'area su cui intervenire, per poi continuare con
la routine VBA.
QUI SORGE IL PROBLEMA: il tuo codice mi va benissimo se avessi potuto
introdurlo nel file di origine PROVA.XLS ma come faccio a inserirlo su un
nuovo file (cioè il PROVA.TXT) creato da una macro VBA??
Ti ringrazio in anticipo sperando in un tuo grandissimo aiuto.
Ciao da Emiliano


Ciao,
ho risolto il problema anche se non mi č stato molto semplice ma comunque
utilizzando il metodo da te suggerito.
Ciao e grazie da Emiliano