Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

for ?

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

for ?

Postdi giorgioa » 21/05/12 21:47

Salve,
ho un problema in excel:
creato una macro in cui in colonna da b9 a b201 ho assegnato dei colori in base a valori esistenti;
per non prolungarmi devo fare altrettanto in altre 9 colonne in G9, M9, S9, Y9, AF9, AP9, AU9, AW9, BB9;
riportando a tutte le stesse e identiche richieste di colore.
Se faccio a tutte le lettere citate la stessa cosa appesantisco enormemente la macro.
Chiedo si potrebbero usare delle variabili con for? e naturalmente come si fa.
Saluti
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Sponsor
 

Re: for ?

Postdi Flash30005 » 21/05/12 22:50

La macro non si "appesantisce" eventualmente impiega più tempo visto che deve fare 9 volte lo stesso lavoro
Non so con quale criterio colori le celle in B ma puoi usare il ciclo For... next sapendo che puoi rendere regolare l'intervallo
B = 2, G = 7, M = 13, S = 19 etc
Escluso B hai un "passo" pari a 6 quindi
Il ciclo For potrebbe essere così impostato
Codice: Seleziona tutto
Sub Colora()
For I = 1 To 54 Step 6
Col = I
If I = 1 Then Col = 2
Cells(9, Col).Interior.ColorIndex = 3  'colore appropriato come hai fatto per la colonna B
Next I
End Sub


Chiaramente lo spostamento di riga deve avvenire come avviene per la colonna B quindi in cell(9... inserirai la varibile "riga"

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-

Re: for ?

Postdi giorgioa » 22/05/12 07:37

Salve e buongiorno,
ho provato la tua macro e mi colora tutte le celle di 6 in 6 di colore rosso senza distinguere i valori.

la macro creata da me ho usato la formattazione condizionata.
la macro distingue i valori se 0=giallo; se 1=verde; fino al 7;(i colori sono relativi purchè leggibile il valore
in cella);
poi deve tenere conto di ciò che trova in colonna cioè dalla cella 9 alla cella 201 o comunque
di ciò che trova in colonna da rigo 9 in giù e non sopra perchè ho altri valori che non c'entrano con quelli di sotto.
Saluti
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: for ?

Postdi Flash30005 » 22/05/12 07:57

giorgioa ha scritto:la macro creata da me ho usato la formattazione condizionata

:?: :undecided:
Tu hai parlato di macro che ti colorava la colonna B e io l'ho imlementata per colorarti nella stessa maniera (dando le stesse condizioni che avevi nella tua) le colonne da te citate.

Ma se mi dici che, nella colonna B, hai fatto una formattazione condizionale (non c'entra nulla con la macro) allora devi copiare la formattazione della colonna B e "incollarla" nelle colonne che ti occorrono.

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-

Re: for ?

Postdi giorgioa » 22/05/12 10:27

Salve
a volte il pensiero va più avanti di quel che sta dicendo. Io so che tu sai quel che io penso ma... :lol:

In sostanza vorrei che questa macro la posso far valere anche per la colonna
B, G, M, ecc. ecc.

Poiche ogni volta che chiudo il programma non intendo salvare nulla, alla riapertura
lancio ogni volta la macro.
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: for ?

Postdi Flash30005 » 22/05/12 10:55

Sei sicuro che le colonne interessate siano B, G, M, S, Y, AF, AP, AU, AW, BB?
perché le trovo molto sfalsate :roll:

Confermami perché non ha senso averle distanziate in questa maniera.
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-

Re: for ?

Postdi Flash30005 » 22/05/12 11:20

Se, le colonne, sono come hai detto può andar bene questa macro
Codice: Seleziona tutto
Sub ColoraV()
For I = 1 To 10
Select Case I
Case 1
    Col = 2
Case 2
    Col = 7
Case 3
    Col = 13
Case 4
    Col = 19
Case 5
    Col = 25
Case 6
    Col = 32
Case 7
    Col = 42
Case 8
    Col = 47
Case 9
    Col = 49
Case 10
    Col = 54
Case Else
    GoTo SaltaI
End Select
For RR = 9 To 201
    Select Case Cells(RR, Col).Value
    Case 0
        NCol = 6
    Case 1
        NCol = 4
    Case 2
        NCol = 3
    Case 3
        NCol = 44
    Case 4
        NCol = 7
    Case 5
        NCol = 41
    Case 6
        NCol = 35
    Case 7
        NCol = 38
    Case Else
        NCol = xlNone
    End Select
    Cells(RR, Col).Interior.ColorIndex = NCol
Next RR
SaltaI:
Next I
End Sub


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-

Re: for ?

Postdi giorgioa » 22/05/12 15:42

Salve Flash,
La macro va benissimo anzi mi ha permesso di aggiungere anche altre 2 colonne,
ho dovuto cambiare il case NCOL = 6 con 2 perchè mi dava le colonne tutte gialle
Funziona perfettamente.
Tutto OK
E come sempre grazie, sei :diavolo:
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: for ?

Postdi Flash30005 » 22/05/12 16:10

Non dovevi sostituire Ncol = 6 (con Ncol = 1) perché stai colorando di bianco la cella
Se si colorava tutto di giallo significa che avevi celle vuote non considerate e assumevano il valore zero
quindi per evitare puoi aggiungere tre righe codice come riportato in questa macro
Codice: Seleziona tutto
Sub ColoraV()
For I = 1 To 10
Select Case I
Case 1
    Col = 2
Case 2
    Col = 7
Case 3
    Col = 13
Case 4
    Col = 19
Case 5
    Col = 25
Case 6
    Col = 32
Case 7
    Col = 42
Case 8
    Col = 47
Case 9
    Col = 49
Case 10
    Col = 54
Case Else
    GoTo SaltaI
End Select
For RR = 9 To 201
NCol = xlNone   '<<<<<<<<<<<<< agginta 1
If Cells(RR, Col).Value <> "" Then  '<<<<<<<< aggiunta 2
    Select Case Cells(RR, Col).Value
    Case 0
        NCol = 6
    Case 1
        NCol = 4
    Case 2
        NCol = 3
    Case 3
        NCol = 44
    Case 4
        NCol = 7
    Case 5
        NCol = 41
    Case 6
        NCol = 35
    Case 7
        NCol = 38
    Case Else
        NCol = xlNone
    End Select
End If  '<<<<<<<<<<<<<<<<<<<< aggiunta 3
    Cells(RR, Col).Interior.ColorIndex = NCol
Next RR
SaltaI:
Next I
End Sub


Spero solo che non ci siano formule

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

Chi c’è in linea

Visitano il forum: Nessuno e 25 ospiti