Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Tasto con macro evidenzia celle

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

[Excel] Tasto con macro evidenzia celle

Postdi systemcrack » 06/10/17 07:33

Ciao ragazzi,
ho creato un pulsante con una macro che colora, una volta clickato, lo sfondo di 4 celle ottenendo questo codice:
Codice: Seleziona tutto
Sub Pulsante98_Click()
'
' Pulsante98_Click Macro
'

'
    Range("B75,C75,E75,F75").Select
    Range("F75").Activate
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 8420607
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub


Allego screen per rendere meglio l'idea:
Immagine

Volevo sapere come fare in modo che se il tasto viene riclickato lo sfondo delle celle torni come era prima.

Inoltre visto che questo tasto è inserito su tutte le righe della tabella, cioè 160, volevo sapere se ci fosse un modo per fare un tasto e poi copiarlo per tutte le righe e non fare un tasto personalizzato per ogni riga come ho fatto io :aaah :lol:

Allego file d'esempio:
http://www.filedropper.com/schemaentratemodelloduplicauff

Grazie in anticipo.. SIETE I MIGLIORI! ;)
Avatar utente
systemcrack
Utente Senior
 
Post: 143
Iscritto il: 27/07/17 09:40

Sponsor
 

Re: [Excel] Tasto con macro evidenzia celle

Postdi Anthony47 » 06/10/17 15:09

Questa, messa nel "modulo di classe del tuo Foglio di lavoro, si attiva col doppioclick su una cella della riga:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim cR As Long, nCol As Long
'
cR = Selection.Row
If Range("B" & cR).Interior.Color = 8420607 Then
    nCol = xlNone
Else
    nCol = 8420607
End If
Range("B1,C1,E1,F1").Offset(cR - 1).Interior.Color = nCol
Cancel = True
End Sub

Se in Bx c'e' il colore da te scelto (8420607) allora il colore viene tolto e impostato su "nessuno sfondo"; altrimenti si applica quel colore.

Per inserirla:
-tasto dx sul tab col nome del foglio di lavoro;
-scegli Visualizza codice; si aprira' l'editor delle macro
-copia il codice e incollalo nel frame vuoto di dx

Poi torna su Excel e fai doppio click su una cella (meglio se di colonna A) e vedi l'effetto; ripeti e vedi l'effetto.

Se invece le celle prima di ricevere questo colore avessero gia' un altro colore e la tua intenzione e' ripristinarlo al secondo doppioclick allora e' abbastanza semplice se click e controclick sono contigui; e' abbastanza semplice usando una colonna di appoggio; e' abbastanza semplice utilizzando un "foglio ombra", anche nascosto; e' un po' piu' complicato e di risultato meno certo se nessuna dei tre casi precedenti puo' essere usato.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 18205
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Tasto con macro evidenzia celle

Postdi systemcrack » 16/10/17 13:44

Dopo lunghe e diverse considerazioni basate anche sul fatto che lo sfondo delle caselle era differente da una riga all'altra ho optato per la creazione di 160 bottoni singoli per colorare e 160 singoli con funzione cancella sfondo e poi colora (con il colore originale di sfondo).
E' stata una mega sfacchinata, ma ora posso dire che ne è valsa la pena.

Grazie comunque Anthony!
Avatar utente
systemcrack
Utente Senior
 
Post: 143
Iscritto il: 27/07/17 09:40

Re: [Excel] Tasto con macro evidenzia celle

Postdi alfrimpa » 16/10/17 15:33

systemcrack ha scritto:E' stata una mega sfacchinata, ma ora posso dire che ne è valsa la pena.


Forse potevi evitartela :)

Con questo codice

Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CommanButton1.Top = ActiveCell.Top
CommanButton1.Left = ActiveCell.Left
CommanButton1.Width = ActiveCell.Width
CommanButton1.Height = ActiveCell.Height
End Sub


il pulsante si adatta perfettamente alle dimensioni della cella attiva e alla posizione del cursore..
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: [Excel] Tasto con macro evidenzia celle

Postdi Anthony47 » 16/10/17 23:59

160 pulsanti e 160 codici :eeh: :eeh:
Una mega sch****za...
Ma perche' l'approccio della "BeforeDoubleClick" non andava bene, visto che vuoi flippare tra un colore e un altro?
Spero almeno che hai impostato la proprieta' dei 160 pulsanti su "Muovi e ridimensiona con le celle".

Anche la proposta di Alfredo avrebbe reso piu' decoroso il tuo lavoro (anche se capisco che per te il problema era usare codici colore diversi per pulsanti diversi)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 18205
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Tasto con macro evidenzia celle

Postdi systemcrack » 20/10/17 12:37

Anthony47 ha scritto:160 pulsanti e 160 codici :eeh: :eeh:
Una mega sch****za...
Ma perche' l'approccio della "BeforeDoubleClick" non andava bene, visto che vuoi flippare tra un colore e un altro?
+
Avevo bisogno di un pulsante.. e poi come dicevo lo sfondo non è uguale per tutte le righe.. è alternato perciò c'pera anche quello da considerare.

Anthony47 ha scritto:Spero almeno che hai impostato la proprieta' dei 160 pulsanti su "Muovi e ridimensiona con le celle".

Anche la proposta di Alfredo avrebbe reso piu' decoroso il tuo lavoro (anche se capisco che per te il problema era usare codici colore diversi per pulsanti diversi)

Ciao


Non ho capito bene che cosa faccia il codice postato da Alfredo.. che tra l'altro vedo solo ora
Comunque ora mi hanno chiesto di aggiungere un pulsante che barri il testo e lo colori di rosso.. in alcune celle.. :mmmh: :aaah
Avatar utente
systemcrack
Utente Senior
 
Post: 143
Iscritto il: 27/07/17 09:40

Re: [Excel] Tasto con macro evidenzia celle

Postdi Anthony47 » 20/10/17 19:36

La macro di Alfredo posiziona un unico pulsante nella cella selezionata

Se il colore era alternato, invece di dirlo in varie macro (non ho capito se sono 2 o 160) lo si poteva dire in una sola macro, associata a un unico pulsante, posizionato sulla riga da manipolare col trucco di Alfredo.
Vale per la prossima volta...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 18205
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Tasto con macro evidenzia celle":

Formula excel
Autore: Nilo69
Forum: Applicazioni Office Windows
Risposte: 16

Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti