problema formatare celule prin VBA

89 viewsIntrebari
0

Salutare tuturor,
Am o problema si nu o pot rezolva:
Am un tabel (spre exemplu) cu 3 coloane si un numar variabil de linii:
– in Coloana1, se gasesc valori, pe numar diferit de linii, dar ce sunt ordonate (alfabetic), adica am pe primele 60 de linii valoarea ”001”, urmatoarele 35 linii cu valoarea ”002”, s.a.m.d. ….
– in Coloana2, se gasesc aceleasi tipuri de valori (TEXT), insa ce nu sunt in ordine. Adica, se pot intalni, pe aceeasi linie, ”combinatii” intre prima si a doua coloana dupa cum urmeaza:
– ”001” ”001” ””
– ”001” ”002” ”x”
– ”001” ”003” ”x”
– ”001” ”001” ””
– ”001” ”004” ”x”
– ”002” ”001” ”x”
– ”002” ”003” ”x”
– ”002” ”001” ”x”
– ”003” ”002” ”x”
– ”003” ”003” ””
– in Coloana3, se gasesc valori (TEXT), doar in cazul in care sunt gasite diferente, pe aceeasi linie, intre valorile dintre coloanele 1 si 2, in rest, celulele respective nu contin absolut nimic. Cu alte cuvinte, ”x”-ul de pe coloana 3 atrage atentia ca s-au gasit diferente intre primele doua coloane;
Acum, ceea ce as vrea sa obtin:
– celulele de pe Coloana3, in cazul in care sunt marcate cu ”x”, deci, au fost diferente intre valorile dintre Coloana1 si Coloana2, sa fie colorate pe fond;
– pentru toate diferentele de valoare, in care valoarea de pe Coloana1 este aceeasi, in functie de numarul de combinatii de valoare pe Coloana2, coloana3 sa aiba aceeasi culoare, indiferent de numarul liniei, ADICA:
– daca, in conditiile in care celula de pe valoarea de pe Coloana1, contine valoarea ”001”, iar prima diferenta de valoare de pe Coloana2 a fost ”003”, atunci, pentru orice combinatie de valori ”001”-”003”, Coloanei 3 sa ii fie atribuita culoarea GALBENA, indiferent de numarul liniei din tabel ! Pentru urmatoarea combinatie de valori (”001”-”002”), Coloanei 3 sa ii fie atribuita urmatoarea culoare VERDE, etc.
– atunci cand valoarea de pe Coloana1 se schimba, iar in tabel sunt gasite diferente in raport cu valorile de pe Coloana2, sa se reia folosirea acelui set de culori: pentru prima combinatie – prima culoare (galbena), pentru a 2-a combinatie – a 2-a culoare (verde), etc.
– eventual, culorile ce vor fi folosite, sa fi fost deja prestabilite ori salvate intr-o lista, etc.
– exista posibilitatea ca, intre valorile de pe Coloana1 si Coloana2, sa nu fie gasite diferente de valoare, deci pe Coloana3 nu va fi regasit ”x”-ul, si implicit, nicio culoare;
– Numarul maxim de combinatii de valoare intre primele doua coloane este variabil si totodata limitat la maxim de 10 (sa zicem). Deci nu am nevoie decat maxim 10 culori pentru coloana a 3-a.
Exemplu in imaginea atasata!
Am incercat prima data sa fac procedura asta in VBA (pt ca as mai fi adaugat si alte chestii), insa ”nu mi-a iesit de nicio culoare”.
Am incercat cu array, list, s.a., fara niciun rezultat!
Pe de alta parte, am primit o solutie din partea unui membru altui forum (si pt care ii multumesc), iar acea e sa scriu pt fiecare combinatie o conditie (Conditional Formating), insa, asta nu ma ajuta deloc, avand in vedere ca tabelul meu contine peste 3000 de linii, si diferite combinatii… ar trebui sa fac o conditie pentru fiecare combinatie, ceea ce ar trebui sa scriu peste 1000 de combinatii …. Nu ma ajuta!
As prefera o solutie prin VBA (de asemenea, ma ajuta sa introduc si alte functii … separator de pagina, controlul asupra fondurilor de culoare deja existente, etc.) !
Va rog, dati-mi un sfat cum sa trec peste asta !
P.S. – sper ca m-am facut inteles.
Va multumesc!

Answered question
0

Salut,

Nu am citit toata “chestia” scrisa, dar…
Cerinta ta depaseste cu mult…. ajutorul dat pe un forum.
Ia in considerare sa platesti pe cineva sa te ajute cu un cod VBA.

Oricum…
Chestia cu “x” in coloana C se poate realiza cu o simpla formula…

In ce priveste chestia cu conditional formating, cine spune ca trebuie sa scrii mii de conditii???? Mai gandeste-te!!!

Aici spuneai ca sunt maxim 10 combinatii…
“– Numarul maxim de combinatii de valoare intre primele doua coloane este variabil si totodata limitat la maxim de 10 (sa zicem). Deci nu am nevoie decat maxim 10 culori pentru coloana a 3-a.”

“Acum, ceea ce as vrea sa obtin:
– celulele de pe Coloana3, in cazul in care sunt marcate cu ”x”, deci, au fost diferente intre valorile dintre Coloana1 si Coloana2, sa fie colorate pe fond;”

Ce inseamna colorate pe fond? Adica celula sa fie colorata?

Changed status to publish