Macro cella uguale



  • Macro cella uguale
    di marco (utente non iscritto) data: 19/05/2014 14:33:59

    Nel foglio1 dovrei mettere una macro che ad ogni cella con la scritta ITALIA mi applichi lo sfondo rosso e il colore del carattere giallo. Grazie



  • di totygno71 (utente non iscritto) data: 19/05/2014 14:46:31

    Serve proprio una macro oppure va bene una formattazione condizionale



  • di marco (utente non iscritto) data: 19/05/2014 14:48:02

    Una macro grazie



  • di totygno71 (utente non iscritto) data: 19/05/2014 15:30:01

    gent.le marco

    ti conviene essere più preciso o postare un qualcosa di verosimile...



  • di Mister_x (utente non iscritto) data: 19/05/2014 15:34:10

    ciao

    sub() richiesta per questo lavoro excel 2003

    ciao
     
    Option Explicit
    Sub colora()
    Dim Tcelle As Range
    Dim nRighe As Long, Ncol As Long
    nRighe = Cells(Rows.Count, 1).End(xlUp).Row
    Ncol = Cells(1, Columns.Count).End(xlToLeft).Column
    Set Tcelle = Range(Cells(1, 1), Cells(nRighe, Ncol))
    With Tcelle
        .Interior.ColorIndex = xlNone
        .Font.ColorIndex = 0
    End With
    For Each cella In Tcelle
     If cella.Value = "ITALIA" Then
       With cella
         .Interior.ColorIndex = 3
         .Font.ColorIndex = 6
       End With
     End If
    Next
    Set Tcelle = Nothing
    End Sub
    






  • di marco (utente non iscritto) data: 20/05/2014 07:12:25

    Grazie Mister X per la risposta. Ho provato la tua macro ma mi sa che funziona solo nella cella A1 mentre a me serve su tutto il foglio. Poi se scrivo italia in minuscolo non mi applica lo sfondo mentre a me serve lo stesso; praticamente tutte le celle che contengono la parola ITALIA vanno formattate ad esempio anche ITALIA-90. Grazie



  • di lepat (utente non iscritto) data: 20/05/2014 09:42:13

    prova così
     
    Option Explicit
    Option Compare Text
    Sub colora()
    Dim Tcelle As Range
    Dim nRighe As Long, Ncol As Long
    nRighe = Cells(Rows.Count, 1).End(xlUp).Row
    Ncol = Cells(1, Columns.Count).End(xlToLeft).Column
    Set Tcelle = Range(Cells(1, 1), Cells(nRighe, Ncol))
    With Tcelle
        .Interior.ColorIndex = xlNone
        .Font.ColorIndex = 0
    End With
    For Each cella In Tcelle
     If instr(cella.Value, "ITALIA") > 0 Then
       With cella
         .Interior.ColorIndex = 3
         .Font.ColorIndex = 6
       End With
     End If
    Next
    Set Tcelle = Nothing
    End Sub



  • di Mister_x (utente non iscritto) data: 20/05/2014 09:52:28

    ciao

    tu hai scritto
    ((che ad ogni cella con la scritta ITALIA ))
    non hai specificato che la frase poteva essere piu' lunga contemplando la parola Italia scritta in qualsiasi modo

    comunque la modifica sotanziale e questa, da sostituire con tutta quella di prima

    ciao



     
    Option Explicit
    Sub colora()
    Dim Tcelle As Range, cella As Variant
    Set Tcelle = Range("A1:Z1000")
    With Tcelle
        .Interior.ColorIndex = xlNone
        .Font.ColorIndex = 0
    End With
    For Each cella In Tcelle
     If UCase(cella.Value) Like "*ITALIA*" Then
       With cella
         .Interior.ColorIndex = 3
         .Font.ColorIndex = 6
       End With
     End If
    Next
    Set Tcelle = Nothing
    End Sub






  • di marco (utente non iscritto) data: 20/05/2014 10:36:06

    Ok, perfetto. Grazie mille



  • di nichicanta (utente non iscritto) data: 20/05/2014 11:05:34

    Buongiorno a tutti, scusatemi se mi intrometto in una discussione di un altro amico del forum, poichè il codice mi interessa per una mia esigenza (simile), chiedevo a Mister_x questo:
    al posto di un range definito come hai indicato nel tuo ultimo codice ( Range("A1:Z1000")
    è possibile effettuare la ricerca in una zona che contiene solo datie non range definito?
    Grazie per l'aiuto e complimenti ancora per quello che fate per tutti noi.



  • di lepat (utente non iscritto) data: 20/05/2014 13:10:44

    Set Tcelle = activesheet.usedrange



  • di nichicanta (utente non iscritto) data: 20/05/2014 13:31:39

    Grazie lepat, buona giornata e buon lavoro.