Apua VBA koodiin

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?
6524
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

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

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

    Äänestä

  • 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?

    Äänestä

  • 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

    Äänestä

  • 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

    Äänestä

  • 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!!

    Äänestä

Kommentoi aloitusta


nils kirjoitti:

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?

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