Risultati da 1 a 22 di 22

Discussione: cambio colore oggetti



  1. #1
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1

    cambio colore oggetti

    Salve a tutti, il mio è un quesito che mi tormenta da un pò.
    In sostanza vorrei far cambiare colore ad un oggetto passando per esempio da colore verde a rosso e poi viceversa, cliccandoci sopra come se fosse un pulsante.
    Questa cosa riesco a farla registrando una macro, il problema è che devo creare due fogli per far vedere il cambio di colore.
    E' possibile farlo in un foglio unico?
    Questo perchè nel mio esempio ho inserito solo un oggetto, ma il progetto su cui sto lavorando prevede piu oggetti che cambiano, in base alla pressione, colore simultaneamente.
    In sostanza sto creando un foglio dove sono presenti degli interruttori( forma cerchio) alla pressione su di esso deve colorarsi sia l'interruttore di colore diverso, simulando l'apertura e chiusura, e sia la linea collegata ad esso, simulando il passaggio di corrente.
    Si può fare una cosa del genere contenendo i fogli?

    In allegato c'è l'esempio

    Grazie Moreno
    File Allegati File Allegati

  2. #2
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Ciao Moreno,
    ma nell'allegato non c'è alcuna macro!
    comunque prova con questa da associare alla forma
    Codice: 
    Sub cambiacolore()    
        If ActiveSheet.Shapes("Ovale 2").Fill.ForeColor = vbRed Then
            ActiveSheet.Shapes("Ovale 2").Fill.ForeColor.RGB = vbGreen
        ElseIf ActiveSheet.Shapes("Ovale 2").Fill.ForeColor = vbGreen Then
            ActiveSheet.Shapes("Ovale 2").Fill.ForeColor.RGB = vbRed
        End If
    End Sub
    Fai sapere.
    Ciao,
    Mario

  3. #3

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978
    prova così:
    Codice: 
    Sub CambiaColore()
    If Foglio1.Shapes("Ovale 2").Fill.ForeColor.RGB = vbGreen Then
        Foglio1.Shapes("Ovale 2").Fill.ForeColor.RGB = vbRed
    Else
        Foglio1.Shapes("Ovale 2").Fill.ForeColor.RGB = vbGreen
    End If
    End Sub
    prima di lanciare la macro CambiaColore, per essere sicuro che inizi con uno dei due colori, apri l'editor VBA
    premi CTRL + G e scrivi:
    Codice: 
    Foglio1.Shapes("Ovale 2").Fill.ForeColor.RGB = vbGreen
    e premi invio

    EDIT: Scusa Marius ci siamo sovrapposti

  4. #4
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    810
    Versione Office
    2016 64bit
    Likes ricevuti
    145
    Likes dati
    53
    Manca da associare anche il rettangolo alla macro.

  5. #5
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    @Rubik
    grazie per la correzione. :176:

    @Rollis
    lasciamo fare qualcosa anche all'utente. :167:

    Salve a tutti,
    Mario

  6. #6
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Mi sono accorto che non me l'ha salvata la macro, provo ad inserire il codice che mi hai scritto e poi ti faccio sapere. Grazie per ora

  7. #7
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Il codice funziona perfettamente, quando lo associo al rettangolo questo non cambia colore

  8. #8
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Ciao Moreno,
    ma nell'allegato non c'è alcuna macro!
    comunque prova con questa da associare alla forma
    Codice: 
    Sub cambiacolore()    
        If ActiveSheet.Shapes("Ovale 2").Fill.ForeColor = vbRed Then
            ActiveSheet.Shapes("Ovale 2").Fill.ForeColor.RGB = vbGreen
        ElseIf ActiveSheet.Shapes("Ovale 2").Fill.ForeColor = vbGreen Then
            ActiveSheet.Shapes("Ovale 2").Fill.ForeColor.RGB = vbRed
        End If
    End Sub
    Fai sapere.
    Ciao,
    Mario
    Nel codice leggo "ovale", ma se voglio eseguire la macro su di un altra forma oppure oggetto?

  9. #9
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Ciao Moreno
    nel tuo esempio c'era una forma Ovale ed a quella mi sono adattato.
    Ora, se vuoi andare a Milano non puoi prendere un mezzo per Torino!
    Nella macro cambia "Ovale 2" con "Rectangle ..." e metti il numero giusto (per vedere il numero seleziona il rettangolo e guarda a sinistra della barra della formula)

    Fai sapere. Ciao,
    Mario

  10. #10
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Ovvio, però non mi limito a copiare ed incollare il codice, voglio anche capire la logica di funzionamento per imparare per quello faccio molte domande.

    Ti ringrazio per la disponibilità.

  11. #11
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    810
    Versione Office
    2016 64bit
    Likes ricevuti
    145
    Likes dati
    53
    Citazione Originariamente Scritto da morenomax Visualizza Messaggio
    Nel codice leggo "ovale", ma se voglio eseguire la macro su di un altra forma oppure oggetto?
    Quando selezioni la forma, in alto a sinistra c'è la Casella Nome dove solitamente si vedono le coordinate delle celle oppure ... il nome della forma.

  12. #12
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Sera ragazzi, ho un ultimo quesito per il mio progetto.
    Come spiegavo all'inizio devo simulare il passaggio di corrente in uscita da questo pseudo interruttore, il colore alle forme ora ho capito bene come cambiarlo, ora mi rimane di scrivere il codice che serve per dire, se il rettangolo,per esempio, è verde, allora la riga (connettore) deve diventare verde ecc.

  13. #13
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Ciao Moreno
    ma la risposta ce l'hai già! Inserisci queste righe in un Evento del foglio (per es. Worksheet_SelectionChange)
    Codice: 
    If ActiveSheet.Shapes("Ovale 2").Fill.ForeColor = vbRed Then
            ActiveSheet.Shapes("nome che hai dato alla linea").Fill.ForeColor.RGB = vbRed
    else ActiveSheet.Shapes("nome che hai dato alla linea").Fill.ForeColor.RGB = vbGreen
    End if
    Ciao,
    Mario

  14. #14
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Cosa intendi per evento del foglio?

  15. #15
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    mi da errore alla riga ActiveSheet.Shapes("nome che hai dato alla linea").Fill.ForeColor.RGB = vbRed

    questo è il codice scritto

    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If ActiveSheet.Shapes("Ovale 2").Fill.ForeColor = vbRed Then
    ActiveSheet.Shapes("Riga").Fill.ForeColor.RGB = vbRed
    Else: ActiveSheet.Shapes("Riga").Fill.ForeColor.RGB = vbGreen
    End If
    End Sub
    non fa nulla però

    Ciao Moreno
    Ultima modifica fatta da:cromagno; 22/03/16 alle 22:43 Motivo: Inserito codice tra i tag CODE...

  16. #16
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Ciao Moreno
    assegna questa macro all'ovale e fai attenzione che la riga abbia il nome giusto (secondo me dovrebbe avere anche un numero; io ho messo una "Freccia a sinistra 2"
    Codice: 
    Sub cambiacolore()
        If ActiveSheet.Shapes("Ovale 1").Fill.ForeColor = vbRed Then
            ActiveSheet.Shapes("Ovale 1").Fill.ForeColor.RGB = vbGreen
            ActiveSheet.Shapes("Freccia a sinistra 2").Fill.ForeColor.RGB = vbGreen
        Else
            ActiveSheet.Shapes("Ovale 1").Fill.ForeColor.RGB = vbRed
            ActiveSheet.Shapes("Freccia a sinistra 2").Fill.ForeColor.RGB = vbRed
        End If
    End Sub
    Facendo clic sull'ovale la riga/freccia diventa dello stesso colore.
    Fai sapere, Ciao,
    Mario

  17. #17
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Ciao Mario, mi da errore non riesce ad eseguirlo cosi il codice, avevo già provato anchio una cosa del genere.
    Aspetto tue notizie.

  18. #18
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Citazione Originariamente Scritto da morenomax Visualizza Messaggio
    Ciao Mario, mi da errore non riesce ad eseguirlo cosi il codice, avevo già provato anchio una cosa del genere.
    Aspetto tue notizie.
    Ma che tipo di errore? dove si blocca?
    Non l'ho detto ma mi sembrava evidente che la macro va assegnata all'ovale.

    Fai sapere. Ciao,
    Mario

  19. #19
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Ciao Mario,
    sono riuscito a capire il problema, sostanzialmente io volevo che il connettore (riga) si colorasse dello stesso colore di una forma, quindi ho provato a far cambiare colore ad un'altra forma, ed il codice risulta esatto, quindi per esempio impostando ovale e rettangolo, alla pressione questi cambiano colore da verde a rosso ecc.
    Questo succede perchè le forme come ovale e rettangolo hanno un colore di riempimento forma, invece la riga o connettore ha solo il colore di contorno. Penso che il problema sia proprio questo.
    Non conosci il modo per cambiare colore alla riga?

    Questo è il codice che ho scritto di prova e funziona con le forme:

    Codice: 
    Sub cambiacolores()
    If ActiveSheet.Shapes("Ovale 1").Fill.ForeColor = vbRed Then
    ActiveSheet.Shapes("Ovale 1").Fill.ForeColor.RGB = vbGreen
    Shapes("rettangolo 5").Fill.ForeColor.RGB = vbGreen
    Shapes("rettangolo 6").Fill.ForeColor.RGB = vbGreen
    ElseIf ActiveSheet.Shapes("ovale 1").Fill.ForeColor = vbGreen Then
    ActiveSheet.Shapes("ovale 1").Fill.ForeColor.RGB = vbRed
    Shapes("rettangolo 5").Fill.ForeColor.RGB = vbRed
    Shapes("rettangolo 6").Fill.ForeColor.RGB = vbRed
    End If
    End Sub
    Fammi sapere perchè se no altrimenti devo predisporre dei rettangoli al posto delle righe ma lo schema non uscirebbe come vorrei.
    Grazie
    Ultima modifica fatta da:cromagno; 24/03/16 alle 17:36 Motivo: Inserito codice tra i tag CODE...

  20. #20
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Ciao Moreno
    non disperare e ... prova la macro sotto :166:
    Codice: 
    Sub coloreriga()
    If ActiveSheet.Shapes("Ovale 1").Fill.ForeColor = vbRed Then
        ActiveSheet.Shapes("Ovale 1").Fill.ForeColor.RGB = vbGreen
        ActiveSheet.Shapes("Connettore 1 3").Line.ForeColor.RGB = vbGreen
    ElseIf ActiveSheet.Shapes("ovale 1").Fill.ForeColor = vbGreen Then
        ActiveSheet.Shapes("ovale 1").Fill.ForeColor.RGB = vbRed
        ActiveSheet.Shapes("Connettore 1 3").Line.ForeColor.RGB = vbRed
    End If
    End Sub
    In parole semplici ho colorato la riga (Line) mentre per l'ovale ho colorato solo l'interno.
    Ovviamente ho provato con un connettore semplice ed ho assegnato la macro all'ovale.
    Penso sarebbe più ... elegante far cambiare colore anche al bordo dell'ovale.

    Fai sapere. Ciao,
    Mario

  21. I seguenti utenti hanno dato un "Like"


  22. #21
    L'avatar di morenomax
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    bergamo
    Messaggi
    16
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Perfettooooooooooo!!!!!!
    Finalmente ci siamo ora direi che posso procedere con il progetto, ti ringrazio infinitamente, e ringrazio anche tutti quelli che hanno partecipato a questa discussione.
    Ti auguro una buona giornata e una Buona Pasqua.
    Saluti Moreno

  23. #22
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Ciao Moreno
    son contento che ti sia piaciuto e, principalmente, funzioni.
    Ricambio a te e famiglia i migliori Auguri per una Pasqua serena.

    Visto che il problema stato risolto segna questa discussione come [RISOLTO]
    Vai nella barra dei menu, situata all’inizio di questa discussione, troverai il menu “Strumenti Discussione” quindi scegli “Segna questo Thread come risolto”

    Ciao,
    Mario

Discussioni Simili

  1. [Risolto] Cambio colore solo per una singola voce dell'elenco sull'asse orizzontale
    Di MicheleG. nel forum Domande sui Grafici di Excel
    Risposte: 11
    Ultimo Messaggio: 23/01/17, 23:11
  2. Barre percentuali e cambio colore al 100%
    Di k0ral nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 29/01/16, 15:35
  3. Cambio colore cella
    Di alfrimpa nel forum Domande su Excel VBA e MACRO
    Risposte: 15
    Ultimo Messaggio: 22/01/16, 19:20
  4. cambio colore del carattere e delle celle
    Di Scuotioss4 nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 10/12/15, 19:55

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •