Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    [excel 2007] formattazione condizionale da elenco a discesa

    debbo fare in modo che se il valore contenuto in una casella combinata o elenco a discesa contiene un determinato valore una determinata cella venga formattata secondo un criterio specifico

    colonna a colonna b colonna c

    vino 1 casella combinata
    acqua 2 casella combinata



    colonna d (valori della casella combinata)

    rosso
    giallo
    verde

    Quindi se la casella combinata della riga dove è presente "vino" assume valore rosso la cella A1 deve essere rossa. verde se verde etc

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    =SE(cella="rosso";1;0)

    ecc.

  3. #3
    Originariamente inviato da nicola75ss
    =SE(cella="rosso";1;0)

    ecc.
    si ma come recupero il valore della casella combinata??????

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da Blackeyes
    si ma come recupero il valore della casella combinata??????


    Se le alternative sono solo 3 (rosso, giallo,verde) tramite la formattazione condizionale per la cella che vuoi colorare imposti la formula riferendoti alla cella che contiene la casella combinata.

  5. #5
    Originariamente inviato da nicola75ss


    Se le alternative sono solo 3 (rosso, giallo,verde) tramite la formattazione condizionale per la cella che vuoi colorare imposti la formula riferendoti alla cella che contiene la casella combinata.
    Ti allego il file magari e' piu' chiaro di come lo spiego io

    http://www.syrio.altervista.org/1.zip

  6. #6

  7. #7
    Grazie
    ho visto come hai risolto ma siccome excel a livello di codice vba lo conosco poco avrei bisogno di alcuni chiarimenti
    in effetti il files sara' composto da parecchie testate composte come quella che vedi nell'intervallo c4:g4 almeno una sessantina che rappresentano la mappa degli di un ipotetico negozio.
    In base alla merce presente deve assumere il colore tutto lo scaffale o gli scaffali che soddisfano quel criterio

    Ora il codice
    se non ho capito male hai creato una routine con 2 variabili target e range
    hai la variabile colore
    If Not Intersect(Target, Range("d10:d100")) Is Nothing Then
    con questo gli dici che se non è valorizzato l'intervallo non deve fare nulla
    altrimenti psrte il case.

    allora i valori che hai dato a colore da dove li ricavi?

    e poi questa non l'ho capita

    Target.Offset(0, -2).Interior.ColorIndex = colore

    ultima domanda come si fa a fare in modo che l'elenco a discesa si veda solo nel caso in cui ci si clicchi?

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Questa riga

    Target.Offset(0, -2).Interior.ColorIndex = colore

    significa che deve essere assegnato lo sfondo del colore ricavato precedentemente tramite il case alla cella che si trova sulla stessa riga (0) e due colonne a sinistra (-2) rispetto a quella che viene modificata tramite selezione da menù a tendina.

    Questa riga

    If Not Intersect(Target, Range("d10:d100")) Is Nothing Then

    siccome la macro viene scatenata dalla modifica del foglio di lavoro, serve a limitare l'elaborazione della routine soltanto nel caso in cui le celle soggette a modifica siano quelle nell'intervallo d10:d100, ovviamente modificabile secondo le proprie esigenze.

    La domanda relativa alla visibilità dell'elenco a discesa non l'ho capita. Mi sembra che il comportamento sia già quello che vorresti.

    edit. Per assegnare agli scaffali gli stessi colori basta fare riferimento ai colori assegnati precedentemente. Quindi a fine sub:

    codice:
    Range("d4").Interior.ColorIndex = Range("b10").Interior.ColorIndex
    Range("d6").Interior.ColorIndex = Range("b11").Interior.ColorIndex

  9. #9
    La domanda relativa alla visibilità dell'elenco a discesa non l'ho capita. Mi sembra che il comportamento sia già quello che vorresti.

    [/code]
    ho provato ma credo di sbagliare qualche cosa....
    per la domanda dell'elenco volevo capire come hai ottenuto l'effetto...

    http://rapidshare.com/files/40297369...ondiz.xls.html

  10. #10
    ho provato a fare qualche modifica al codice ma non ho ottenuto risultati
    ti posto il file con i dati corretti magari è piu' semplice aiutarmi a capire,


    http://www.syrio.altervista.org/1.zip

    la formula dovrebbe essere : se la casella di riepilogo della riga 10 contiene 3x2 allora le celle c4 e d4 debbono essere rosse, altrimenti se la casella di riepilogo della riga 10 contiene promo allora le celle c4 e d4 debbono essere verdi e cosi via fino a soddisfare tutte le possibili scelte della casella combinata.
    Questo si ripete per tutti gli elementi presenti sul file.
    In teoria dovrei creare una routine che gestisca la casistica dell'elenco a discesa

    Select Case Elenco

    Case "3x2"

    colore = rosso

    Case "sconto 10%"

    colore = giallo

    Case "promo"

    colore = verde

    Case "inventario"

    colore = blu

    Case Else

    colore = nessun formato

    End Select

    Poi dovrei salvare il valore della casella di riepilogo, relativa ad una determinata riga, in una variabile per utilizzarla in seguito
    e a questo punto utilizzare la formula : se la casella di riepilogo della riga 10 contiene 3x2 allora le celle c4 e d4 debbono essere rosse, altrimenti se la casella di riepilogo della riga 10 contiene promo allora le celle c4 e d4 debbono essere verdi e cosi via fino a soddisfare tutte le possibili scelte della casella combinata.

    ma non so' bene come fare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.