È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

Colorare linguetta foglio

  • Messaggi
  • OFFLINE
    De Martin.PAOLO
    Post: 16
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 14/10/2021 16:45
    Ciao a tutti, chiedo un aiuto… ho un file con diversi fogli, avrei la necessita, se possibile, di colorare in rosso la linguetta del foglio quando i valori di C6 e C8 all’interno dei vari fogli sono uguali.
  • OFFLINE
    alfrimpa
    Post: 4.756
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 14/10/2021 17:06
    Occorre usare il VBA

    Allega file di esempio

    Alfredo
  • OFFLINE
    federico460
    Post: 2.465
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 14/10/2021 17:26
    ciao
    in questo foglio di lavoro

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ws As Worksheet
    For n = 1 To Worksheets.Count
    With Sheets(n)
    If Cells(6, 3) = Cells(8, 3) Then
    ActiveSheet.Tab.Color = 255
    Else
    ActiveSheet.Tab.Color = xlNone
    End If
    End With
    Next
    End Sub



    se va bene qualche esperto la sistema impedendo che
    se le celle sono vuote si colori di rosso
  • OFFLINE
    alfrimpa
    Post: 4.758
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 14/10/2021 17:32
    Federico460 a che serve la variabile ws se poi non la usi? 😂

    Alfredo
  • OFFLINE
    De Martin.PAOLO
    Post: 16
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 14/10/2021 17:35
    Allego il file. In questo esempio la linguetta del foglio 1 dovrebbe colorarsi di rosso. Le altre si colorano quando il n di C6 è uguale a C8.
  • OFFLINE
    L2018
    Post: 92
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 14/10/2021 17:47
    Re:
    federico460, 14/10/2021 17:26:




    .... impedendo che
    se le celle sono vuote si colori di rosso




    potrebbe andar bene ?

    If Cells(6, 3) = Cells(8, 3) And Cells(6, 3) <> 0 Then


    non ho saputo quotare, sorry

    LEO
    https://t.me/LordBrum
  • OFFLINE
    De Martin.PAOLO
    Post: 17
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 14/10/2021 17:57
    In realtà quando il foglio è vuoto, cioè non ci sono numeri da B16 in giù, nelle celle C6 C8 c'è lo zero in quanto riportano una formula di subtotale
  • OFFLINE
    federico460
    Post: 2.466
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 14/10/2021 18:00
    ciao
    Al
    ho eliminati tutto
    dalla macro che ho variato
    e l'ho dimenticato😀
  • OFFLINE
    federico460
    Post: 2.467
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 14/10/2021 18:11
    ciao
    eccola

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    For n = 1 To Worksheets.Count
    With Sheets(n)
    If Cells(6, 3) = Cells(8, 3) And Cells(6, 3) > 0 Then
    ActiveSheet.Tab.Color = 255
    Else
    ActiveSheet.Tab.Color = xlNone
    End If
    End With
    Next
    End Sub



    in "QUESTA CARTELLA DI LAVORO"
    o
    thisworkbook
  • OFFLINE
    De Martin.PAOLO
    Post: 18
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 14/10/2021 19:22
    Mi da: errore di compilazione Variabile non definita
  • OFFLINE
    federico460
    Post: 2.468
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 14/10/2021 19:49
    leva option explicit
    da sopra
  • OFFLINE
    alfrimpa
    Post: 4.759
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 14/10/2021 20:08
    Option Explicit non va tolto mai.

    Le variabili vanno dichiarate sempre.

    Alfredo
  • OFFLINE
    federico460
    Post: 2.469
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 14/10/2021 20:26
    ciao Al

    allora mettile 😆

    lavoro tuo
    non per me😛
  • OFFLINE
    alfrimpa
    Post: 4.760
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 14/10/2021 22:13
    La dichiarazione delle variabili è un argomento che devono conoscere tutti

    https://www.excelpertutti.com/variabili-excel-tipi-di-variabili-vba/

    😀

    Alfredo
  • OFFLINE
    federico460
    Post: 2.470
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 14/10/2021 22:36
    ciao
    Option Explicit


    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim n As Integer

    For n = 1 To Worksheets.Count
    With Sheets(n)
    If Cells(6, 3) = Cells(8, 3) And Cells(6, 3) > 0 Then
    ActiveSheet.Tab.Color = 255
    Else
    ActiveSheet.Tab.Color = xlNone
    End If
    End With
    Next
    End Sub



    tanto tu poi metti long
    😂

    sfaticato di un Al
    1 variabile solo e non la metti
    [Modificato da federico460 14/10/2021 22:37]
  • OFFLINE
    alfrimpa
    Post: 4.761
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 14/10/2021 22:55
    No Integer va bene e ti chiedo di spiegarmi il perchè 😂

    Quanto all’essere sfaticato il mio l’ho fatto devono essere gli utenti a lavorare 😂

    Alfredo
  • OFFLINE
    De Martin.PAOLO
    Post: 19
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 15/10/2021 10:04
    Ottimo ! Grazie a tutti
  • OFFLINE
    darionardella
    Post: 42
    Registrato il: 18/10/2016
    Città: COSENZA
    Età: 65
    Utente Junior
    Excel 2007
    00 19/10/2021 19:08
    Colorare linguetta di rosso
    Buona sera,
    credo che la macro che ho visto vada corretta :
    "Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    For n = 1 To Worksheets.Count
    With Sheets(n)
    If .Cells(6, 3) = .Cells(8, 3) And .Cells(6, 3) > 0 Then
    ActiveSheet.Tab.Color = 255
    Else
    ActiveSheet.Tab.Color = xlNone
    End If
    End With
    Next
    End Sub"
    In pratica, quando si lavora con With/End With, gli oggetti all'interno vanno preceduti dal punto, altrimenti si agisce sul foglio corrente.
    Le celle 6,3 e 8,3 sono relative al foglio (n), e non al foglio corrente.
    Altrimenti non serve "spazzolare" tutti i fogli della cartella.
    Alla fine la macro originale agiva sempre sul foglio attivo.......
    Saluti
    Dario
  • OFFLINE
    De Martin.PAOLO
    Post: 20
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 20/10/2021 15:45
    Ciao darionardella, non mi funziona la tua versione
  • OFFLINE
    tanimon
    Post: 1.444
    Registrato il: 27/06/2011
    Utente Veteran
    excel 2007
    00 20/10/2021 17:39
    Re:
    De Martin.PAOLO, 20/10/2021 15:45:

    Ciao darionardella, non mi funziona la tua versione




    ciao,
    non credi che per ottenere un riscontro, sia utile a Dario (ciao [SM=g27811] ),
    allegare la tua versione non funzionante?







    Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
    Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
  • OFFLINE
    darionardella
    Post: 43
    Registrato il: 18/10/2016
    Città: COSENZA
    Età: 65
    Utente Junior
    Excel 2007
    00 20/10/2021 19:27
    Attendo la versione x verificare il problema.
  • OFFLINE
    De Martin.PAOLO
    Post: 21
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 20/10/2021 19:27
    Il file si trova già in allegato in uno dei messaggi sopra
  • OFFLINE
    De Martin.PAOLO
    Post: 22
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 20/10/2021 19:30
    Re:
    darionardella, 20/10/2021 19:27:

    Attendo la versione x verificare il problema.



    La versione è il 2003


  • OFFLINE
    darionardella
    Post: 44
    Registrato il: 18/10/2016
    Città: COSENZA
    Età: 65
    Utente Junior
    Excel 2007
    00 20/10/2021 19:36
    Intendevo la versione della macro che non funziona con il mio suggerimento....
  • OFFLINE
    De Martin.PAOLO
    Post: 23
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 21/10/2021 07:10
    Re:
    darionardella, 20/10/2021 19:36:

    Intendevo la versione della macro che non funziona con il mio suggerimento....


    Non saprei dirti cosa non funzione, non mi da errore, ma non colora la linguetta


  • OFFLINE
    darionardella
    Post: 45
    Registrato il: 18/10/2016
    Città: COSENZA
    Età: 65
    Utente Junior
    Excel 2007
    00 21/10/2021 08:25
    Allega il file completo, e verifico.
    Grazie
  • OFFLINE
    De Martin.PAOLO
    Post: 24
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 21/10/2021 10:10
    Re:
    darionardella, 21/10/2021 08:25:

    Allega il file completo, e verifico.
    Grazie




  • OFFLINE
    dodo47
    Post: 3.227
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 21/10/2021 10:31
    ciao
    non ti funziona perchè in nessun foglio si verifica la condizione imposta, ovvero C6=C8 e C6 > 0.

    Inltre quel codice ti va in errore perchè non hai dichiarano la variabile n (hai Option Explicit)....

    saluti




    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    De Martin.PAOLO
    Post: 25
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 21/10/2021 10:48
    Re: Re:
    De Martin.PAOLO, 21/10/2021 10:10:








    Ciao, nel foglio 1 e 2 ci sono le condizioni per colorare la linguetta. Comunque lascia perdere, tengo la macro di
    federico460 che funziona senza problemi [SM=g27811]
  • OFFLINE
    dodo47
    Post: 3.228
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 21/10/2021 11:28
    ciao
    io dico di no....(con tutto il rispetto per fede).....comunque contento tu....

    Quel codice lavora solo sul foglio attivo, pertanto il loop tra tutti i fogli è inutile.
    Quindi se sei in un foglio, modifichi qualcosa e si verificano le condizioni, solo il foglio dove sei colorerà il tab di rosso.

    Pertanto se il tuo scopo è quello di colorare solo il tab del foglio attivo il loop è inutile, se invece lo scopo è: qualsiasi cambiamento in qualsiasi foglio deve verificare in tutti i fogli se le condizioni sono vere quel loop va fatto con le modifiche indicate da Nardella

    saluti
    [Modificato da dodo47 21/10/2021 11:37]
    Domenico
    Win 10 - Excel 2016
  • 1