Kunde!!!

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
5465
Äänestä

Muut lukivat myös

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 :)

Äänestä
  • 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...

    Äänestä

  • Pekka kirjoitti:

    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"...

    Äänestä

  • Pekka kirjoitti:

    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?

    Äänestä

  • Pekka kirjoitti:

    - 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

    Äänestä

Kommentoi aloitusta


Pekka kirjoitti:

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

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu