Pagina 1 di 2
[risolto]macro in excel
Inviato: mar 05 mag 2009 2:45 pm
da el_pampa
Ciao a tutti sono nuovo del forum, sono uno studente di ing.biomedica e devo inserire una piccola macro per abbellire un minimo alcuni file di output..
la macro in questione dovrebbe colorare le celle dell'output in modo alternato in base all'indice, mi spiego meglio io ho un file di questo tipo:
Codice: Seleziona tutto
21 testo testo testo
21 testo testo testo
21 testo testo testo
21 testo testo testo
15 testo testo testo
15 testo testo testo
15 testo testo testo
...
vorrei ad esempio che le righe con indice 21 diventassero rosse mentre quelle con indice 15 diventassero gialle e via così in modo alternato per rendere il tutto più leggibile..
ah gli indici non sono in ordine!
grazie a tutti

Inviato: mar 05 mag 2009 3:05 pm
da isex
Potresti usare la formattazione condizionale in ... Formato --> Formattazione condizionale ma al massimo puoi settare solo 3 condizioni ... se fossero abbastanza puoi iniziare da qui.
Inviato: mar 05 mag 2009 3:47 pm
da el_pampa
ho provato ma a me non serve usare le condizioni di minore o maggiore vorrei solo colorare in modo alternato in base all'indice..
magari esiste qualche funzione ma non saprei..
non sono molto pratico di excel scusate

Inviato: mar 05 mag 2009 4:53 pm
da cosimocs
Vuoi un bottone per ogni colore o è già
stabilito che al 21 corrisponde il rosso ecc. ?
Inviato: mar 05 mag 2009 5:10 pm
da el_pampa
nono io vorrei solo applicare 2 colori alternati ad ogni gruppo con lo stesso indice per rendere migliore la leggibilità, spero di esser stato chiaro..
Inviato: mar 05 mag 2009 6:11 pm
da cosimocs
Mi dispiace ma non ci riesco forse fai prima
a selezionare le celle ed a colorarle con l'apposito
tasto.
Inviato: mar 05 mag 2009 10:39 pm
da isex
el_pampa ha scritto:ho provato ma a me non serve usare le condizioni di minore o maggiore vorrei solo colorare in modo alternato in base all'indice..
magari esiste qualche funzione ma non saprei..
non sono molto pratico di excel scusate

Puoi usare sempre la formattazione condizionata aggiungendo una colonna che terrai nascosta.
Su quella colonna metti ad esempio un 1 una volta si ed una volta no.
La colonna che vuoi colorare fai in modo che la formattazione condizionata si riferisca alla cella accanto che se 1 sarà di un colore, se zero di un altro e così via.
Se non ci riesci ti mando un file excel.
Inviato: mar 05 mag 2009 10:55 pm
da el_pampa
isex ha scritto:el_pampa ha scritto:ho provato ma a me non serve usare le condizioni di minore o maggiore vorrei solo colorare in modo alternato in base all'indice..
magari esiste qualche funzione ma non saprei..
non sono molto pratico di excel scusate

Puoi usare sempre la formattazione condizionata aggiungendo una colonna che terrai nascosta.
Su quella colonna metti ad esempio un 1 una volta si ed una volta no.
La colonna che vuoi colorare fai in modo che la formattazione condizionata si riferisca alla cella accanto che se 1 sarà di un colore, se zero di un altro e così via.
Se non ci riesci ti mando un file excel.
ho capito cosa intendi ci avevo pensato purtroppo per come creo l'output ogni gruppo con lo stesso indice non sa dove finirà in quanto l'ordinamento avviene a gruppi già creati..
Inviato: mer 06 mag 2009 6:29 am
da cosimocs
Programmare in vba per excel è molto più
complicato perchè a differenza ad es. di access
gli eventi sono meno controllabili, nel tuo caso
quando la " macro " dovrebbe colorare il contenuto
delle celle, cioè al verificarsi di quale evento ?
in base a quale criterio omogeneo e predefinito ?
io posso farti colorare le celle del colore che vuoi
tu ma prima bisogna selezionarle, quale dovrebbe
essere la logica, per tutte le celle che contengono 21
colora di rosso le cella da x1 ad x20 ?
Inviato: mer 06 mag 2009 7:01 am
da isex
Dovresti essere più preciso. Vuoi l'indice 20 rosso ??
Puoi applicare una formula alla formattazione condizionale ma come ti dicevo ne hai solo 3 di condizioni / formule da poter applicare.
Inviato: mer 06 mag 2009 9:30 am
da el_pampa
scusate per la confusione.. io vorrei con un bottone unico poter applicare una colorazione alternata ad ogni gruppo(per gruppo intendo una serie di righe consecutive con il medesimo indice), io a priori non so se avrò prima il 20 o l'11 e non posso selezionare manualmente le righe perchè il numero di record di ogni gruppo è variabile di volta in volta.
l'unica logica che mi è venuta in mente è quella di cambiare colore al cambio dell'indice usando una sorta di flag per "ricordare" il colore precedente e usare di conseguenza l'altro..
i gruppi vengono ordinati in base ad uno score indipendente dall'indice, il tutto è il frutto di uno script su cui sto facendo la tesi, ora questa macro dovrebbe solamente rendere più leggibile al fruitore dei risultati la differenza fra i vari gruppi.
grazie per il vostro aiuto
p.s. ditemi se è una cosa troppo complicata che cerco altri modi per migliorare la leggibilità
Inviato: mer 06 mag 2009 10:48 am
da isex
Ok. Ma gli indici da colorare saranno 10,20,30,100 ? Il colore diverso deve andare con l'indice diverso ? Dunque supponiamo che tu hai 30 indici, devi mettere 30 colori diversi ? Basterebbero due colori alternati ad esempio rosso e verde indipendente dal numero di indice ?
Inviato: mer 06 mag 2009 11:21 am
da el_pampa
isex ha scritto:Ok. Ma gli indici da colorare saranno 10,20,30,100 ? Il colore diverso deve andare con l'indice diverso ? Dunque supponiamo che tu hai 30 indici, devi mettere 30 colori diversi ? Basterebbero due colori alternati ad esempio rosso e verde indipendente dal numero di indice ?
gli indici saranno 30 ma mi basta che siano due colori alternati, si potrebbe fare anche ognuno un colore diverso, l'importante è che siano colori ben diversi fra loro dimmi tu qual'è la cosa più facilmente attuabile..
p.s. si immagino che sia più semplice mettere 30 colori diversi così non è necessario un ulteriore controllo basta dare ad ogni indice una formattazione
Inviato: mer 06 mag 2009 2:19 pm
da cosimocs
Prova a mettere questo codice nell'evento click di un
bottone creato sul tuo foglio.
Per il momento questo colora di rosso tutte le celle che trova sul tuo foglio il cui contenuto sia 21.
Se va bene possiamo farne uno
per ogni colore associato ad un valore, se questi non
sono fissi si possono mettere in altrettante celle ed associare
il colore al valore della cella .
Inoltre non ho capito cosa deve fare la routine una volta
che trova il codice ad es. 21 quali e quante celle deve colorare ?
Dim x As Long
x = 21 ' celle da cercare
With Worksheets(1).Range("a1:Z500")
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Font.Color = RGB(255, 0, 0)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
Inviato: mer 06 mag 2009 4:16 pm
da el_pampa
cosimocs ha scritto:
Inoltre non ho capito cosa deve fare la routine una volta
che trova il codice ad es. 21 quali e quante celle deve colorare ?
deve colorare tutte le righe con quel codice o indice, gli elementi della colonna A insomma