Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

colorare righe con stessa lettera iniziale

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

colorare righe con stessa lettera iniziale

Postdi raimea » 03/11/10 07:00

vorrei trovare una macro che mi colori dello stesso colore
le righe ( squadre di calcio), che iniziano con la stessa lettera.

il colore cambia al cambiare della lettera iniziale.

naturalmente l'elenco e' in continuo cambiamento perche' vengono
aggiunte nuove squadre, che gia sistemo in ordine alfabetico con una macro.

nel file allegato per capire meglio cosa mi serve, le righe le ho colorate manualmente.

non ha importanza il colore vanno bene tutti purche vari, al variare della prima lettera.
ringrazio

http://www.megaupload.com/?d=EHT9TFCG
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1099
Iscritto il: 11/02/10 07:33
Località: lago

Sponsor
 

Re: colorare righe con stessa lettera iniziale

Postdi maxmula » 03/11/10 17:03

Innanzitutto ti serve una tabella dei colori da applicare, fatta in modo che la colonna di sinistra contenga le iniziali delle squadre (da A a Z, IN ORDINE ALFABETICO), e quella di fianco sia colorata col colore che vuoi applicare.

Poi prova questo, facendo i necessari aggiustamenti per applicare il colore alle celle che ti interessano (R_INIZIO, C_INIZIO, C_FINE) nonché per puntare correttamente la tabella dei colori.

Codice: Seleziona tutto
Sub CAMBIA_COLORE()
   
    'NEL RANGE B4:D7 CI SONO LE VOCI DA COLORARE
   
    'NEL RANGE L4:M29 C'è LA TABELLA DEI COLORI (LETTERA-COLORE)
    'LE CELLE IN COLONNA M SONO COLORATE COL COLORE CHE SI VUOLE ASSEGNARE ALLE CORRISPONDENTI RIGHE
    'DELAL TABELLA-VOCI
   
    R_INIZIO = 4        'PRIMA  RIGA DELLA TABELLA VOCI
    C_INIZIO = 2        'PRIMA  COL.  "       "      "
    C_FINE = 4          'ULTIMA  "    "       "      "
   
    TAB_R_INIZIO = 4    'PRIMA RIGA DELLA TABELLA COLORI
    TAB_C_INIZIO = 12   'PRIMA COL.   "      "      "
   
   
    R = R_INIZIO
    V = Cells(R, C_INIZIO).Value
    While V <> ""
        ASC_INIZIALE = Asc(UCase(Left(V, 1)))
        R_COLORE = TAB_R_INIZIO + ASC_INIZIALE - 65     '65 è IL CODICE ASCII DEL CARATTERE "A"
        COLORE = Cells(R_COLORE, TAB_C_INIZIO + 1).Interior.Color
       
        For Q = C_INIZIO To C_FINE
            Cells(R, Q).Interior.Color = COLORE
        Next
        R = R + 1
        V = Cells(R, C_INIZIO).Value
    Wend
   
End Sub


Volendo risparmiare spazio, puoi colorare le medesime celle che contengono le iniziali, dovrai però modificare l'assegnazione della variavile COLORE in questo modo:
Codice: Seleziona tutto
 COLORE = Cells(R_COLORE, TAB_C_INIZIO).Interior.Color



Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: colorare righe con stessa lettera iniziale

Postdi raimea » 03/11/10 20:03

mmm
ho provato ma si inchioda.....

Codice: Seleziona tutto
Sub squadralfbt()

    Range("E7:F308").Select
    Selection.Sort Key1:=Range("E7"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("D3").Select
   
   
    'NEL RANGE E7:f1000 CI SONO LE VOCI DA COLORARE
   
    'NEL RANGE a7:b42 C'è LA TABELLA DEI COLORI (LETTERA-COLORE)
    'LE CELLE IN COLONNA b SONO COLORATE COL COLORE CHE SI VUOLE ASSEGNARE ALLE CORRISPONDENTI RIGHE
    'DELAL TABELLA-VOCI
   
    R_INIZIO = 7        'PRIMA  RIGA DELLA TABELLA VOCI
    C_INIZIO = 5        'PRIMA  COL.  "       "      "
    C_FINE = 6          'ULTIMA  "    "       "      "
   
    TAB_R_INIZIO = 7    'PRIMA RIGA DELLA TABELLA COLORI
    TAB_C_INIZIO = 1    'PRIMA COL.   "      "      "
   
   
    R = R_INIZIO
    V = Cells(R, C_INIZIO).Value
    While V <> ""
        ASC_INIZIALE = Asc(UCase(Left(V, 1)))
        R_COLORE = TAB_R_INIZIO + ASC_INIZIALE - 65     '65 è IL CODICE ASCII DEL CARATTERE "A"
        COLORE = Cells(R_COLORE, TAB_C_INIZIO + 1).Interior.Color   <<< si blocca qui....
       
        For Q = C_INIZIO To C_FINE
            Cells(R, Q).Interior.Color = COLORE
        Next
        R = R + 1
        V = Cells(R, C_INIZIO).Value
    Wend
   
End Sub


le squadre sono nel foglio "squadr-alfab"

allego file x vedere se come ho impostato e' ok

http://www.megaupload.com/?d=XVNZU8Z1
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1099
Iscritto il: 11/02/10 07:33
Località: lago

Re: colorare righe con stessa lettera iniziale

Postdi Anthony47 » 03/11/10 22:40

Ma invece di usare tanti colori, come da tua richiesta e soluzione di max, non ti basta colorare ogni blocco di squadre alternativamente col colore 1 (es quelle che cominciano per A), poi col colore 2 (quelle che cominciano con altra lettera), e cosi' continuando alternando colore 1 e colore 2? Come da immagine:
Immagine

Uploaded with ImageShack.us

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: colorare righe con stessa lettera iniziale

Postdi raimea » 03/11/10 22:51

certo :undecided:
ma che macro ci scrivo ?
;)
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1099
Iscritto il: 11/02/10 07:33
Località: lago

Re: colorare righe con stessa lettera iniziale

Postdi Anthony47 » 03/11/10 23:13

Selezioni E2:F250 (o l' area in cui certamente ci staranno tutte le squadre), poi applichi una formattazione condizionale:
-1° Condizione. la formula e'
-1° formula: =E(RESTO(SOMMA(--(SINISTRA($E$2:$E2;1)<>SINISTRA($E$1:$E1;1)));2)=0;$E2<>"")
-applichi il formato (Motivo) che ti piace
-2° Condizione: la formula e'
-2° formula: =E(RESTO(SOMMA(--(SINISTRA($E$2:$E2;1)<>SINISTRA($E$1:$E1;1)));2)=1;$E2<>"")
-applichi il secondo formato che ti piace

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: colorare righe con stessa lettera iniziale

Postdi raimea » 03/11/10 23:46

okk ;)
funziona grazie
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1099
Iscritto il: 11/02/10 07:33
Località: lago

colorare righe con stessa lettera iniziale

Postdi raimea » 22/08/12 06:07

ciao
volevo sapere se /come poter modificare una macro.
tramite questa macro coloro una riga al variare della prima lettera dell'alfabeto

Codice: Seleziona tutto
sub primalettera ()
With Foglio36
For I = 2 To .Cells(Rows.Count, "a").End(xlUp).Row  ' <<< 2 e' il numero della riga
    If UCase(Left(.Cells(I, "a"), 1)) <> UCase(Left(.Cells(I - 1, "a"), 1)) Then
        .Cells(I, "a").Resize(1, 2).Font.ColorIndex = 2        'Bianco
        .Cells(I, "a").Resize(1, 2).Interior.ColorIndex = 1    'Black
    End If
Next I
End With

end sub


vorrei fare lo stesso controllo e stesso procedura
ma anche al variare della 2 lettera contenuta nel nome
ES
casa << evidenziare
casina
casetta
casotto
chiesa << evidenziare

con la macro sopra ora verrebbe evidenziate solo la righa con scritto casa
ora vorrei evidenziare anche la riga con scritto chiesa
grazie ciao
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1099
Iscritto il: 11/02/10 07:33
Località: lago

Re: colorare righe con stessa lettera iniziale

Postdi raimea » 22/08/12 17:20

:D evvaii... prova e riprova....
ho trovato dove indicare quante lettere controllare
riporto la macro:
Codice: Seleziona tutto
sub primalettera ()
With Foglio36
For I = 2 To .Cells(Rows.Count, "a").End(xlUp).Row  ' <<< 2 e' il numero della riga
    If UCase(Left(.Cells(I, "a"), 2)) <> UCase(Left(.Cells(I - 1, "a"), 2)) Then '<<< indichi quante lettr da sxadx control/ evidenziare
        .Cells(I, "a").Resize(1, 2).Font.ColorIndex = 2        'Bianco
        .Cells(I, "a").Resize(1, 2).Interior.ColorIndex = 1    'Black
    End If
Next I
End With

end sub

alla prossima
ciao a tutti 8)
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1099
Iscritto il: 11/02/10 07:33
Località: lago

Re: colorare righe con stessa lettera iniziale

Postdi Flash30005 » 22/08/12 17:32

Benone!!!

Fai progressi! ;)

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "colorare righe con stessa lettera iniziale":


Chi c’è in linea

Visitano il forum: tex willer e 9 ospiti