< návrat zpět

MS Excel


Téma: VBA - vylistování podmíněných formátování rss

Zaslal/a 5.12.2013 10:44

Ahoj,

mám Excel-2007 ve kterém potřebuji pomocí VBA vybrat a do listu zapsat všechna P-odmíněná F-ormátování (dále jen PF). Tedy je to právě ten seznam který lze ručně získat otevřením dialogu "Domů/Podmíněné formátování/Správa pravidel/". V generátoru VBA kódu se při změně jakékoliv podmínky generuje vždy
1. výmaz všech PF v oblasti
2. definice toho co v dialog PF zůstalo "PO STISKU tlačítka OK"
Reálně se tedy používá objekt ".FormatConditions". Nelze mi ale žádným způsobem s jeho pomocí vylistovat konkrétní PF jak v listě tak v sešitě.

Může mi prosím s tím někdo pomoct tj. jak vylistovat pomocí VBA seznam všech PF v sešitě?

díky moc

Zaslat odpověď >

#016671
avatar
nemam to odskusane niesom pri office ale skuste toto:

For Each aCondition In Range("A1:B200").FormatConditions

Nextcitovat
#016676
avatar
"Palooo" díky. Něco obdobného jsem ale již zkoušel před zadáním dotazu:

Dim m_FC As Excel.FormatCondition
For Each m_FC In Range("$A$1:$E$5").FormatConditions
'Debug.Print a.Formula1
Next

Ale to NEFUNGUJE. Mohu vylistovat oblasti podmínek - to by ještě šlo ale podmínky samotné již listovat nedokážu. Co jsem zkoušel:

Sub Text()
Dim m_oblast_1 As Excel.Range: Set m_oblast_1 = Range("$B$2:$E$9")
Dim m_oblast_2 As Excel.Range: Set m_oblast_2 = Range("$B$3:$E$7")

With m_oblast_1 ' první podmínka
.FormatConditions.Delete
.FormatConditions.Add(Type:=xlExpression _
, Formula1:="=$G2=""1""").Interior.Color = RGB(150, 100, 0)
Debug.Print .FormatConditions(1).Formula1
End With

With m_oblast_2 ' druhá podmínka
.FormatConditions.Delete
.FormatConditions.Add(Type:=xlExpression _
, Formula1:="=$G2=""2""").Interior.Color = RGB(150, 100, 0)
Debug.Print .FormatConditions(1).Formula1
End With

With m_oblast_1 ' první podmínka

' ZDE to již zkolabuje. Vypadá to, že pole .Formula1 se nastavuje
' pouze bezprostředně po volání .Add(). Nevím proč je zde problém
'
Debug.Print .FormatConditions(1).Formula1
End With
End Sub

Kdyby šlo zdůvodnit, proč je v příkladu chyba, třeba by pak šlo na to nějak navázat...

díky za jakoukoliv raducitovat
#016678
Opičák
Nevím přesně jak to myslíš, ale touto fcí lze vypisovat PF.
Function CondFormula(myCell, Optional cond As Long = 1) As String
Application.Volatile
CondFormula = myCell.FormatConditions(cond).Formula1
End Function
citovat
#016682
avatar
"Opičáku" díky. Pro mne je zajímavé použití funkce Volatile.
Spíše jsem ale mínil to, že mám docela složitou tabuli ve které mám přes 60 CF. Tabule se neustále doplňuje o nové záznamy (řádky) a dochází i k přesunům ...takže se po čase stane, že se kontinuální CF "roztrhají" a něco pak formátované je a něco není. Já tedy potřebuji právě TEN listing který nabízí dialog pro CF ale s tím že externě opravím vadné odkazy nebo je taky promažu. A pak toto formátování "vrátím zpět".

Návod, který je prvním krokem k tomu co potřebuji jsem našel zde (http://dailydoseofexcel.com/archives/2010/04/16/listing-format-conditions/). U toho kódu je ale ještě problém v tom, že mi z těch cca 60 CF vrací pouze asi 60%, přestože jsou všechny typově stejné.citovat

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje