You are here:Home-Domande su Excel VBA e MACRO-Colorare celle conteneti RI da Lun_Ven
Colorare celle conteneti RI da Lun_Ven2020-05-16T16:00:28+02:00

Home Forum Domande su Excel VBA e MACRO Colorare celle conteneti RI da Lun_Ven

Taggato: 

Visualizzazione 11 filoni di risposte
  • Autore
    Post
    • raimearaimea
      Partecipante
        Post totali: 46

        ciao

        Ho una macro che mi fa 2 controlli

        —-

        sub colora_celle_X_LL()

        Dim CL As Range

         

        ‘————–X——————————————–

        For Each CL In Cells.SpecialCells(xlCellTypeConstants)

        If UCase(CL) = “X” Then

        With CL

        .Interior.ColorIndex = 6

        .Font.Bold = True

        .Borders.LineStyle = xlContinuous

        .Borders.Weight = xlThick

        End With

        ‘——–LL————————————————-

         

        ‘oppure se il valore della della e’ “LL” …

        ElseIf UCase(CL) = “LL” Then

        ‘se il giorno della settimana della prima riga e’ inferiore a 5 (1=lun, 2=mar ecc)

        If Weekday(Cells(2, CL.Column), vbMonday) < 6 Then

        ‘applica formato

        With CL

        .Interior.ColorIndex = 33

        .Font.Bold = True

        .Borders.LineStyle = xlContinuous

        .Borders.Weight = xlMedium

        End With

        ‘———————————————————

        ‘—-3 >>—-RI————————————————-

         

        ‘oppure se il valore della della e’ “LL” …

        ElseIf UCase(CL) = “RI” Then

        ‘se il giorno della settimana della prima riga e’ inferiore a 5 (1=lun, 2=mar ecc)

        If Weekday(Cells(2, CL.Column), vbMonday) < 6 Then

        ‘applica formato

        With CL

        .Interior.ColorIndex = 3

        .Font.Bold = True

        .Borders.LineStyle = xlContinuous

        .Borders.Weight = xlMedium

        End With

        ‘———————————————————

         

         

        End If

        End If

        End If

        Next

        End Sub

        ——

         

        mi colora le celle con lettera X

        mi colora con celle LL solo dal Lun_ Ven

        in basso ,  ho aggiunto io il punto 3

        vorrei far colorare le celle che contengono RI

        dal Lun_Ven

        ma non mi funziona

        come posso sistemare ?

        grazie

        vi allego file

        https://www.dropbox.com/s/on9zb6c25n4la5f/Colora_RI.rar?dl=0

         

        • Questo topic è stato modificato 5 mesi, 2 settimane fa da raimearaimea.
      • BySalvBySalv
        Amministratore del forum
          Post totali: 783

          Ciao Raimea, ecco il file, ho creato un nuovo foglio “Test 2” per le prove, ed ho creato una nuova macro, ho usato il “Select Case” molto più versatile di “Elseif” in quanto con “Elseif” deve passare tutte le opzioni, “Select Case” no una volta trovata la corrispondenza fa solo quella.

          inoltre con le colonne nascoste ci sono problemi con i dati, per cui ho limitato il controllo dei dati solo alle colonne visibili.

          ecco il file vedi se va bene

          http://www.filedropper.com/colorari

          Ciao By Sal (8-D

           

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

        • raimearaimea
          Partecipante
            Post totali: 46

            ciao

            ok le modifiche

            ho continuato ad aggiungere le condizioni

            ma quando metto verifica se e’ sabato cod = 6 non funziona

            perche ?

            —————————–

            ‘—6 sab t 20 ———————————————–

            Case “2”

            If dd = 6 Then

            With cl

            .Interior.ColorIndex = 2 ‘ sfondo 1 nero

            .Font.ColorIndex = 2 ‘carattere 2 bianco :scratch:

            .Font.Bold = True

            .Borders.LineStyle = xlContinuous

            .Borders.Weight = xlHairline    ‘ bordo tratteggiato

            End With

             

            End If

             

             

          • BySalvBySalv
            Amministratore del forum
              Post totali: 783

              Ciao Raimea, vedi che tu fai confusione non riesce a trovarlo perche tu 2 lo hai inserito tra le virgolette Case “2” considerandolo testo, invece è un numero, come pure 1, quindi prova ad eliminare le virgolette.

              ma ci sta anche un altro fatto che non ricordo bene adesso se l’istruzione d=Ucase(cells(x,y)) trasforma il numero in testo ma se lo trasforma allora non lo trova lo stesso in quanto “cl” riporta il numero come valore della cella.

              Ciao By Sal (8-D

               

              Ciao By Sal (8-)
              se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

            • raimearaimea
              Partecipante
                Post totali: 46

                ciao

                ok in parte ho capito

                ma il problema resta.

                anche togliendo le virgolette al   2

                i sabati ,     cod 6

                con il num 2 non vengono evidenziati

                 

                ciao

              • raimearaimea
                Partecipante
                  Post totali: 46

                  ciao

                  allego il file completo con le 8 condizioni da gestire

                  non gestisce i cod 1 e 2  del sabato cod vba 6

                  condizioni nella macro la num 6 sab t 20

                  e 8 sab t 18

                   

                  https://www.dropbox.com/s/kapl26vv8hteouw/Colora_RI.rar?dl=0

                  • Questa risposta è stata modificata 5 mesi, 2 settimane fa da raimearaimea.
                • BySalvBySalv
                  Amministratore del forum
                    Post totali: 783

                    Ciao Raimea, ho aggiunto il tuo codice ed ho fatto le prove e funziona ho solo modificato lo sfondo in quanto lo avevi inserito Bianco su Bianco, questa la macro completa
                    ho anche fatto le prove inserendo e togliendo le virgolette sul 2 e funziona lo stesso sia con che senza.

                    Sub colora()
                    Dim cl As Range, d, dd, r, c
                    
                    For Each cl In Cells.SpecialCells(xlCellTypeConstants)
                        r = cl.Row: c = cl.Column
                        If r < 3 Or c < 9 Then GoTo 1
                        dd = Weekday(Cells(2, cl.Column), 2)
                        d = UCase(cl)
                        If r = 3 Then
                            r = r
                        End If
                        If d = 2 Then
                            r = r
                        End If
                        Select Case d
                            Case "2"
                                If dd = 6 Then
                                    With cl
                                        .Interior.ColorIndex = 1 '‘ sfondo 1 nero
                                        .Font.ColorIndex = 2 '‘carattere 2 bianco  :scratch: 
                                        .Font.Bold = True
                                        .Borders.LineStyle = xlContinuous
                                        .Borders.Weight = xlHairline    '‘ bordo tratteggiato
                                    End With
                                End If
                            Case "X"
                                With cl
                                    .Interior.ColorIndex = 6
                                    .Font.Bold = True
                                    .Borders.LineStyle = xlContinuous
                                    .Borders.Weight = xlThick
                                End With
                            Case "LL"
                                If dd <= 5 Then
                                    With cl
                                        .Interior.ColorIndex = 33
                                        .Font.Bold = True
                                        .Borders.LineStyle = xlContinuous
                                        .Borders.Weight = xlMedium
                                    End With
                                End If
                            Case "RI"
                                If dd <= 5 Then
                                    With cl
                                        .Interior.ColorIndex = 3
                                        .Font.Bold = True
                                        .Borders.LineStyle = xlContinuous
                                        .Borders.Weight = xlMedium
                                    End With
                                End If
                        End Select
                    1 Next cl
                    End Sub

                    ecco il gif del funzionamento

                    https://recordit.co/o9SEIrd5or

                    Ciao By Sal (8-D

                    Ciao By Sal (8-)
                    se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                  • raimearaimea
                    Partecipante
                      Post totali: 46

                      ciao

                      ancora ko

                      (in realta’ io non ho visto modif. nell ultima macro rispetto alla precedente)

                      comunque sto incrementando le 8 condizioni

                      ma quando metto :

                      —————————————————————–

                      ‘—–5 t 20 lun_ven ——————————————–

                      Case “2”

                      If dd <= 5 Then  ‘lun ven

                      With cl

                      .Interior.ColorIndex = 1 ‘ sfondo 1 nero

                      .Font.ColorIndex = 2 ‘carattere 2 bianco

                      .Font.Bold = True

                      .Borders.LineStyle = xlContinuous

                      .Borders.Weight = xlHairline   ‘ bordo tratteggiato

                      End With

                      End If

                      ———————————————

                      sia con che senza virgoletto

                      non evidenzia

                       

                      ciao

                       

                       

                       

                       

                      • Questa risposta è stata modificata 5 mesi, 2 settimane fa da raimearaimea.
                    • BySalvBySalv
                      Amministratore del forum
                        Post totali: 783

                        Ciao Ti allego il file con la modifica

                        http://www.filedropper.com/colorari_1

                        Ciao By Sal (8-D

                        Ciao By Sal (8-)
                        se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                      • raimearaimea
                        Partecipante
                          Post totali: 46

                          ma !!!!

                           

                          il file che mi mandi contiene sempre  la stessa macro. !!

                          contiene solo 4 controlli

                          e funzionana,  come gia scritto soppra.

                          se le aggiungo gli altri controlli NON va con tutti !

                           

                          NON FUNZIONA quando aggiungo tutti gli 8 controlli

                          questo il file gia riportato prima  con tutti i controlli che dovrebbe fare

                          https://www.dropbox.com/s/kapl26vv8hteouw/Colora_RI.rar?dl=0

                           

                          se non ti e possibile verificarli tutti >> stop

                           

                          ciao

                           

                           

                           

                        • BySalvBySalv
                          Amministratore del forum
                            Post totali: 783

                            Ciao Ecco il file modificato, quando proponi un “Case” esempio “Case 2” basta 1 sola volta e nel “Case” poi inserisci tutte gli “IF..Then..End If” che vuoi.

                            altrimenti quando trova il primo “Case 2” fa sempre e solo quello non passa al secondo a differenza di “IF”

                            il ciclo “Select Case” scorre una sola volta gli elementi trovata l’occorrenza passa subito ad “End Select” e ne guadagna in velocità di esecuzione.

                            ho solo modificato in colore dell’1 dei giorni <=5 in giallo rosso su arancione era poco visibile, nel caso aggiorna tu il colore. ora credo che funzionano tutti, fai sapere. ecco il file http://www.filedropper.com/colorari_2

                            Ciao By Sal (8-D

                            • Questa risposta è stata modificata 5 mesi, 2 settimane fa da BySalvBySalv.

                            Ciao By Sal (8-)
                            se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                          • raimearaimea
                            Partecipante
                              Post totali: 46

                              ciao

                              questa volta ,

                              con queste modifiche ora tutto ok

                               

                              grazie

                               

                              PS   non riesco a mettere [risolto]  nel titolo  :cry:

                               

                          Visualizzazione 11 filoni di risposte
                          • Devi essere connesso per rispondere a questo topic.