Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Mostra forma in base al contentuo di una cella

Ultimo Aggiornamento: 02/02/2017 11:52
Post: 39
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
30/01/2017 15:45

Avrei bisogno di un vostro aiuto.
Ho creato un piccolo file che al passaggio del mouse ( mouseover ) sulle celle B4,B6 e B8
riporta il contenuto in B1 della cella dove posizionato il cursore.
Vorrei poter aggiungere che se nella cella B1 c’è scritto “palla” mi appaia la forma della palla, mascondendo la “stella” e il “cuore”, se invece c’è scritto “cuore” mi appaia la forma di “cuore”, nascondendo la “stella” e la “palla”, e cosí via.
Questo però in modo dinamico al passaggio del solo mouse.
Qualcuno può aiutarmi a realizzarlo?

Grazie a tutti
Saluti
Marilena
Post: 2.689
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
30/01/2017 16:00

Ciao Marilena

Tengo a precisare che l'oggetto Worksheet non dispone dell'evento MouseOver quindi quello che è stato fatto non utilizza tale evento.

Quanto alla tua domanda puoi provare questo codice da inserire nel modulo del foglio1

vb
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B4, B6,B8")) Is Nothing Then
    Select Case Target.Address
        Case Is = "$B$4"
        Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = True
        Worksheets("Foglio1").Shapes("Ovale 2").Visible = True
        Worksheets("Foglio1").Shapes("Cuore 3").Visible = True
        Worksheets("Foglio1").Shapes("Ovale 2").Visible = False
        Worksheets("Foglio1").Shapes("Cuore 3").Visible = False
        Case Is = "$B$6"
        Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = True
        Worksheets("Foglio1").Shapes("Ovale 2").Visible = True
        Worksheets("Foglio1").Shapes("Cuore 3").Visible = True
        Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = False
        Worksheets("Foglio1").Shapes("Cuore 3").Visible = False
        Case Is = "$B$8"
        Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = True
        Worksheets("Foglio1").Shapes("Ovale 2").Visible = True
        Worksheets("Foglio1").Shapes("Cuore 3").Visible = True
        Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = False
        Worksheets("Foglio1").Shapes("Ovale 2").Visible = False
    End Select
End If
End Sub


Ovviamente per far scomparire/apparire le forme devi selezionare le relative celle.

Alfredo
Post: 5.045
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
30/01/2017 16:13

Rollover
Ciao Marilena eccoti un esempio, ma ha bisogno di una cartella esterna contenente le immagini.

vedi se va bene

Ciao By Sal [SM=x423051]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 39
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
30/01/2017 17:10

Grazie mille a tutti.
Il fatto che avrei la necessità di assegnare una macro alla forma visibile e con il sistema delle immagini non mi è possibile.
Come alternativa sarebbe forse possibile prendere come riferimento il vero e il falso sulla colonna A ?
In modo che rimanga visibile la forma.

Saluti
Marilena
Post: 2.690
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
30/01/2017 17:41

Ciao Marilena

Prova ad allegare le macro da associare alle forme specificando a quali di queste devono essere collegate.

Alfredo
Post: 3.671
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
30/01/2017 17:42

è tassativo non utilizzare il clic sulla cella ? solo mouse over ?

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 40
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
02/02/2017 11:52

Grazie mille a tutti.
Aggiungendo Cancel=True e il DoubleClick alla macro di Alfrimpa funziona anche il Mouseover.

Saluti
Marilena


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B4, B6,B8")) Is Nothing Then
Select Case Target.Address
Case Is = "$B$4"
Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = True
Worksheets("Foglio1").Shapes("Ovale 2").Visible = True
Worksheets("Foglio1").Shapes("Cuore 3").Visible = True
Worksheets("Foglio1").Shapes("Ovale 2").Visible = False
Worksheets("Foglio1").Shapes("Cuore 3").Visible = False
Cancel = True
Case Is = "$B$6"
Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = True
Worksheets("Foglio1").Shapes("Ovale 2").Visible = True
Worksheets("Foglio1").Shapes("Cuore 3").Visible = True
Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = False
Worksheets("Foglio1").Shapes("Cuore 3").Visible = False
Cancel = True
Case Is = "$B$8"
Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = True
Worksheets("Foglio1").Shapes("Ovale 2").Visible = True
Worksheets("Foglio1").Shapes("Cuore 3").Visible = True
Worksheets("Foglio1").Shapes("Stella a 5 punte 1").Visible = False
Worksheets("Foglio1").Shapes("Ovale 2").Visible = False
Cancel = True
End Select
End If
End Sub

Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 01:43. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com