Voiko Exceliin tehdä ehdollisen muotoilun tai vastaavan avulla, solun jossa täyttöväri tai lukema vilkkuisi?
Tarkoituksena olisi kiinnittää huomio tähän soluun, puuttuvasta lukemasta tai muusta vastaavasta syystä.
Tarkoituksena olisi kiinnittää huomio tähän soluun, puuttuvasta lukemasta tai muusta vastaavasta syystä.
Vastaukset 18
Vanhimmat
Seuraan.
Aina ei pelkkä punainen varoitusteksti riitä huomion kiinnittämiseksi.
Kannataa poistaa winkura heti!
Nyt toimii alueella A1:A10, mutta helppo lisätä koodissa tarvittavia alueita tai
soluja
ko. taulukon moduuliin...
Option Explicit
Dim VilkutusSolu As Boolean
Dim Vilkuta As Boolean
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Solu As Range
Dim Osoite As String
Set Alue = Range("A1:A10")
VilkutusSolu = False
For Each Solu In Alue
If Solu.Value = 0 Then
VilkutusSolu = True
If Len(Osoite) > 0 Then
Osoite = Osoite & "," & Solu.Address
Else
Osoite = Osoite & Solu.Address
End If
End If
Next
If VilkutusSolu = True And Vilkuta = False Then
Set Alue = Range(Osoite)
Vilkuta = True
AloitaVilkutus
Else
If VilkutusSolu = True And Vilkuta = True Then
LopetaVilkutus
Set Alue = Range(Osoite)
AloitaVilkutus
Else
If VilkutusSolu = False And Vilkuta = True Then
LopetaVilkutus
Vilkuta = False
End If
End If
End If
End Sub
tavalliseen moduuliin...
Option Explicit
Public Alue As Range
Dim SeuraavaAika As Double
Sub AloitaVilkutus()
With Alue.Interior
If .ColorIndex = 3 Then
.ColorIndex = xlNone
Else
.ColorIndex = 3
End If
End With
SeuraavaAika = Now TimeSerial(0, 0, 1)
Application.OnTime SeuraavaAika, "AloitaVilkutus", , True
End Sub
Sub LopetaVilkutus()
Alue.Interior.ColorIndex = xlNone
Application.OnTime SeuraavaAika, "AloitaVilkutus", , False
End Sub
Keep EXCELing
@Kunde
Ei toimi
Toimii varmasti, jos olet asentanut koodipätkät oikeisiin moduuleihin ohjeiden mukaan ja testannut solualuetta C3:C10..
Vilutaa alueen soluja sekunnin välein, jos solun arvo=0.
Keep EXCEling
@Kunde
En epäillytkään etteikö "KUNDE":lla olisi tähänkin ratkaisua koodaamalla.
Toimintaa en tosin pikaisella silmäilyllä täysin sisäistänyt mitä se vaatii soluun. Ilmeisesti joku ehto joka on tosi tai epätosi...
Nyt koodissa
Set Alue = Range("A1:A10")
VilkutusSolu = False
For Each Solu In Alue
If Solu.Value = 0 Then
VilkutusSolu = True
If Len(Osoite) > 0 Then
Osoite = Osoite & "," & Solu.Address
Else
Osoite = Osoite & Solu.Address
End If
End If
Next
eli alueella "A1:A10" minkä tahansa SOLUN ARVO=0, niin vilkuttaa sitä 1 s välein punaisella.
Muuttamalla aluetta (jos useita eri alueita tai sarakkeitatms) joutuu Alue koodia fiksaamaan ja värikoodin arvoa muuttamalla voi valita muita värejä (3=punainen).
Keep EXCEling
@Kunde
Menipä vaikeesti!
Joo, eli vilkuttaa alueella niitä soluja joiden arvo on nolla.
Monikäyttöisempi olisi jos vilkutussolu/-alue, ja jos-ehtosolu (apusolu jonka arvo olisi tosi tai epätosi) olisivat erilliset.
Voisi vilkuttaa myös epäkelpoja syötettyjä arvoja, tai tuottaa vilkkuvia varoitustekstejä.
Perus koodiini helppo lisätä noi esiittämäsi "lisätoiveet"
Keep EXCELing
@Kunde
Helppo on tässä vähän suhteellinen käsite. 😄
Toimii.
Vilkuttaa punaista täyttöväriä jos solu on tyhjä tai lukuarvo on nolla.
Raiskasin vähän Kunden hengentuotetta, nyt vilkkuva solu on A1 ja vilkutuksen ehto on solussa B1. Vilkutuskoodi on entisellään.
Option Explicit
Dim VilkutusSolu As Boolean
Dim Vilkuta As Boolean
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Solu As Range
Dim Ehto As Range
Dim Osoite As String
Set Alue = Range("A1")
Set Ehto = Range("B1")
VilkutusSolu = False
For Each Solu In Ehto
If Solu.Value = 0 Then
VilkutusSolu = True
'If Len(Osoite) > 0 Then
'Osoite = Osoite & "," & Solu.Address
'Else
'Osoite = Osoite & Solu.Address
'End If
End If
Next
If VilkutusSolu = True And Vilkuta = False Then
'Set Alue = Range(Osoite)
Vilkuta = True
AloitaVilkutus
Else
If VilkutusSolu = True And Vilkuta = True Then
LopetaVilkutus
'Set Alue = Range(Osoite)
AloitaVilkutus
Else
If VilkutusSolu = False And Vilkuta = True Then
LopetaVilkutus
Vilkuta = False
End If
End If
End If
End Sub
On kun ensin korjaa virheet.
Visual BASICilla minäkin olen tehnyt paljon EXCEL-juttuja ja opetinkin erästä naissihteeriä kauan sitten.
Heh! Visual BASIC on ohjelmoitityökalu!
Libressä ainakin sellainen kuin "Functio tyyli"
Samallailla kuin värin vaihto mutt määritä siihen aika ja toinen väri mukaan!