Apua VBA koodiin

nils

Olen tehnyt erääseen excel-tiedostoon UserFormin, jolla voi tehdä tiedoston kielivalinnan. Homma toimii periaatteessa niin, että esim. suomenkieliset sarakkeet vain piilotetaan, jos valitaan englannin kieli. Tiedostossani on useita eri sheettejä, ja nyt kysyisinkin kuinka saan tuon kielivalinnan toimimaan kerralla kaikille sheeteille? Tällä hetkellä kielivalinta toimii vain sillä sheetinllä, joka on valittuna kun tiedosto avataan. Siin onko joku mahdollisuus tehdä joku simppeli koodi, jolla samat sarakkeet piilotetaan kaikilta sheeteiltä kerralla?

6

519

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Kunde

      räätälöi sopivaksi

      Sub Koe()
      Dim Kieli As String
      Kieli = "Englanti"' muuta tekstiä testataksesi koodia
      If Kieli = "Englanti" Then
      For x = 1 To Sheets.Count
      Sheets(x).Columns("C:G").EntireColumn.Hidden = True
      Next
      Else
      For x = 1 To Sheets.Count
      Sheets(x).Columns("C:G").EntireColumn.Hidden = True
      Next
      End If
      End Sub

      • Kunde

        oli vahingossa True kun piti olla False

        Sub Koe()
        Dim Kieli As String
        Kieli = "Englanti"' muuta tekstiä testataksesi koodia
        If Kieli = "Englanti" Then
        For x = 1 To Sheets.Count
        Sheets(x).Columns("C:G").EntireColumn.Hidden = True
        Next
        Else
        For x = 1 To Sheets.Count
        Sheets(x).Columns("C:G").EntireColumn.Hidden = False
        Next
        End If
        End Sub


      • nils
        Kunde kirjoitti:

        oli vahingossa True kun piti olla False

        Sub Koe()
        Dim Kieli As String
        Kieli = "Englanti"' muuta tekstiä testataksesi koodia
        If Kieli = "Englanti" Then
        For x = 1 To Sheets.Count
        Sheets(x).Columns("C:G").EntireColumn.Hidden = True
        Next
        Else
        For x = 1 To Sheets.Count
        Sheets(x).Columns("C:G").EntireColumn.Hidden = False
        Next
        End If
        End Sub

        Olen vielä hieman amatööri näissä hommissa, joten voisitko vielä valaista miten muutan tota koodia. Nyt koodini näyttää tältä:

        Private Sub CommandButton1_Click()
        If OptionButton1.Value = True Then
        Columns("B:B").Select
        Selection.EntireColumn.Hidden = True
        Columns("D:D").Select
        Selection.EntireColumn.Hidden = True
        Columns("F:F").Select
        Selection.EntireColumn.Hidden = True
        Columns("H:H").Select
        Selection.EntireColumn.Hidden = True
        Columns("J:J").Select
        Selection.EntireColumn.Hidden = True
        Columns("L:L").Select
        Selection.EntireColumn.Hidden = True
        Columns("N:N").Select
        Selection.EntireColumn.Hidden = True
        Columns("P:P").Select
        Selection.EntireColumn.Hidden = True
        Columns("R:R").Select
        Selection.EntireColumn.Hidden = True
        Columns("T:T").Select
        Selection.EntireColumn.Hidden = True
        ActiveWindow.SmallScroll ToRight:=2
        Columns("W:W").Select
        Selection.EntireColumn.Hidden = True
        ActiveWindow.SmallScroll ToRight:=-10
        Range("A4").Select
        frmLanguage.Hide
        End If
        If OptionButton2.Value = True Then
        Columns("A:A").Select
        Selection.EntireColumn.Hidden = True
        Columns("C:C").Select
        Selection.EntireColumn.Hidden = True
        Columns("E:E").Select
        Selection.EntireColumn.Hidden = True
        Columns("G:G").Select
        Selection.EntireColumn.Hidden = True
        ActiveWindow.SmallScroll ToRight:=4
        Columns("I:I").Select
        Selection.EntireColumn.Hidden = True
        Columns("K:K").Select
        Selection.EntireColumn.Hidden = True
        Columns("M:M").Select
        Selection.EntireColumn.Hidden = True
        Columns("O:O").Select
        Selection.EntireColumn.Hidden = True
        Columns("Q:Q").Select
        Selection.EntireColumn.Hidden = True
        Columns("S:S").Select
        Selection.EntireColumn.Hidden = True
        ActiveWindow.SmallScroll ToRight:=3
        Columns("V:V").Select
        Selection.EntireColumn.Hidden = True
        ActiveWindow.SmallScroll ToRight:=-13
        Range("B6").Select
        frmLanguage.Hide
        End If
        End Sub


        Tuo siis toimii yhdelle sheetille, mutta miten saan toimimaan kaikille?


      • nils
        Kunde kirjoitti:

        oli vahingossa True kun piti olla False

        Sub Koe()
        Dim Kieli As String
        Kieli = "Englanti"' muuta tekstiä testataksesi koodia
        If Kieli = "Englanti" Then
        For x = 1 To Sheets.Count
        Sheets(x).Columns("C:G").EntireColumn.Hidden = True
        Next
        Else
        For x = 1 To Sheets.Count
        Sheets(x).Columns("C:G").EntireColumn.Hidden = False
        Next
        End If
        End Sub

        mitäs tämä "suomennettuna tarkoittaa?
        For x = 1 To Sheets.Count


      • Kunde
        nils kirjoitti:

        mitäs tämä "suomennettuna tarkoittaa?
        For x = 1 To Sheets.Count

        For x = 1 To Sheets.Count
        ...
        Next

        laskuri x saa arvot 1- työkirjassa olevien laskentataulukkojen määrä. Eli jos sinulla on esim. 3 laskentataulukkoa -laskuri suorittaa silmukan 3 kertaa...

        no tässä sulle pyytämäsi koodi "hieman" putsattuna. Oletin, että kun joku kieli valittuna niin ilmeisesti toisen kielen sarakkeet pitää olla piilotettuna?

        Private Sub CommandButton1_Click()
        For Each sht In ActiveWorkbook.Worksheets
        sht.Activate
        If OptionButton1.Value = True Then
        Range("B:B,D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T,W:W").EntireColumn.Hidden = True
        Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,V:V").EntireColumn.Hidden = False
        End If
        If OptionButton2.Value = True Then
        Range("B:B,D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T,W:W").EntireColumn.Hidden = False
        Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,V:V").EntireColumn.Hidden = True
        End If
        Next
        End Sub


      • nils
        Kunde kirjoitti:

        For x = 1 To Sheets.Count
        ...
        Next

        laskuri x saa arvot 1- työkirjassa olevien laskentataulukkojen määrä. Eli jos sinulla on esim. 3 laskentataulukkoa -laskuri suorittaa silmukan 3 kertaa...

        no tässä sulle pyytämäsi koodi "hieman" putsattuna. Oletin, että kun joku kieli valittuna niin ilmeisesti toisen kielen sarakkeet pitää olla piilotettuna?

        Private Sub CommandButton1_Click()
        For Each sht In ActiveWorkbook.Worksheets
        sht.Activate
        If OptionButton1.Value = True Then
        Range("B:B,D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T,W:W").EntireColumn.Hidden = True
        Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,V:V").EntireColumn.Hidden = False
        End If
        If OptionButton2.Value = True Then
        Range("B:B,D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T,W:W").EntireColumn.Hidden = False
        Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,V:V").EntireColumn.Hidden = True
        End If
        Next
        End Sub

        pienellä muokkauksella sain ton semmoseks kun halusin. Kiitos asiallisista neuvoista!!


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Virkamiehille tarvitaan tuntuvat palkankorotukset

      Naistenpäivänä on syytä muistuttaa, että virkamiehen euro on vain 80 senttiä. Palkat tulee saattaa samalle tasolle yksi
      Maailman menoa
      42
      3930
    2. Riikka Purran kaudella nousi bensan hinta yli 2 euron

      Muistatteko kuinka edellisen vasemmistohallituksen aikana, ns. Marinin aikakaudella, bensiiniä sai 1,3 euron litrahinnal
      Maailman menoa
      39
      3536
    3. Jäikö meidän välit

      Mielestäsi Kesken?
      Ikävä
      70
      3138
    4. Olisipa saanut sinuun

      Tutustua paremmin. Harmi että aloin lopulta jännittämään kun näytit tunteesi niin voimakkaasti ja lähestyit niin voimaak
      Ikävä
      91
      2990
    5. Mitäs nyt sijoittajat?

      Pörssit laskevat maailmalla Iranin sodan takia ja muutenkin ovat olleet Trumpin vallan alla epävarmat. Ainoa, mikä on no
      Maailman menoa
      86
      1982
    6. Miks tän meidän

      Rakkauden on pitänyt olla näin vaikeaa?
      Ikävä
      35
      1958
    7. muista olla

      VAROVAINEN! m
      Ikävä
      24
      1809
    8. Elän vastoin

      Kaikkia arvoja kun en pysy sinusta erossa.
      Ikävä
      30
      1744
    9. Onneksi on edes yksi kuva

      Susta mitä voin välillä ihastella ja kaipailla sua😔
      Ikävä
      32
      1743
    10. Olisitpa se hellä

      Ja herkkä minkä kuvan sain sinusta irl. Haluaisin että elämässäni olisi sellainen joka arvostaa minua juuri sellaisena k
      Ikävä
      23
      1704
    Aihe