Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Dupa 20 ani de facultate, am uita...
 Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...
 Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio
 Un nou pericol pt batrani

Ar trebui sa vindem imobiliarele ...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik
 

Excel: problema formatare celule prin VBA

- - - - -
  • Please log in to reply
8 replies to this topic

#1
DannyBOHLEN

DannyBOHLEN

    Junior Member

  • Grup: Members
  • Posts: 56
  • Înscris: 16.11.2008
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, 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”. Posted Image
Am incercat cu array, list, s.a., fara niciun rezultat!
Va rog, dati-mi un sfat cum sa trec peste asta !
P.S. - sper ca m-am facut inteles.
Va Multumesc!

Attached Files



#2
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,039
  • Înscris: 24.02.2006
cauta pe google "excel conditional formatting"

#3
radurus

radurus

    Senior Member

  • Grup: Senior Members
  • Posts: 8,024
  • Înscris: 16.06.2006
If cell from column A is "001" AND cell from column C is "x"  then cell in colmn C has background color "red"
Attached File  Untitled.png   77.81K   12 downloads

Edited by radurus, 28 July 2020 - 19:46.


#4
DannyBOHLEN

DannyBOHLEN

    Junior Member

  • Grup: Members
  • Posts: 56
  • Înscris: 16.11.2008

View Postradurus, on 28 iulie 2020 - 19:45, said:

If cell from column A is "001" AND cell from column C is "x"  then cell in colmn C has background color "red"
Attachment Untitled.png

Nu merge !!!
Pentru mine e foarte important ca toate calculele sa se faca, in primul rand, in raport de coloanele 1 si 2. Coloana 3, cu  semnul X, e doar un ajutor. Plus ca eu am nevoie de o paleta de 10 culori. In raport cu valoarea de pe coloana 1, valoarea de pe coloana 2 poate sa apara pe diferite linii. In cazul in care, la PRIMA DIFERENTA gasita, valoarea coloanei 1 este aceeasi, iar valoarea coloanei 2 este A, atunci valoarea aflata pe coloana 3, indiferent pe ce linie se afla, in speta X-ul, sa aiba aceeasi culoare. Deci, cu alte cuvinte, combinatia ValoareColoana1/ValoareColoana2, indiferent de numarul liniei, sa aiba aceeasi culoare.
Atasat este o captura de ecran.
Mutumesc pentru raspuns!

#5
DannyBOHLEN

DannyBOHLEN

    Junior Member

  • Grup: Members
  • Posts: 56
  • Înscris: 16.11.2008
Hallo tuturor,

stiu ca nimeni nu e obligat sa raspunda la ”provocari” pe forum, ..., dar nimeni nu ma poate ajuta ????

Sunt un pic presat de timp !

Va multumesc !

#6
radurus

radurus

    Senior Member

  • Grup: Senior Members
  • Posts: 8,024
  • Înscris: 16.06.2006
Am incercat eu sa fac conditie combinata conform tutorialelor dar nu functioneaza asa cum scrie acolo.

O cauza cred ca este semnul folosit pentru separarea operatorilor.
Peste tot pe net apare "," dar mie imi da eroare.
Am folosit ";" si nu mai da eroare dar nu functioneaza asa ca in reclama.

Problema cu simbolul separator este ca sistemul meu si la job sunt setate  ca la regional settings ca european unde "," e separator zecimal si "." separator pentru mii.

Majoritatea solutiilor, tutoriale sunt dn limba engleza (americani) cu "." setat ca separator zecimal si toate diferentele ce survin de aici.

Vezi daca te ajuta asta.
https://www.got-it.a...th-2-conditions

Edited by radurus, 03 August 2020 - 12:37.


#7
DannyBOHLEN

DannyBOHLEN

    Junior Member

  • Grup: Members
  • Posts: 56
  • Înscris: 16.11.2008
radurus .....

Am citit.
Din punctul asta de vedere, in momentul asta imi este f clar.
Problema mea e cu totul ALTA!
Pt orice combinatie intre valoarea dintre valoarea dintre coloana 1 si coloana 2, sa am o ”reactie” pe coloana 3. Ca si element (ajutator), aceasta este ”marcata”.
Din moment ce valoarea de pe coloana 1 se schimba, numarul combinatiilor de valori intre coloanele 1 si 2, sa porneasca de la ZERO in ceea ce priveste modificarile ce vor fi aduse pe coloana 3.

Deci, atat timp timp cat pe coloana 1, INDIFERENT de numarul liniei, am valoarea ”001”, iar pe coloana 2, INDIFERENT de numarul liniei, am valoarea ”002”, pe coloana 3 corespondenta liniei respective, sa am CULOAREA1 (rosie, spre ex.), neavand importanta numarul liniei sau ori de cate ori aceasta combinatie de valori (”001” / ”002” se repeta) si linia unde aceasta poate fi intalnita.

Daca valoarea de pe coloana 1 se schimba, atunci o luam de la inceput ......
Linia X:         Coloana 1 ... valoarea ”002” ... Coloana 2 ... valoarea ”002” >>>> coloana 3 nu este afectata
Linia X+1:     Coloana 1 ... valoarea ”002” ... Coloana 2 ... valoarea ”002” >>>> coloana 3 nu este afectata
Linia X+2:     Coloana 1 ... valoarea ”002” ... Coloana 2 ... valoarea ”004” >>>> coloana 3 primeste Culoarea 1 - salvata in prealabil
Linia X+3:     Coloana 1 ... valoarea ”002” ... Coloana 2 ... valoarea ”002” >>>> coloana 3 nu este afectata
Linia X+4:     Coloana 1 ... valoarea ”002” ... Coloana 2 ... valoarea ”001” >>>> coloana 3 primeste Culoarea 2 - salvata in prealabil
Linia X+5: Coloana 1 ... valoarea ”002” ... Coloana 2 ... valoarea ”004” >>>> coloana 3 primeste Culoarea 1 - salvata in prealabil, * aceeasi ca si in cazul liniei X+2
Linia X+5: Coloana 1 ... valoarea ”002” ... Coloana 2 ... valoarea ”001” >>>> coloana 3 primeste Culoarea 2 - salvata in prealabil, * aceeasi ca si in cazul liniei X+4

... s.a.m.d.

Sincer sa fiu, nu stiu in ce masura acest lucru va fi putut fi rezolvat prin ”conditional formating” !
De aceea, cu toate ca poate fi mai simplu, aceasta problema ar putea avea o rezolvare in VBA, cu mult mai avantajoasa intrucat pot fi mult mai multe operatiuni adaugate!!!

Va rog, sper sa pot fi inteles, dar am nevoie de ajutor !!!
Nu cred ca e imposibil, insa nu ii dau de cap !!!!!!!!

Va multumesc tuturor pentru timpul si rabdarea voastra !

#8
radurus

radurus

    Senior Member

  • Grup: Senior Members
  • Posts: 8,024
  • Înscris: 16.06.2006
Cate valori ai? 001, 002.... 00n?
Daca ai 10 valori atunci faci 10 reguli cu conditii duble.

Repet.
In coloana 3 deja pui formula: daca coloana 1 = coloana 2, coloana 3 = " " else, "x".
Adica atunci can coloana 1 e diferita de coloana 2 avem un x.

Apoi conditional formatting se face exact cum am mai spus:
Daca coloana1 = "001" si coloana3 ="x", coloana 3 fundal = rosu.
Daca coloana1 = "002" si coloana3 ="x", coloana3 fundal = verde.
s.a.m.d. pana la 10.

Formatarea conditionala nu o faci pentru o celula ci pentru coloana sau range din coloana.
Deci faci 10 reguli cu conditii duble pentru coloana3

Trebuie sa verifici daca iti merge o regula si apoi incerci cu 2.
Mie nu mi-a mers. Adica sintaxa era corecta dar celula din coloana 3 nu s-a colorat.

Ai grija sa formatezi celulele ca text.

Edited by radurus, 03 August 2020 - 22:59.


#9
DannyBOHLEN

DannyBOHLEN

    Junior Member

  • Grup: Members
  • Posts: 56
  • Înscris: 16.11.2008

View Postradurus, on 03 august 2020 - 22:54, said:

Cate valori ai? 001, 002.... 00n?
Daca ai 10 valori atunci faci 10 reguli cu conditii duble.
,,,
Ai grija sa formatezi celulele ca text.


A mers. De coloana 3 nu m-am legat. E oricum doar o atentionare ca va trebui sa aiba o culoare de fond.
Am sa incerc sa transpun totul in VBA, doarece, valorile de pe coloanele 1 si 2 sunt pe o scara de la 1 la 100 (si poate depasi aceasta valoare), iar combinatiile pot fi multiple.
Doar cu Conditional Format ar trebui sa scriu 100 de conditii, ceea ce nu e foarte elegant, chiar daca imi fac treaba.
Cu VBA poate reusesc sa-l fac mai dinamic. Adica, memorez valoarea de pe coloana 1 si o compar cu valoarea de pe coloana 2:
- daca nu sunt diferente => sterg culoarea de pe coloana 3 (asta pt a preintampina o eventuala eroare),
- daca sunt diferente => va trebui sa atribui o culoare pentru tot unde se gasesc aceasta combinatie.

Dar na, macar am prrins ideea!

Multumesc foarte mult pentru inspiratie !

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate