Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #51866 Score: 0 | Risposta

    Frasubb
    Partecipante
      1 pt

      Ciao a tutti,

      cortesemente avrei bisogno di una macro, che poi assocerò ad un pulsante, che mi evidenzi precisamente le lettere EF ed un'altra che evidenzi CF. Per evidenziare intendo colorare di giallo il testo oppure, se più semplice, le intere celle che lo contengono.

      Detto testo è unicamente presente nelle celle della colonna E; da precisare che nelle celle che lo contengono, ci sono scritte anche altre cose, per spiegarmi meglio indico un esempio: "872 EF" oppure "D20 CF". 

      Faccio notare, non so se importante, che il primo gruppo da tre caratteri è variabile quindi diverso ogni cella, la cosa che rimane fissa è CF oppure EF.

      E' possibile tutto ciò ?

      Grazie mille in anticipo a chi vorrà aiutarmi !!!  

      #51870 Score: 0 | Risposta

      gianfranco55
      Partecipante
        91 pts

        ciao

        parte dalla riga 4 cambia se è un'altra

         

        Sub Trova_testo_e_Colora_Stringa()
            Dim stringa As String
            Dim i As Long
            Dim uR As Long
            uR = Cells(Rows.Count, "E").End(xlUp).Row
            For i = 4 To uR
                stringa = Range("E" & i)
                trova = Right(stringa, 2) 'trovo le due ultime lettere
                If trova = "CF" Or trova = "EF" Then
              Range("E" & i).Font.ColorIndex = 6
                 End If
            Next
        End Sub

        #51871 Score: 0 | Risposta

        alexps81
        Moderatore
          58 pts

          Ciao, forse può bastarti anche la Formattazione Condizionale. Poi se invece vuoi legarlo ad un pulsante che lo premi quando ne hai bisogno, quello è un altro discorso. Se invece vuoi utilizzare la F.C. puoi provare a:

          1) seleziona tutto il range di celle che t'interessa (anche l'intera colonna E se è necessario)

          2) vai in Formattazione Condizionale, Nuova Regola, Utilizza una formula...., ne campo della formula ci scrivi: =SE(O(NON(VAL.ERRORE(RICERCA("CF";E1)));NON(VAL.ERRORE(RICERCA("EF";E1))));1;0)

          3) in FORMATO scegli RIEMPIMENTO e poi il colore Giallo

          #51876 Score: 0 | Risposta

          Frasubb
          Partecipante
            1 pt

            Grazie Gianfranco, perfetto e grazie mille.

            Provando la tua macro, però, mi è sorta una conseguente esigenza, sempre se possibile e per favore. Mi spiego:

            vorrei inserire nella cella T51 la somma delle cifre (scritte in colonna "L") relative all'evidenziazione EF, ma condizione che nella medesima riga, colonna "M", vi sia scritto "Si".

            Nella cella T55 la somma delle cifre (scritte in colonna "L") relative all'evidenziazione CF, ma condizione che nella medesima riga, colonna "M", vi sia scritto "Si".

            Tutto ciò, nella stessa macro che quindi, come già fatto, evidenzi il testo ma poi simultaneamente sommi gli importi con le condizioni sopra riportate.

            Spero di essermi spiegato, nel caso, appena puoi, fammi sapere se non ci sono riuscito.

            Grazie ancora

            #51877 Score: 0 | Risposta

            Frasubb
            Partecipante
              1 pt

              Grazie mille per la tua risposta, ma preferisco l'utilizzo di una macro   

              #51878 Score: 0 | Risposta

              alfrimpa
              Partecipante
                33 pts

                Frasubb ha scritto:

                Spero di essermi spiegato,

                Allega un file di esempio con dati e risultato voluto messo a mano.

                #51886 Score: 0 | Risposta

                Frasubb
                Partecipante
                  1 pt

                  Allego file esempio come richiesto, grazie

                  Allegati:
                  You must be logged in to view attached files.
                  #51892 Score: 0 | Risposta

                  gianfranco55
                  Partecipante
                    91 pts

                    ciao

                    per se stesso basta

                    Range("T51") = Application.WorksheetFunction.SumIfs(Range("L2:L100"), Range("M2:M100"), "SI", Range("E2:E100"), "*" & "EF")

                    Range("T55") = Application.WorksheetFunction.SumIfs(Range("L2:L100"), Range("M2:M100"), "SI", Range("E2:E100"), "*" & "CF")

                    ma tu hai diviso la mia macro in due parti

                    diciamo che andrebbe

                    Sub Evidenzia_CF()
                    
                        Dim stringa As String
                        Dim i As Long
                        Dim uR As Long
                        uR = Cells(Rows.Count, "E").End(xlUp).Row
                        For i = 2 To uR
                            stringa = Range("E" & i)
                            trova = Right(stringa, 2) 'trovo le due ultime lettere
                            If trova = "CF" Then
                          Range("L" & i).Font.ColorIndex = 3
                          Range("L" & i).Font.Bold = True
                          Range("E" & i).Font.ColorIndex = 4
                          Range("E" & i).Font.Bold = True
                             End If
                        Next
                      Range("T55") = Application.WorksheetFunction.SumIfs(Range("L2:L100"), Range("M2:M100"), "SI", Range("E2:E100"), "*" & "CF")
                    End Sub
                    
                    Sub Evidenzia_EF()
                    
                        Dim stringa As String
                        Dim i As Long
                        Dim uR As Long
                        uR = Cells(Rows.Count, "E").End(xlUp).Row
                        For i = 2 To uR
                            stringa = Range("E" & i)
                            trova = Right(stringa, 2) 'trovo le due ultime lettere
                            If trova = "EF" Then
                          Range("L" & i).Font.ColorIndex = 3
                          Range("L" & i).Font.Bold = True
                          Range("E" & i).Font.ColorIndex = 4
                          Range("E" & i).Font.Bold = True
                             End If
                        Next
                    Range("T51") = Application.WorksheetFunction.SumIfs(Range("L2:L100"), Range("M2:M100"), "SI", Range("E2:E100"), "*" & "EF")
                    End Sub

                     

                    #52453 Score: 0 | Risposta

                    LukeReds
                    Partecipante
                      19 pts

                      ciao,

                      se può servire questa sub colora di giallo solo i caratteri CF ed EF ed effetua la somma richiesta

                      Sub ColoraParteTesto()
                      Dim r As Integer, cella As Range, tot As Double
                      For Each cella In Range("E2:E" & Range("E" & Rows.Count).End(xlUp).Row)
                         If Right(cella, 2) = "CF" Or Right(cella, 2) = "EF" Then
                            cella.Characters(Start:=Len(cella) - 1, Length:=2).Font.ColorIndex = 6
                            If cella.Offset(0, 8) = "Si" Then tot = tot + cella.Offset(0, 7)
                         End If
                      Next cella
                      Range("T51") = tot
                      End Sub
                      

                       

                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: Evidenziazione testo
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni: