< návrat zpět

MS Excel


Téma: VBA podmíněně formátování rss

Zaslal/a 12.3.2021 18:01

Merlin99Zdravim vsechny,
chci se zeptat zda nekdo dokaze za pomoci VBA ovladat podminene formatovani. potreboval bych se naučit nasledujici:
Makro spusteno po spusteni sešitu =
1) Vymazat veškeré formátování z celého listu
2) Vložit toto podmíněné formátování A(DÉLKA($B2)<>4;$B2<>"") pro obast =$B$2:$B$99

Příklad v příloze.
Děkuji za rady 5 1

Příloha: rar50081_format.rar (31kB, staženo 14x)
Zaslat odpověď >

#050082
elninoslov
Private Sub Workbook_Open()
With List1
.Cells.FormatConditions.Delete
.Range("B2:B99").FormatConditions.Add Type:=xlExpression, Formula1:="=AND(LEN($B2)<>4;$B2<>"""")"
.Range("B2:B99").FormatConditions(1).Interior.Color = 255
End With
End Sub
citovat
#050083
Merlin99
elninoslov
Funguje jako vždy dokonale DÍKY MOC
hezký víkend

5 5 9citovat
#050112
Merlin99
Dobré ráno,
nerozumím proč mi nyní makro křičí "Compile error.. Object required"

Viz příloha.. nechapu zkousel sem vsemozne upravovat ale uz me nic nenapada porad to nefunguje... 6
Příloha: rar50112_podminene-formatovani-vba.rar (48kB, staženo 13x)
citovat
#050113
elninoslov
Číselné typy nie sú objekty, a teda sa nenastavujú cez Set. A ešte k tomu Integer! Ten má obmedzenie na 32767. Na farby potrebujete Long.

EDIT: A ešte pozerám, že tam vkladáte český vzorec. To nejde do Formula1. To sa dá iba do FormulaLocal, ale podmienený formát takú možnosť nemá. Tam treba iba ENG ekvivalent vzorca vkladať. Možnosť by bola to prekonvertovať cez FormulaLocal nejakej nepotrebnej bunky alebo cez dočasný definovaný názov. Mám sa Vám na to mrknúť?
Hmm, vlastne ani to nepôjde. Lebo ak spustíte na SK alebo EN verzii Excelu vloženie CZ vzorca, síce ako FormulaLocal, výsledok bude rovnaký - nefunkčnosť, lebo "Local" je na EN Office predsa EN, a pod.

EDIT2: No a ešte tam máte ďalšiu zradu. Indexovanie podmienených formátov. Nemôžete používať stále index 1. To sa mení podľa toho, koľko formátov zasahuje do daného rozsahu. Jednoduchšie, prehľadnejšie a menej náchylné k chybe bude priame nastavenie hneď pri vytváraní PF.
Private Sub Workbook_Open()
'Vymazani a naslednem nastaveni podmineneho formatovani

Dim ERR As String
Dim OK As String
Dim X As String
Dim Uvozovka As String
Dim CERVENA As Long
Dim ZELENA As Long
Dim MODRA As Long

Uvozovka = """"
ERR = "ERR"
OK = "OK"
X = "X"

CERVENA = RGB(255, 0, 0)
ZELENA = RGB(0, 255, 0)
MODRA = RGB(0, 0, 255)

With List2
.Cells.FormatConditions.Delete

.Range("A2:A99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=LEN($A2)>17").Interior.Color = vbRed 'CERVENA
.Range("B2:B99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=AND(LEN($B2)<>4;$B2<>"""")").Interior.Color = vbRed 'CERVENA
.Range("A2:A99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=$H2=" & Uvozovka & ERR & Uvozovka & "").Interior.Color = vbRed 'CERVENA
.Range("A2:J99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=$I2=" & Uvozovka & OK & Uvozovka & "").Interior.Color = vbGreen 'ZELENA
.Range("A2:J99999").FormatConditions.Add(Type:=xlExpression, Formula1:="=$I2=" & Uvozovka & X & Uvozovka & "").Interior.Color = vbBlue 'MODRA
End With
End Sub


Ako ešte vidíte, zrovna červená, zelená a modrá farba (a ešte iné) majú svoju konštantu, ktorú Excel rovno pozná a môžete použiť tie. Ak chcete ľubovoľnú farbu mixovať, samozrejme použite to RGB(). V opačnom prípade potom zmažte aj definície aj nastavenie tých premenných farieb.
Příloha: zip50113_podminene-formatovani-vba.zip (50kB, staženo 18x)
citovat
#050115
Merlin99
elninoslov
OU to jsem si docela nabehl, ale vami doporucene EN preklady funkci funguje suprove. Dale bych to nekomplikoval takto je to skvely. Preberu vase makro jako vzor a ted uz si poradim snad se vsim.
DĚKUJI MNOHOKRÁT za pomoc a vysvětlení 9 5 1citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Čas od do

lubo • 19.4. 16:30

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32