Kiitos allaolevasta pätkästä! Homma toimii, mutta en tiedä olenko laittanut pätkän oikeaan kohtaan, koska se ei "päivity" lainkaan. Eli jos A28 muuttuu, ei teksti muutu kuin aina erikseen "runnaamalla" ko. makro. Saakon sen jollain tavalla automaattiseksi?
Tässä siis se makro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Jäsenmaksu
End Sub
Sub Jäsenmaksu()
Dim x As Integer
Dim teksti As String
teksti = "Uusi jäsen sitoutuu maksamaan seuralle " & Range("A28").Text
teksti = teksti & " euron jäsenmaksun.... "
x = Len(Range("A28").Text)
With Range("A1")
.NumberFormat = "@"
.Formula = teksti
.Characters(Start:=1, Length:=28).Font.ColorIndex = 0
.Characters(Start:=40, Length:=x).Font.ColorIndex = 3
.Characters(Start:=40 x, Length:=30).Font.ColorIndex = 0
End With
End Sub
Tässä siis se makro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Jäsenmaksu
End Sub
Sub Jäsenmaksu()
Dim x As Integer
Dim teksti As String
teksti = "Uusi jäsen sitoutuu maksamaan seuralle " & Range("A28").Text
teksti = teksti & " euron jäsenmaksun.... "
x = Len(Range("A28").Text)
With Range("A1")
.NumberFormat = "@"
.Formula = teksti
.Characters(Start:=1, Length:=28).Font.ColorIndex = 0
.Characters(Start:=40, Length:=x).Font.ColorIndex = 3
.Characters(Start:=40 x, Length:=30).Font.ColorIndex = 0
End With
End Sub
Vastaukset 5
Vanhimmat
Onhan koodi varmasti sen taulukon moduulissa missä muutos tapahtuu? Eli jos haluat koodin suoritettavan esim Taul1:ssä, niin liitä koodi Taul1 moduuliin eikä esim ThisWorkbook tai tavallisiin moduleihin :)
Tein näin:
VBAProject => Taul3(Jasen) => ja liitin kaavan siihen.
Ei päivity jos jäsenmaksu muuttuu omassa solussaan. Ja nyt herjaa jotain "Luokan Range ominaisuutta NumberFormat ei voida asettaa."...
Taidan olla aika onneton tän Ecxelin ja VBA:n kanssa...
Otin taulukon suojauksen pois päältä ja se auttoi. Seuraava ongelma on se, että tuo A28 arvo tulee toisesta taulukosta (Taulukko1 nimeltään "Perustiedot" solusta B5) ja kun se muuttuu, muuttuu kyllä A28 mutta ei tuo "erivärisyys -kohta"...
- Miten saan suoraan tuon Perustietolomakkeen solun tuohon makroon?
- Saisko sitten vielä jollain tavalla suojattua tuon taulukon vai onko se mahdotonta tuon makron kanssa?
Loma on nyt ohi...
liitä perustiedot lomakkeen moduuliin
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call Jäsenmaksu
End Sub
lisää moduuli ja siihen koodi- muuta taul2 itselle sopivaksi.
Sub Jäsenmaksu()
Dim x As Integer
Dim teksti As String
teksti = "Uusi jäsen sitoutuu maksamaan seuralle " & Range("Perustiedot!B5").Text
teksti = teksti & " euron jäsenmaksun.... "
x = Len(Range("Perustiedot!B5").Text)
Application.ScreenUpdating = False
Taul2.Unprotect
Taul2.Activate
With Range("A1")
.NumberFormat = "@"
.Formula = teksti
.Characters(Start:=1, Length:=28).Font.ColorIndex = 0
.Characters(Start:=40, Length:=x).Font.ColorIndex = 3
.Characters(Start:=40 x, Length:=30).Font.ColorIndex = 0
End With
Taul2.Protect
Sheets("Perustiedot").Activate
Application.ScreenUpdating = True
End Sub