Condividi:        

Macro Excel per scegliere una cella

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro Excel per scegliere una cella

Postdi frzfrz » 14/11/08 13:08

Devo far girare una macro che mi dia la possibilità di:

1.svolgere la prima parte di una certa routine
2.fermarsi e per lasciarmi cliccare sulla cella in cui vorrò riportare il risultato di quella routine
3.proseguire con la seconda parte della routine

Non so come fare per le istruzioni di cui al punto 2.

Chi mi aiuta?
frzfrz
Newbie
 
Post: 5
Iscritto il: 14/11/08 12:44

Sponsor
 

Re: Macro Excel per scegliere una cella

Postdi Tribuno » 14/11/08 16:31

Ciao frzfrz e benvenuto,

una curiosità, non sarebbe più lineare e con meno possibilità di errore far scrivere alla tua routine il risultato ottenuto nella cella che desideri?

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: Macro Excel per scegliere una cella

Postdi frzfrz » 14/11/08 17:30

Certo che lo sarebbe (più semplicw) e,in realtà è quel che faccio.
Ma non è il più rapido perchè la macro si compone di una decina di routines che devo rilanciare ogni volta.
frzfrz
Newbie
 
Post: 5
Iscritto il: 14/11/08 12:44

Re: Macro Excel per scegliere una cella

Postdi Tribuno » 15/11/08 01:15

Scusa se insisisto (non conoscendo la struttura del tuo programma mi viene naturale porre queste domande), ma le altre routine non possono essere eseguite tutte in automatico? Prima parte, la macro scrive il valore in una cella, poi chiami con Call un'altra routine, se il valore della prima routine è necessaria per la seconda, basterebbe utilizzare delle variabili, e così via. Ripeto, secondo me eviti errori di digitazione.

Comunque fai sapere qualche notizia in più, per meglio inquadrare il tuo problema.

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: Macro Excel per scegliere una cella

Postdi frzfrz » 15/11/08 09:20

Sei molto gentile e cerco di spiegarti meglio qual è in realtà il mio problema.
Immagina di aver scritto nelle celle A1:D13 i simboli delle 52 carte da gioco (nelle celle A1:A4 i 4 Assi, nelle successive B1:B4 i 4 K, in C1:C4 le 4 Q, etc) e di voler seguire lo sviluppo del gioco al tavolo di 4 giocatori (i signori Blu, Rosso, Giallo e Verde).
Per seguire il gioco vuoi colorare lo sfondo della cella corrispondente alla carta giocata da ciascun giocatore con il colore corrispondente.
Per far questo scrivi una macro che deve permetterti di posizionarti sulla cella della carta giocata (supponiamo la A1 se il sig Blu ha giocato l’asso di picche), colorare di blu lo sfondo di questa cella e posizionarti sulla cella corrispondente alla carta giocata dal sig Rosso per colorarla di rosso (ad esempio ,a A13). E così avanti per le carte giocate da Giallo e Verde.
Il problema è quello di fare UN solo CLICK sulla cella voluta lasciando alla macro il compito di colorare sequenzialmente (sempre prima Blu, poi Rosso, Giallo e verde) lo sfondo delle celle cliccate
frzfrz
Newbie
 
Post: 5
Iscritto il: 14/11/08 12:44

Re: Macro Excel per scegliere una cella

Postdi Tribuno » 15/11/08 12:35

Bene, ora è tutto più chiaro, in pratica non hai necessità di inserire un valore in una determinata cella, alla fine della routine, ma che a seguito della selezione di una determinata cella la stessa sia colorata con colori in sequenza.

Per fare tutto ciò è necessario utilizzare l'evento SelectionChange del tuo foglio.
Con questo codice la cella utilizzata come appoggio è H1, in sequenza se in H1 c'è 1=blu, 2=rosso, 3=giallo, 4=verde, la macro verifica che sia selezionata una cella nel range A1:D13, in caso positivo la cella selezionata viene colorata con lo sfondo del colore in base al valore di H1. Nella cella K1 viene inserita la riga della cella selezionata, in L1 la colonna.
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Row >= 1 And ActiveCell.Row <= 13 And ActiveCell.Column >= 1 And ActiveCell.Column <= 4 Then
    If Range("H1") = "" Or Range("H1") < 1 Or Range("H1") > 4 Then Range("H1") = 1
        GIOC = Range("H1")
        Select Case GIOC
            Case 1
                ActiveCell.Interior.ColorIndex = 5
                Range("K1") = ActiveCell.Row
                Range("L1") = ActiveCell.Column
            Case 2
                ActiveCell.Interior.ColorIndex = 3
                Range("K1") = ActiveCell.Row
                Range("L1") = ActiveCell.Column
            Case 3
                ActiveCell.Interior.ColorIndex = 6
                Range("K1") = ActiveCell.Row
                Range("L1") = ActiveCell.Column
            Case 4
                ActiveCell.Interior.ColorIndex = 4
                Range("K1") = ActiveCell.Row
                Range("L1") = ActiveCell.Column
        End Select
        If GIOC + 1 > 4 Then
            Range("H1") = 1
        Else
            Range("H1") = GIOC + 1
    End If
End If
End Sub


Le seguenti macro le devi associare a due diversi pulsanti e ti permettono di togliere il colore all'utlima cella selezionata (Sub Indietro) e togliere il colore a tutto il range A1:D13 inzializzando H1=1 (Sub Azzera).
Codice: Seleziona tutto
Sub Indietro()
If Range("H1") <> "" And Range("L1") <> "" Then
    Cells(Range("K1").Value, Range("L1").Value).Interior.ColorIndex = xlNone
    If Range("H1") - 1 < 1 Then
        Range("H1") = 4
    Else
        Range("H1") = Range("H1") - 1
    End If
End If
Range("F1").Select
End Sub


Sub Azzera()
Range(Cells(1, 1), Cells(13, 4)).Interior.ColorIndex = xlNone
Range("H1") = 1
Range("F1").Select
End Sub


Prova e fai sapere

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: Macro Excel per scegliere una cella

Postdi frzfrz » 19/11/08 18:44

Ti sembrerò uno zombie, e forse lo sono, ma non so come far partire le macro Private Sub Worksheet_SelectionChange(ByVal Target As Range)
frzfrz
Newbie
 
Post: 5
Iscritto il: 14/11/08 12:44

Re: Macro Excel per scegliere una cella

Postdi Tribuno » 19/11/08 19:53

Dal tuo foglio excel con Alt+F11 entri in VBA, sulla sinistra c'è la finestra Progetto-VBA Project, se non non lo visualizzi, premi Ctrl+R oppure Visualizza--->Gestione progetti, sarà visualizzato il tuo progetto con il nome del tuo file. Fai doppi click sul nome del foglio sul quale devi lavorare (es. Foglio1), sulla destra si apre un'altra finestra, all'interno della quale devi inserire il codice relativo alla macro macro Sub Worksheet_SelectionChange(ByVal Target As Range), in pratica seleziona tutto ed incolla in VBA.

Gli altri due codici Indietro ed Azzera li devi copiare ed inserire in un modulo (Inserisci---Modulo).

Con Alt+F11 ritorni al tuo foglio excel, ad ognuno dei due pulsanti associ le macro Indietro ed Azzera.

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: Macro Excel per scegliere una cella

Postdi Anthony47 » 19/11/08 21:00

Oppure...
Invece di aprire l' editor vba e sperare che sia settato per visualizzarre la finestra VBAProject, puoi andare direttamente nel foglio giusto dell' editor delle macro (l' editor vba) con questa sequenza:
-da excel, il foglio a cui la macro si riferisce;
-tasto dx sul tab col nome del foglio, scegli Visualizza codice.
Qui, nel frame di dx o nell' unico frame disponibile, si incolla la macro Worksheet_SelectionChange

Poi Menu /Inserisci /Modulo; si incollano qui le altre macro non legate a uno specifico foglio.

Spero aiuti, ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro Excel per scegliere una cella

Postdi frzfrz » 20/11/08 07:50

Woooowww !!! Funziona , che bello !!!

Grazie.

Frz
frzfrz
Newbie
 
Post: 5
Iscritto il: 14/11/08 12:44


Torna a Applicazioni Office Windows


Topic correlati a "Macro Excel per scegliere una cella":


Chi c’è in linea

Visitano il forum: Nessuno e 106 ospiti