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?
Apua VBA koodiin
nils
6524
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
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
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?
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
pienellä muokkauksella sain ton semmoseks kun halusin. Kiitos asiallisista neuvoista!!